summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS.rst (renamed from AUTHORS)27
-rw-r--r--CHANGES.rst (renamed from CHANGES)730
-rw-r--r--CODE_OF_CONDUCT.rst (renamed from CODE_OF_CONDUCT)0
-rw-r--r--EXAMPLES.rst (renamed from EXAMPLES)62
-rw-r--r--LICENSE.rst (renamed from LICENSE)2
-rw-r--r--PKG-INFO26
-rw-r--r--README.rst2
-rw-r--r--debian/changelog53
-rw-r--r--debian/control16
-rw-r--r--debian/copyright29
-rwxr-xr-xdebian/dh-sphinxdoc/dh_sphinxdoc2
-rw-r--r--debian/dh-sphinxdoc/index2
-rwxr-xr-xdebian/jstest/run-tests14
-rw-r--r--debian/patches/docutils_manpage_macros.diff12
-rw-r--r--debian/patches/intersphinx_local.diff8
-rw-r--r--debian/patches/move_sphinxcontrib_to_extras_require.diff10
-rw-r--r--debian/patches/python_3.11.7.diff77
-rw-r--r--debian/patches/python_3.12.4.diff33
-rw-r--r--debian/patches/remove_contrib_references.diff12
-rw-r--r--debian/patches/series4
-rw-r--r--debian/patches/skip_tests_jsmath.diff16
-rw-r--r--debian/patches/skip_tests_network.diff21
-rw-r--r--debian/patches/skip_tests_serializinghtml.diff10
-rw-r--r--debian/patches/support_old_search_indexes.diff48
-rw-r--r--debian/patches/use_packaged_mathjax.diff4
-rw-r--r--debian/python3-sphinx.preinst13
-rwxr-xr-xdebian/rules6
-rw-r--r--debian/sphinx-doc.docs2
-rw-r--r--debian/tests/control12
-rw-r--r--doc/_static/tutorial/lumache-autosummary.pngbin26500 -> 20729 bytes
-rw-r--r--doc/_static/tutorial/lumache-first-light.pngbin52126 -> 35872 bytes
-rw-r--r--doc/_static/tutorial/lumache-furo.pngbin51223 -> 40306 bytes
-rw-r--r--doc/_static/tutorial/lumache-py-function-full.pngbin71741 -> 56998 bytes
-rw-r--r--doc/_static/tutorial/lumache-py-function.pngbin41828 -> 33130 bytes
-rw-r--r--doc/_themes/sphinx13/layout.html11
-rw-r--r--doc/_themes/sphinx13/static/sphinx-logo.svg4
-rw-r--r--doc/_themes/sphinx13/static/sphinx13.css25
-rw-r--r--doc/_themes/sphinx13/static/sphinxheader.pngbin11719 -> 0 bytes
-rw-r--r--doc/_themes/sphinx13/theme.conf4
-rw-r--r--doc/_themes/sphinx13/theme.toml4
-rw-r--r--doc/authors.rst2
-rw-r--r--doc/changes.rst4
-rw-r--r--doc/conf.py156
-rw-r--r--doc/development/builders.rst18
-rw-r--r--doc/development/templating.rst5
-rw-r--r--doc/development/theming.rst125
-rw-r--r--doc/development/tutorials/examples/autodoc_intenum.py19
-rw-r--r--doc/development/tutorials/examples/helloworld.py8
-rw-r--r--doc/development/tutorials/examples/recipe.py46
-rw-r--r--doc/development/tutorials/examples/todo.py34
-rw-r--r--doc/development/tutorials/recipe.rst6
-rw-r--r--doc/examples.rst2
-rw-r--r--doc/extdev/appapi.rst3
-rw-r--r--doc/extdev/deprecated.rst14
-rw-r--r--doc/extdev/i18n.rst4
-rw-r--r--doc/extdev/nodes.rst2
-rw-r--r--doc/extdev/utils.rst6
-rw-r--r--doc/faq.rst2
-rw-r--r--doc/glossary.rst2
-rw-r--r--doc/index.rst2
-rw-r--r--doc/internals/code-of-conduct.rst2
-rw-r--r--doc/internals/contributing.rst12
-rw-r--r--doc/internals/organization.rst2
-rw-r--r--doc/internals/release-process.rst4
-rw-r--r--doc/latex.rst4
-rw-r--r--doc/man/sphinx-build.rst191
-rw-r--r--doc/man/sphinx-quickstart.rst3
-rw-r--r--doc/support.rst2
-rw-r--r--doc/tutorial/automatic-doc-generation.rst2
-rw-r--r--doc/tutorial/deploying.rst15
-rw-r--r--doc/tutorial/describing-code.rst12
-rw-r--r--doc/tutorial/getting-started.rst2
-rw-r--r--doc/usage/advanced/intl.rst2
-rw-r--r--doc/usage/advanced/websupport/quickstart.rst4
-rw-r--r--doc/usage/advanced/websupport/searchadapters.rst2
-rw-r--r--doc/usage/advanced/websupport/storagebackends.rst2
-rw-r--r--doc/usage/builders/index.rst71
-rw-r--r--doc/usage/configuration.rst124
-rw-r--r--doc/usage/domains/c.rst367
-rw-r--r--doc/usage/domains/cpp.rst760
-rw-r--r--doc/usage/domains/index.rst208
-rw-r--r--doc/usage/domains/javascript.rst132
-rw-r--r--doc/usage/domains/mathematics.rst22
-rw-r--r--doc/usage/domains/python.rst688
-rw-r--r--doc/usage/domains/restructuredtext.rst99
-rw-r--r--doc/usage/domains/standard.rst95
-rw-r--r--doc/usage/extensions/autodoc.rst2
-rw-r--r--doc/usage/extensions/coverage.rst6
-rw-r--r--doc/usage/extensions/example_google.py1
-rw-r--r--doc/usage/extensions/example_numpy.py6
-rw-r--r--doc/usage/extensions/graphviz.rst2
-rw-r--r--doc/usage/extensions/intersphinx.rst1
-rw-r--r--doc/usage/extensions/math.rst4
-rw-r--r--doc/usage/extensions/napoleon.rst8
-rw-r--r--doc/usage/index.rst2
-rw-r--r--doc/usage/installation.rst6
-rw-r--r--doc/usage/quickstart.rst10
-rw-r--r--doc/usage/referencing.rst258
-rw-r--r--doc/usage/restructuredtext/basics.rst2
-rw-r--r--doc/usage/restructuredtext/directives.rst28
-rw-r--r--doc/usage/restructuredtext/domains.rst2563
-rw-r--r--doc/usage/restructuredtext/field-lists.rst2
-rw-r--r--doc/usage/restructuredtext/index.rst4
-rw-r--r--doc/usage/restructuredtext/roles.rst282
-rw-r--r--doc/usage/theming.rst6
-rw-r--r--pyproject.toml397
-rw-r--r--sphinx/__init__.py17
-rw-r--r--sphinx/addnodes.py59
-rw-r--r--sphinx/application.py24
-rw-r--r--sphinx/builders/__init__.py11
-rw-r--r--sphinx/builders/_epub_base.py26
-rw-r--r--sphinx/builders/changes.py15
-rw-r--r--sphinx/builders/dirhtml.py6
-rw-r--r--sphinx/builders/dummy.py5
-rw-r--r--sphinx/builders/epub3.py8
-rw-r--r--sphinx/builders/gettext.py31
-rw-r--r--sphinx/builders/html/__init__.py184
-rw-r--r--sphinx/builders/html/_assets.py32
-rw-r--r--sphinx/builders/html/transforms.py6
-rw-r--r--sphinx/builders/latex/__init__.py73
-rw-r--r--sphinx/builders/latex/nodes.py8
-rw-r--r--sphinx/builders/latex/transforms.py25
-rw-r--r--sphinx/builders/latex/util.py2
-rw-r--r--sphinx/builders/linkcheck.py113
-rw-r--r--sphinx/builders/manpage.py14
-rw-r--r--sphinx/builders/singlehtml.py9
-rw-r--r--sphinx/builders/texinfo.py32
-rw-r--r--sphinx/builders/text.py5
-rw-r--r--sphinx/builders/xml.py7
-rw-r--r--sphinx/cmd/build.py195
-rw-r--r--sphinx/cmd/make_mode.py13
-rw-r--r--sphinx/cmd/quickstart.py29
-rw-r--r--sphinx/config.py692
-rw-r--r--sphinx/deprecation.py36
-rw-r--r--sphinx/directives/__init__.py16
-rw-r--r--sphinx/directives/code.py14
-rw-r--r--sphinx/directives/other.py36
-rw-r--r--sphinx/directives/patches.py13
-rw-r--r--sphinx/domains/__init__.py4
-rw-r--r--sphinx/domains/c.py3906
-rw-r--r--sphinx/domains/c/__init__.py849
-rw-r--r--sphinx/domains/c/_ast.py1421
-rw-r--r--sphinx/domains/c/_ids.py65
-rw-r--r--sphinx/domains/c/_parser.py1048
-rw-r--r--sphinx/domains/c/_symbol.py700
-rw-r--r--sphinx/domains/changeset.py18
-rw-r--r--sphinx/domains/citation.py7
-rw-r--r--sphinx/domains/cpp.py8233
-rw-r--r--sphinx/domains/cpp/__init__.py1181
-rw-r--r--sphinx/domains/cpp/_ast.py3635
-rw-r--r--sphinx/domains/cpp/_ids.py537
-rw-r--r--sphinx/domains/cpp/_parser.py2117
-rw-r--r--sphinx/domains/cpp/_symbol.py1092
-rw-r--r--sphinx/domains/index.py10
-rw-r--r--sphinx/domains/javascript.py29
-rw-r--r--sphinx/domains/math.py13
-rw-r--r--sphinx/domains/python.py1769
-rw-r--r--sphinx/domains/python/__init__.py904
-rw-r--r--sphinx/domains/python/_annotations.py507
-rw-r--r--sphinx/domains/python/_object.py426
-rw-r--r--sphinx/domains/rst.py19
-rw-r--r--sphinx/domains/std/__init__.py (renamed from sphinx/domains/std.py)35
-rw-r--r--sphinx/environment/__init__.py40
-rw-r--r--sphinx/environment/adapters/indexentries.py4
-rw-r--r--sphinx/environment/adapters/toctree.py19
-rw-r--r--sphinx/environment/collectors/__init__.py9
-rw-r--r--sphinx/environment/collectors/asset.py7
-rw-r--r--sphinx/environment/collectors/dependencies.py5
-rw-r--r--sphinx/environment/collectors/metadata.py11
-rw-r--r--sphinx/environment/collectors/title.py5
-rw-r--r--sphinx/environment/collectors/toctree.py9
-rw-r--r--sphinx/errors.py15
-rw-r--r--sphinx/events.py23
-rw-r--r--sphinx/ext/apidoc.py20
-rw-r--r--sphinx/ext/autodoc/__init__.py176
-rw-r--r--sphinx/ext/autodoc/directive.py13
-rw-r--r--sphinx/ext/autodoc/importer.py138
-rw-r--r--sphinx/ext/autodoc/mock.py12
-rw-r--r--sphinx/ext/autodoc/preserve_defaults.py7
-rw-r--r--sphinx/ext/autodoc/type_comment.py3
-rw-r--r--sphinx/ext/autodoc/typehints.py9
-rw-r--r--sphinx/ext/autosectionlabel.py5
-rw-r--r--sphinx/ext/autosummary/__init__.py38
-rw-r--r--sphinx/ext/autosummary/generate.py18
-rw-r--r--sphinx/ext/coverage.py46
-rw-r--r--sphinx/ext/doctest.py71
-rw-r--r--sphinx/ext/duration.py1
-rw-r--r--sphinx/ext/extlinks.py7
-rw-r--r--sphinx/ext/githubpages.py5
-rw-r--r--sphinx/ext/graphviz.py17
-rw-r--r--sphinx/ext/ifconfig.py10
-rw-r--r--sphinx/ext/imgconverter.py11
-rw-r--r--sphinx/ext/imgmath.py17
-rw-r--r--sphinx/ext/inheritance_diagram.py62
-rw-r--r--sphinx/ext/intersphinx.py163
-rw-r--r--sphinx/ext/linkcode.py5
-rw-r--r--sphinx/ext/mathjax.py3
-rw-r--r--sphinx/ext/napoleon/__init__.py19
-rw-r--r--sphinx/ext/napoleon/docstring.py66
-rw-r--r--sphinx/ext/todo.py17
-rw-r--r--sphinx/ext/viewcode.py23
-rw-r--r--sphinx/extension.py26
-rw-r--r--sphinx/highlighting.py59
-rw-r--r--sphinx/io.py25
-rw-r--r--sphinx/jinja2glue.py31
-rw-r--r--sphinx/locale/__init__.py53
-rw-r--r--sphinx/locale/ar/LC_MESSAGES/sphinx.mobin7494 -> 7421 bytes
-rw-r--r--sphinx/locale/ar/LC_MESSAGES/sphinx.po1579
-rw-r--r--sphinx/locale/bg/LC_MESSAGES/sphinx.mobin492 -> 492 bytes
-rw-r--r--sphinx/locale/bg/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.mobin7591 -> 7519 bytes
-rw-r--r--sphinx/locale/bn/LC_MESSAGES/sphinx.po1613
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.mobin84364 -> 86082 bytes
-rw-r--r--sphinx/locale/ca/LC_MESSAGES/sphinx.po1671
-rw-r--r--sphinx/locale/cak/LC_MESSAGES/sphinx.mobin2391 -> 2391 bytes
-rw-r--r--sphinx/locale/cak/LC_MESSAGES/sphinx.po1575
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.mobin7797 -> 7745 bytes
-rw-r--r--sphinx/locale/cs/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/cy/LC_MESSAGES/sphinx.mobin5686 -> 5631 bytes
-rw-r--r--sphinx/locale/cy/LC_MESSAGES/sphinx.po1581
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.mobin12266 -> 12137 bytes
-rw-r--r--sphinx/locale/da/LC_MESSAGES/sphinx.po1619
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.mobin10680 -> 10544 bytes
-rw-r--r--sphinx/locale/de/LC_MESSAGES/sphinx.po1619
-rw-r--r--sphinx/locale/de_DE/LC_MESSAGES/sphinx.mobin505 -> 505 bytes
-rw-r--r--sphinx/locale/de_DE/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/el/LC_MESSAGES/sphinx.mobin80411 -> 77824 bytes
-rw-r--r--sphinx/locale/el/LC_MESSAGES/sphinx.po1649
-rw-r--r--sphinx/locale/en_DE/LC_MESSAGES/sphinx.mobin506 -> 506 bytes
-rw-r--r--sphinx/locale/en_DE/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/en_FR/LC_MESSAGES/sphinx.mobin462 -> 462 bytes
-rw-r--r--sphinx/locale/en_FR/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/en_GB/LC_MESSAGES/sphinx.mobin75590 -> 73526 bytes
-rw-r--r--sphinx/locale/en_GB/LC_MESSAGES/sphinx.po1655
-rw-r--r--sphinx/locale/en_HK/LC_MESSAGES/sphinx.mobin508 -> 508 bytes
-rw-r--r--sphinx/locale/en_HK/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/eo/LC_MESSAGES/sphinx.mobin1864 -> 1864 bytes
-rw-r--r--sphinx/locale/eo/LC_MESSAGES/sphinx.po1583
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.mobin80907 -> 78628 bytes
-rw-r--r--sphinx/locale/es/LC_MESSAGES/sphinx.po1655
-rw-r--r--sphinx/locale/es_CO/LC_MESSAGES/sphinx.mobin546 -> 546 bytes
-rw-r--r--sphinx/locale/es_CO/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.mobin32776 -> 31448 bytes
-rw-r--r--sphinx/locale/et/LC_MESSAGES/sphinx.po1633
-rw-r--r--sphinx/locale/eu/LC_MESSAGES/sphinx.mobin6505 -> 6451 bytes
-rw-r--r--sphinx/locale/eu/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.mobin97001 -> 94375 bytes
-rw-r--r--sphinx/locale/fa/LC_MESSAGES/sphinx.po1651
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.mobin2912 -> 2860 bytes
-rw-r--r--sphinx/locale/fi/LC_MESSAGES/sphinx.po1575
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.mobin83168 -> 83602 bytes
-rw-r--r--sphinx/locale/fr/LC_MESSAGES/sphinx.po1751
-rw-r--r--sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mobin555 -> 555 bytes
-rw-r--r--sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/gl/LC_MESSAGES/sphinx.js108
-rw-r--r--sphinx/locale/gl/LC_MESSAGES/sphinx.mobin4716 -> 82300 bytes
-rw-r--r--sphinx/locale/gl/LC_MESSAGES/sphinx.po2955
-rw-r--r--sphinx/locale/he/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/he/LC_MESSAGES/sphinx.mobin4822 -> 4723 bytes
-rw-r--r--sphinx/locale/he/LC_MESSAGES/sphinx.po1589
-rw-r--r--sphinx/locale/hi/LC_MESSAGES/sphinx.mobin96953 -> 93942 bytes
-rw-r--r--sphinx/locale/hi/LC_MESSAGES/sphinx.po1649
-rw-r--r--sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mobin502 -> 502 bytes
-rw-r--r--sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.mobin16384 -> 15878 bytes
-rw-r--r--sphinx/locale/hr/LC_MESSAGES/sphinx.po1631
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.mobin10971 -> 10914 bytes
-rw-r--r--sphinx/locale/hu/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/id/LC_MESSAGES/sphinx.mobin60268 -> 58320 bytes
-rw-r--r--sphinx/locale/id/LC_MESSAGES/sphinx.po1651
-rw-r--r--sphinx/locale/is/LC_MESSAGES/sphinx.mobin2614 -> 2614 bytes
-rw-r--r--sphinx/locale/is/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.mobin10036 -> 9978 bytes
-rw-r--r--sphinx/locale/it/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.mobin85691 -> 83408 bytes
-rw-r--r--sphinx/locale/ja/LC_MESSAGES/sphinx.po1649
-rw-r--r--sphinx/locale/ka/LC_MESSAGES/sphinx.mobin74059 -> 72238 bytes
-rw-r--r--sphinx/locale/ka/LC_MESSAGES/sphinx.po1639
-rw-r--r--sphinx/locale/ko/LC_MESSAGES/sphinx.mobin82285 -> 79948 bytes
-rw-r--r--sphinx/locale/ko/LC_MESSAGES/sphinx.po1653
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.mobin6832 -> 6779 bytes
-rw-r--r--sphinx/locale/lt/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.mobin6501 -> 6449 bytes
-rw-r--r--sphinx/locale/lv/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/mk/LC_MESSAGES/sphinx.mobin2011 -> 2011 bytes
-rw-r--r--sphinx/locale/mk/LC_MESSAGES/sphinx.po1593
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js54
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mobin6500 -> 7786 bytes
-rw-r--r--sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po1694
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.mobin8520 -> 8447 bytes
-rw-r--r--sphinx/locale/ne/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.mobin18611 -> 18068 bytes
-rw-r--r--sphinx/locale/nl/LC_MESSAGES/sphinx.po1631
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.mobin28827 -> 28277 bytes
-rw-r--r--sphinx/locale/pl/LC_MESSAGES/sphinx.po1633
-rw-r--r--sphinx/locale/pt/LC_MESSAGES/sphinx.mobin544 -> 544 bytes
-rw-r--r--sphinx/locale/pt/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mobin81014 -> 83715 bytes
-rw-r--r--sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po1759
-rw-r--r--sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mobin7764 -> 7711 bytes
-rw-r--r--sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/ro/LC_MESSAGES/sphinx.mobin8259 -> 8204 bytes
-rw-r--r--sphinx/locale/ro/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.mobin15343 -> 15170 bytes
-rw-r--r--sphinx/locale/ru/LC_MESSAGES/sphinx.po1619
-rw-r--r--sphinx/locale/si/LC_MESSAGES/sphinx.mobin3560 -> 3488 bytes
-rw-r--r--sphinx/locale/si/LC_MESSAGES/sphinx.po1589
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.mobin66206 -> 64286 bytes
-rw-r--r--sphinx/locale/sk/LC_MESSAGES/sphinx.po1651
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.mobin5157 -> 5105 bytes
-rw-r--r--sphinx/locale/sl/LC_MESSAGES/sphinx.po1607
-rw-r--r--sphinx/locale/sphinx.pot1568
-rw-r--r--sphinx/locale/sq/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/sq/LC_MESSAGES/sphinx.mobin79459 -> 81067 bytes
-rw-r--r--sphinx/locale/sq/LC_MESSAGES/sphinx.po1673
-rw-r--r--sphinx/locale/sr/LC_MESSAGES/sphinx.mobin9193 -> 9125 bytes
-rw-r--r--sphinx/locale/sr/LC_MESSAGES/sphinx.po1613
-rw-r--r--sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mobin584 -> 584 bytes
-rw-r--r--sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mobin579 -> 579 bytes
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.mobin6491 -> 6436 bytes
-rw-r--r--sphinx/locale/sv/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/ta/LC_MESSAGES/sphinx.js108
-rw-r--r--sphinx/locale/ta/LC_MESSAGES/sphinx.mobin647 -> 137491 bytes
-rw-r--r--sphinx/locale/ta/LC_MESSAGES/sphinx.po3001
-rw-r--r--sphinx/locale/te/LC_MESSAGES/sphinx.mobin489 -> 489 bytes
-rw-r--r--sphinx/locale/te/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.mobin56773 -> 55037 bytes
-rw-r--r--sphinx/locale/tr/LC_MESSAGES/sphinx.po1649
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mobin6349 -> 6287 bytes
-rw-r--r--sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po1609
-rw-r--r--sphinx/locale/ur/LC_MESSAGES/sphinx.mobin487 -> 487 bytes
-rw-r--r--sphinx/locale/ur/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/vi/LC_MESSAGES/sphinx.mobin5771 -> 5710 bytes
-rw-r--r--sphinx/locale/vi/LC_MESSAGES/sphinx.po1617
-rw-r--r--sphinx/locale/yue/LC_MESSAGES/sphinx.mobin487 -> 487 bytes
-rw-r--r--sphinx/locale/yue/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mobin75427 -> 73260 bytes
-rw-r--r--sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po1653
-rw-r--r--sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mobin501 -> 501 bytes
-rw-r--r--sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mobin516 -> 516 bytes
-rw-r--r--sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po1565
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js2
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mobin74037 -> 74071 bytes
-rw-r--r--sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po1701
-rw-r--r--sphinx/parsers.py12
-rw-r--r--sphinx/project.py29
-rw-r--r--sphinx/pycode/__init__.py11
-rw-r--r--sphinx/pycode/ast.py31
-rw-r--r--sphinx/pycode/parser.py11
-rw-r--r--sphinx/registry.py18
-rw-r--r--sphinx/roles.py160
-rw-r--r--sphinx/search/__init__.py35
-rw-r--r--sphinx/search/da.py4
-rw-r--r--sphinx/search/de.py4
-rw-r--r--sphinx/search/en.py2
-rw-r--r--sphinx/search/es.py4
-rw-r--r--sphinx/search/fi.py4
-rw-r--r--sphinx/search/fr.py4
-rw-r--r--sphinx/search/hu.py4
-rw-r--r--sphinx/search/it.py4
-rw-r--r--sphinx/search/ja.py35
-rw-r--r--sphinx/search/nl.py4
-rw-r--r--sphinx/search/no.py4
-rw-r--r--sphinx/search/pt.py4
-rw-r--r--sphinx/search/ro.py2
-rw-r--r--sphinx/search/ru.py4
-rw-r--r--sphinx/search/sv.py4
-rw-r--r--sphinx/search/tr.py2
-rw-r--r--sphinx/search/zh.py5
-rw-r--r--sphinx/templates/graphviz/graphviz.css2
-rw-r--r--sphinx/testing/fixtures.py65
-rw-r--r--sphinx/testing/path.py2
-rw-r--r--sphinx/testing/util.py195
-rw-r--r--sphinx/texinputs/sphinx.xdy2
-rw-r--r--sphinx/texinputs/sphinxlatextables.sty2
-rw-r--r--sphinx/texinputs/sphinxpackagesubstitutefont.sty21
-rw-r--r--sphinx/themes/agogo/layout.html8
-rw-r--r--sphinx/themes/agogo/static/agogo.css_t2
-rw-r--r--sphinx/themes/agogo/theme.conf20
-rw-r--r--sphinx/themes/agogo/theme.toml22
-rw-r--r--sphinx/themes/basic/defindex.html2
-rw-r--r--sphinx/themes/basic/domainindex.html2
-rw-r--r--sphinx/themes/basic/genindex-single.html2
-rw-r--r--sphinx/themes/basic/genindex-split.html2
-rw-r--r--sphinx/themes/basic/genindex.html2
-rw-r--r--sphinx/themes/basic/globaltoc.html2
-rw-r--r--sphinx/themes/basic/layout.html2
-rw-r--r--sphinx/themes/basic/localtoc.html2
-rw-r--r--sphinx/themes/basic/page.html2
-rw-r--r--sphinx/themes/basic/relations.html2
-rw-r--r--sphinx/themes/basic/search.html25
-rw-r--r--sphinx/themes/basic/searchbox.html6
-rw-r--r--sphinx/themes/basic/searchfield.html6
-rw-r--r--sphinx/themes/basic/sourcelink.html2
-rw-r--r--sphinx/themes/basic/static/basic.css_t2
-rw-r--r--sphinx/themes/basic/static/doctools.js2
-rw-r--r--sphinx/themes/basic/static/language_data.js_t4
-rw-r--r--sphinx/themes/basic/static/searchtools.js165
-rw-r--r--sphinx/themes/basic/theme.conf16
-rw-r--r--sphinx/themes/basic/theme.toml23
-rw-r--r--sphinx/themes/bizstyle/layout.html7
-rw-r--r--sphinx/themes/bizstyle/static/bizstyle.css_t2
-rw-r--r--sphinx/themes/bizstyle/static/bizstyle.js_t2
-rw-r--r--sphinx/themes/bizstyle/static/css3-mediaqueries_src.js6
-rw-r--r--sphinx/themes/bizstyle/theme.conf10
-rw-r--r--sphinx/themes/bizstyle/theme.toml12
-rw-r--r--sphinx/themes/classic/layout.html2
-rw-r--r--sphinx/themes/classic/static/classic.css_t2
-rw-r--r--sphinx/themes/classic/static/sidebar.js_t2
-rw-r--r--sphinx/themes/classic/theme.conf32
-rw-r--r--sphinx/themes/classic/theme.toml34
-rw-r--r--sphinx/themes/default/theme.conf2
-rw-r--r--sphinx/themes/default/theme.toml2
-rw-r--r--sphinx/themes/epub/epub-cover.html2
-rw-r--r--sphinx/themes/epub/layout.html2
-rw-r--r--sphinx/themes/epub/static/epub.css_t2
-rw-r--r--sphinx/themes/epub/theme.conf8
-rw-r--r--sphinx/themes/epub/theme.toml10
-rw-r--r--sphinx/themes/haiku/layout.html6
-rw-r--r--sphinx/themes/haiku/static/haiku.css_t4
-rw-r--r--sphinx/themes/haiku/theme.conf14
-rw-r--r--sphinx/themes/haiku/theme.toml16
-rw-r--r--sphinx/themes/nature/static/nature.css_t2
-rw-r--r--sphinx/themes/nature/theme.conf4
-rw-r--r--sphinx/themes/nature/theme.toml6
-rw-r--r--sphinx/themes/nonav/layout.html2
-rw-r--r--sphinx/themes/nonav/static/nonav.css_t2
-rw-r--r--sphinx/themes/nonav/theme.conf8
-rw-r--r--sphinx/themes/nonav/theme.toml10
-rw-r--r--sphinx/themes/pyramid/static/epub.css_t2
-rw-r--r--sphinx/themes/pyramid/static/pyramid.css_t2
-rw-r--r--sphinx/themes/pyramid/theme.conf4
-rw-r--r--sphinx/themes/pyramid/theme.toml6
-rw-r--r--sphinx/themes/scrolls/artwork/logo.svg2
-rw-r--r--sphinx/themes/scrolls/layout.html4
-rw-r--r--sphinx/themes/scrolls/static/scrolls.css_t2
-rw-r--r--sphinx/themes/scrolls/theme.conf13
-rw-r--r--sphinx/themes/scrolls/theme.toml15
-rw-r--r--sphinx/themes/sphinxdoc/static/sphinxdoc.css_t2
-rw-r--r--sphinx/themes/sphinxdoc/theme.conf4
-rw-r--r--sphinx/themes/sphinxdoc/theme.toml6
-rw-r--r--sphinx/themes/traditional/static/traditional.css_t2
-rw-r--r--sphinx/themes/traditional/theme.conf7
-rw-r--r--sphinx/themes/traditional/theme.toml9
-rw-r--r--sphinx/theming.py600
-rw-r--r--sphinx/transforms/__init__.py45
-rw-r--r--sphinx/transforms/compact_bullet_list.py10
-rw-r--r--sphinx/transforms/i18n.py58
-rw-r--r--sphinx/transforms/post_transforms/__init__.py16
-rw-r--r--sphinx/transforms/post_transforms/code.py5
-rw-r--r--sphinx/transforms/post_transforms/images.py30
-rw-r--r--sphinx/transforms/references.py4
-rw-r--r--sphinx/util/__init__.py26
-rw-r--r--sphinx/util/_io.py34
-rw-r--r--sphinx/util/_pathlib.py41
-rw-r--r--sphinx/util/build_phase.py1
-rw-r--r--sphinx/util/cfamily.py30
-rw-r--r--sphinx/util/console.py122
-rw-r--r--sphinx/util/display.py5
-rw-r--r--sphinx/util/docfields.py20
-rw-r--r--sphinx/util/docutils.py56
-rw-r--r--sphinx/util/exceptions.py5
-rw-r--r--sphinx/util/fileutil.py10
-rw-r--r--sphinx/util/http_date.py11
-rw-r--r--sphinx/util/i18n.py49
-rw-r--r--sphinx/util/inspect.py562
-rw-r--r--sphinx/util/inventory.py27
-rw-r--r--sphinx/util/logging.py88
-rw-r--r--sphinx/util/matching.py3
-rw-r--r--sphinx/util/math.py3
-rw-r--r--sphinx/util/nodes.py68
-rw-r--r--sphinx/util/osutil.py31
-rw-r--r--sphinx/util/parallel.py7
-rw-r--r--sphinx/util/requests.py13
-rw-r--r--sphinx/util/rst.py14
-rw-r--r--sphinx/util/tags.py6
-rw-r--r--sphinx/util/template.py11
-rw-r--r--sphinx/util/typing.py118
-rw-r--r--sphinx/versioning.py8
-rw-r--r--sphinx/writers/html.py2
-rw-r--r--sphinx/writers/html5.py30
-rw-r--r--sphinx/writers/latex.py24
-rw-r--r--sphinx/writers/manpage.py20
-rw-r--r--sphinx/writers/texinfo.py23
-rw-r--r--sphinx/writers/text.py36
-rw-r--r--sphinx/writers/xml.py2
-rw-r--r--tests/conftest.py30
-rw-r--r--tests/js/searchtools.js99
-rw-r--r--tests/roots/test-changes/base.rst3
-rw-r--r--tests/roots/test-changes/conf.py2
-rw-r--r--tests/roots/test-domain-cpp/operator-lookup.rst28
-rw-r--r--tests/roots/test-domain-py/module.rst6
-rw-r--r--tests/roots/test-ext-autodoc/target/enums.py231
-rw-r--r--tests/roots/test-ext-autodoc/target/functions.py3
-rw-r--r--tests/roots/test-ext-autodoc/target/inherited_annotations.py17
-rw-r--r--tests/roots/test-ext-autodoc/target/singledispatchmethod_classmethod.py31
-rw-r--r--tests/roots/test-ext-doctest-skipif/conf.py2
-rw-r--r--tests/roots/test-ext-doctest/doctest.txt2
-rw-r--r--tests/roots/test-ext-imgmockconverter/mocksvgconverter.py4
-rw-r--r--tests/roots/test-ext-intersphinx-role/index.rst4
-rw-r--r--tests/roots/test-ext-math-include/conf.py0
-rw-r--r--tests/roots/test-ext-math-include/included.rst6
-rw-r--r--tests/roots/test-ext-math-include/index.rst7
-rw-r--r--tests/roots/test-ext-math-include/math.rst4
-rw-r--r--tests/roots/test-ext-napoleon-paramtype/conf.py15
-rw-r--r--tests/roots/test-ext-napoleon-paramtype/index.rst8
-rw-r--r--tests/roots/test-ext-napoleon-paramtype/pkg/__init__.py0
-rw-r--r--tests/roots/test-ext-napoleon-paramtype/pkg/bar.py10
-rw-r--r--tests/roots/test-ext-napoleon-paramtype/pkg/foo.py27
-rw-r--r--tests/roots/test-ext-viewcode/conf.py6
-rw-r--r--tests/roots/test-footnotes/index.rst8
-rw-r--r--tests/roots/test-images/index.rst4
-rw-r--r--tests/roots/test-intl/definition_terms.txt2
-rw-r--r--tests/roots/test-intl/external_links.txt12
-rw-r--r--tests/roots/test-intl/raw.txt2
-rw-r--r--tests/roots/test-intl/refs.txt2
-rw-r--r--tests/roots/test-intl/refs_inconsistency.txt2
-rw-r--r--tests/roots/test-intl/versionchange.txt2
-rw-r--r--tests/roots/test-intl/xx/LC_MESSAGES/definition_terms.po4
-rw-r--r--tests/roots/test-intl/xx/LC_MESSAGES/external_links.po12
-rw-r--r--tests/roots/test-intl/xx/LC_MESSAGES/raw.po4
-rw-r--r--tests/roots/test-intl/xx/LC_MESSAGES/versionchange.po2
-rw-r--r--tests/roots/test-linkcheck-anchors-ignore-for-url/conf.py2
-rw-r--r--tests/roots/test-linkcheck-anchors-ignore/conf.py2
-rw-r--r--tests/roots/test-linkcheck-documents_exclude/conf.py2
-rw-r--r--tests/roots/test-linkcheck-localserver-anchor/conf.py2
-rw-r--r--tests/roots/test-linkcheck-localserver-https/conf.py2
-rw-r--r--tests/roots/test-linkcheck-localserver-warn-redirects/conf.py2
-rw-r--r--tests/roots/test-linkcheck-localserver/conf.py2
-rw-r--r--tests/roots/test-linkcheck-raw-node/conf.py2
-rw-r--r--tests/roots/test-linkcheck-raw-node/index.rst2
-rw-r--r--tests/roots/test-linkcheck-too-many-retries/conf.py2
-rw-r--r--tests/roots/test-linkcheck/conf.py2
-rw-r--r--tests/roots/test-manpage_url/index.rst10
-rw-r--r--tests/roots/test-need-escaped/index.rst2
-rw-r--r--tests/roots/test-roles-download/index.rst2
-rw-r--r--tests/roots/test-root/conf.py4
-rw-r--r--tests/roots/test-root/images.txt3
-rw-r--r--tests/roots/test-root/index.txt6
-rw-r--r--tests/roots/test-root/markup.txt5
-rw-r--r--tests/roots/test-toctree/index.rst6
-rw-r--r--tests/roots/test-versioning/insert_beginning.txt2
-rw-r--r--tests/test_addnodes.py8
-rw-r--r--tests/test_application.py18
-rw-r--r--tests/test_build_html.py1841
-rw-r--r--tests/test_builders/__init__.py0
-rw-r--r--tests/test_builders/conftest.py28
-rw-r--r--tests/test_builders/test_build.py (renamed from tests/test_build.py)38
-rw-r--r--tests/test_builders/test_build_changes.py (renamed from tests/test_build_changes.py)2
-rw-r--r--tests/test_builders/test_build_dirhtml.py (renamed from tests/test_build_dirhtml.py)0
-rw-r--r--tests/test_builders/test_build_epub.py (renamed from tests/test_build_epub.py)38
-rw-r--r--tests/test_builders/test_build_gettext.py (renamed from tests/test_build_gettext.py)18
-rw-r--r--tests/test_builders/test_build_html.py378
-rw-r--r--tests/test_builders/test_build_html_5_output.py276
-rw-r--r--tests/test_builders/test_build_html_assets.py152
-rw-r--r--tests/test_builders/test_build_html_code.py46
-rw-r--r--tests/test_builders/test_build_html_download.py62
-rw-r--r--tests/test_builders/test_build_html_highlight.py61
-rw-r--r--tests/test_builders/test_build_html_image.py80
-rw-r--r--tests/test_builders/test_build_html_maths.py58
-rw-r--r--tests/test_builders/test_build_html_numfig.py487
-rw-r--r--tests/test_builders/test_build_html_tocdepth.py94
-rw-r--r--tests/test_builders/test_build_latex.py (renamed from tests/test_build_latex.py)274
-rw-r--r--tests/test_builders/test_build_linkcheck.py (renamed from tests/test_build_linkcheck.py)401
-rw-r--r--tests/test_builders/test_build_manpage.py (renamed from tests/test_build_manpage.py)7
-rw-r--r--tests/test_builders/test_build_texinfo.py (renamed from tests/test_build_texinfo.py)35
-rw-r--r--tests/test_builders/test_build_text.py (renamed from tests/test_build_text.py)28
-rw-r--r--tests/test_builders/test_build_warnings.py89
-rw-r--r--tests/test_builders/test_builder.py (renamed from tests/test_builder.py)5
-rw-r--r--tests/test_builders/xpath_data.py8
-rw-r--r--tests/test_builders/xpath_util.py79
-rw-r--r--tests/test_config/__init__.py0
-rw-r--r--tests/test_config/test_config.py (renamed from tests/test_config.py)342
-rw-r--r--tests/test_config/test_correct_year.py (renamed from tests/test_correct_year.py)0
-rw-r--r--tests/test_directives/__init__.py0
-rw-r--r--tests/test_directives/test_directive_code.py (renamed from tests/test_directive_code.py)36
-rw-r--r--tests/test_directives/test_directive_object_description.py (renamed from tests/test_directive_object_description.py)0
-rw-r--r--tests/test_directives/test_directive_only.py (renamed from tests/test_directive_only.py)4
-rw-r--r--tests/test_directives/test_directive_option.py40
-rw-r--r--tests/test_directives/test_directive_other.py (renamed from tests/test_directive_other.py)0
-rw-r--r--tests/test_directives/test_directive_patch.py (renamed from tests/test_directive_patch.py)0
-rw-r--r--tests/test_directives/test_directives_no_typesetting.py (renamed from tests/test_directives_no_typesetting.py)0
-rw-r--r--tests/test_domain_py.py2123
-rw-r--r--tests/test_domains/__init__.py0
-rw-r--r--tests/test_domains/test_domain_c.py (renamed from tests/test_domain_c.py)38
-rw-r--r--tests/test_domains/test_domain_cpp.py (renamed from tests/test_domain_cpp.py)63
-rw-r--r--tests/test_domains/test_domain_js.py (renamed from tests/test_domain_js.py)6
-rw-r--r--tests/test_domains/test_domain_py.py1015
-rw-r--r--tests/test_domains/test_domain_py_canonical.py77
-rw-r--r--tests/test_domains/test_domain_py_fields.py326
-rw-r--r--tests/test_domains/test_domain_py_pyfunction.py396
-rw-r--r--tests/test_domains/test_domain_py_pyobject.py487
-rw-r--r--tests/test_domains/test_domain_rst.py (renamed from tests/test_domain_rst.py)0
-rw-r--r--tests/test_domains/test_domain_std.py (renamed from tests/test_domain_std.py)34
-rw-r--r--tests/test_environment/__init__.py0
-rw-r--r--tests/test_environment/test_environment.py (renamed from tests/test_environment.py)0
-rw-r--r--tests/test_environment/test_environment_indexentries.py (renamed from tests/test_environment_indexentries.py)0
-rw-r--r--tests/test_environment/test_environment_record_dependencies.py (renamed from tests/test_environment_record_dependencies.py)0
-rw-r--r--tests/test_environment/test_environment_toctree.py (renamed from tests/test_environment_toctree.py)34
-rw-r--r--tests/test_events.py10
-rw-r--r--tests/test_extensions/__init__.py0
-rw-r--r--tests/test_extensions/autodoc_util.py33
-rw-r--r--tests/test_extensions/ext_napoleon_pep526_data_google.py (renamed from tests/ext_napoleon_pep526_data_google.py)2
-rw-r--r--tests/test_extensions/ext_napoleon_pep526_data_numpy.py (renamed from tests/ext_napoleon_pep526_data_numpy.py)1
-rw-r--r--tests/test_extensions/test_ext_apidoc.py (renamed from tests/test_ext_apidoc.py)20
-rw-r--r--tests/test_extensions/test_ext_autodoc.py (renamed from tests/test_ext_autodoc.py)626
-rw-r--r--tests/test_extensions/test_ext_autodoc_autoattribute.py (renamed from tests/test_ext_autodoc_autoattribute.py)2
-rw-r--r--tests/test_extensions/test_ext_autodoc_autoclass.py (renamed from tests/test_ext_autodoc_autoclass.py)55
-rw-r--r--tests/test_extensions/test_ext_autodoc_autodata.py (renamed from tests/test_ext_autodoc_autodata.py)2
-rw-r--r--tests/test_extensions/test_ext_autodoc_autofunction.py (renamed from tests/test_ext_autodoc_autofunction.py)13
-rw-r--r--tests/test_extensions/test_ext_autodoc_automodule.py (renamed from tests/test_ext_autodoc_automodule.py)2
-rw-r--r--tests/test_extensions/test_ext_autodoc_autoproperty.py (renamed from tests/test_ext_autodoc_autoproperty.py)2
-rw-r--r--tests/test_extensions/test_ext_autodoc_configs.py (renamed from tests/test_ext_autodoc_configs.py)48
-rw-r--r--tests/test_extensions/test_ext_autodoc_events.py (renamed from tests/test_ext_autodoc_events.py)2
-rw-r--r--tests/test_extensions/test_ext_autodoc_mock.py (renamed from tests/test_ext_autodoc_mock.py)0
-rw-r--r--tests/test_extensions/test_ext_autodoc_preserve_defaults.py (renamed from tests/test_ext_autodoc_preserve_defaults.py)2
-rw-r--r--tests/test_extensions/test_ext_autodoc_private_members.py (renamed from tests/test_ext_autodoc_private_members.py)2
-rw-r--r--tests/test_extensions/test_ext_autosectionlabel.py (renamed from tests/test_ext_autosectionlabel.py)28
-rw-r--r--tests/test_extensions/test_ext_autosummary.py (renamed from tests/test_ext_autosummary.py)10
-rw-r--r--tests/test_extensions/test_ext_coverage.py (renamed from tests/test_ext_coverage.py)8
-rw-r--r--tests/test_extensions/test_ext_doctest.py (renamed from tests/test_ext_doctest.py)11
-rw-r--r--tests/test_extensions/test_ext_duration.py (renamed from tests/test_ext_duration.py)0
-rw-r--r--tests/test_extensions/test_ext_extlinks.py (renamed from tests/test_ext_extlinks.py)0
-rw-r--r--tests/test_extensions/test_ext_githubpages.py (renamed from tests/test_ext_githubpages.py)6
-rw-r--r--tests/test_extensions/test_ext_graphviz.py (renamed from tests/test_ext_graphviz.py)44
-rw-r--r--tests/test_extensions/test_ext_ifconfig.py (renamed from tests/test_ext_ifconfig.py)2
-rw-r--r--tests/test_extensions/test_ext_imgconverter.py (renamed from tests/test_ext_imgconverter.py)5
-rw-r--r--tests/test_extensions/test_ext_imgmockconverter.py (renamed from tests/test_ext_imgmockconverter.py)2
-rw-r--r--tests/test_extensions/test_ext_inheritance_diagram.py (renamed from tests/test_ext_inheritance_diagram.py)20
-rw-r--r--tests/test_extensions/test_ext_intersphinx.py (renamed from tests/test_ext_intersphinx.py)134
-rw-r--r--tests/test_extensions/test_ext_math.py (renamed from tests/test_ext_math.py)104
-rw-r--r--tests/test_extensions/test_ext_napoleon.py (renamed from tests/test_ext_napoleon.py)2
-rw-r--r--tests/test_extensions/test_ext_napoleon_docstring.py (renamed from tests/test_ext_napoleon_docstring.py)51
-rw-r--r--tests/test_extensions/test_ext_todo.py (renamed from tests/test_ext_todo.py)7
-rw-r--r--tests/test_extensions/test_ext_viewcode.py (renamed from tests/test_ext_viewcode.py)20
-rw-r--r--tests/test_extensions/test_extension.py (renamed from tests/test_extension.py)0
-rw-r--r--tests/test_intl/__init__.py0
-rw-r--r--tests/test_intl/test_catalogs.py (renamed from tests/test_catalogs.py)0
-rw-r--r--tests/test_intl/test_intl.py (renamed from tests/test_intl.py)339
-rw-r--r--tests/test_intl/test_locale.py (renamed from tests/test_locale.py)0
-rw-r--r--tests/test_markup/__init__.py0
-rw-r--r--tests/test_markup/test_markup.py (renamed from tests/test_markup.py)12
-rw-r--r--tests/test_markup/test_metadata.py (renamed from tests/test_metadata.py)0
-rw-r--r--tests/test_markup/test_parser.py (renamed from tests/test_parser.py)0
-rw-r--r--tests/test_markup/test_smartquotes.py (renamed from tests/test_smartquotes.py)7
-rw-r--r--tests/test_pycode/__init__.py0
-rw-r--r--tests/test_pycode/test_pycode.py (renamed from tests/test_pycode.py)0
-rw-r--r--tests/test_pycode/test_pycode_ast.py (renamed from tests/test_pycode_ast.py)10
-rw-r--r--tests/test_pycode/test_pycode_parser.py (renamed from tests/test_pycode_parser.py)0
-rw-r--r--tests/test_quickstart.py2
-rw-r--r--tests/test_search.py60
-rw-r--r--tests/test_theming.py131
-rw-r--r--tests/test_theming/__init__.py0
-rw-r--r--tests/test_theming/test_html_theme.py35
-rw-r--r--tests/test_theming/test_templating.py (renamed from tests/test_templating.py)21
-rw-r--r--tests/test_theming/test_theming.py227
-rw-r--r--tests/test_theming/theme.conf7
-rw-r--r--tests/test_theming/theme.toml10
-rw-r--r--tests/test_toctree.py6
-rw-r--r--tests/test_transforms/__init__.py0
-rw-r--r--tests/test_transforms/test_transforms_move_module_targets.py (renamed from tests/test_transforms_move_module_targets.py)0
-rw-r--r--tests/test_transforms/test_transforms_post_transforms.py (renamed from tests/test_transforms_post_transforms.py)3
-rw-r--r--tests/test_transforms/test_transforms_post_transforms_code.py (renamed from tests/test_transforms_post_transforms_code.py)0
-rw-r--r--tests/test_transforms/test_transforms_reorder_nodes.py (renamed from tests/test_transforms_reorder_nodes.py)0
-rw-r--r--tests/test_util/__init__.py0
-rw-r--r--tests/test_util/intersphinx_data.py52
-rw-r--r--tests/test_util/test_util.py (renamed from tests/test_util.py)0
-rw-r--r--tests/test_util/test_util_console.py90
-rw-r--r--tests/test_util/test_util_display.py (renamed from tests/test_util_display.py)22
-rw-r--r--tests/test_util/test_util_docstrings.py (renamed from tests/test_util_docstrings.py)0
-rw-r--r--tests/test_util/test_util_docutils.py (renamed from tests/test_util_docutils.py)0
-rw-r--r--tests/test_util/test_util_fileutil.py (renamed from tests/test_util_fileutil.py)0
-rw-r--r--tests/test_util/test_util_i18n.py (renamed from tests/test_util_i18n.py)2
-rw-r--r--tests/test_util/test_util_images.py (renamed from tests/test_util_images.py)0
-rw-r--r--tests/test_util/test_util_inspect.py (renamed from tests/test_util_inspect.py)118
-rw-r--r--tests/test_util/test_util_inventory.py (renamed from tests/test_util_inventory.py)60
-rw-r--r--tests/test_util/test_util_logging.py (renamed from tests/test_util_logging.py)24
-rw-r--r--tests/test_util/test_util_matching.py (renamed from tests/test_util_matching.py)0
-rw-r--r--tests/test_util/test_util_nodes.py (renamed from tests/test_util_nodes.py)4
-rw-r--r--tests/test_util/test_util_rst.py (renamed from tests/test_util_rst.py)0
-rw-r--r--tests/test_util/test_util_template.py (renamed from tests/test_util_template.py)0
-rw-r--r--tests/test_util/test_util_typing.py (renamed from tests/test_util_typing.py)243
-rw-r--r--tests/test_util/typing_test_data.py (renamed from tests/typing_test_data.py)4
-rw-r--r--tests/test_writers/__init__.py0
-rw-r--r--tests/test_writers/test_api_translator.py (renamed from tests/test_api_translator.py)0
-rw-r--r--tests/test_writers/test_docutilsconf.py (renamed from tests/test_docutilsconf.py)4
-rw-r--r--tests/test_writers/test_writer_latex.py (renamed from tests/test_writer_latex.py)0
-rw-r--r--tests/utils.py130
-rw-r--r--utils/CHANGES_template.rst (renamed from utils/CHANGES_template)0
-rw-r--r--utils/babel_runner.py96
-rwxr-xr-x[-rw-r--r--]utils/bump_docker.py32
-rwxr-xr-xutils/bump_version.py57
-rw-r--r--utils/release-checklist.rst (renamed from utils/release-checklist)0
695 files changed, 87841 insertions, 78508 deletions
diff --git a/AUTHORS b/AUTHORS.rst
index 786d28c..1b4d6e7 100644
--- a/AUTHORS
+++ b/AUTHORS.rst
@@ -4,19 +4,14 @@ Maintainers
*Listed alphabetically in forename, surname order*
* Adam Turner <@AA-Turner>
-* Armin Ronacher <armin.ronacher@active-4.com>
-* Daniel Neuhäuser <@DasIch>
+* Bénédikt Tran <@picnixz>
+* Chris Sewell <@chrisjsewell>
* François Freitag <@francoisfreitag>
-* Georg Brandl <georg@python.org>
* Jakob Lykke Andersen <@jakobandersen>
* Jean-François Burnol <@jfbu>
-* Rob Ruana <@RobRuana>
-* Robert Lehmann <@lehmannro>
* Stephen Finucane <@stephenfin>
-* Takayuki Shimizukawa <shimizukawa@gmail.com>
+* Takayuki Shimizukawa <@shimizukawa>
* Takeshi Komiya <@tk0miya>
-* Timotheus Kampik <@TimKam>
-* Yoshiki Shibukawa <@shibukawa>
Contributors
============
@@ -92,4 +87,20 @@ Contributors
* Will Maier -- directory HTML builder
* Zac Hatfield-Dodds -- doctest reporting improvements, intersphinx performance
+Former maintainers
+==================
+
+*Listed alphabetically in forename, surname order*
+
+Former maintainers are those who haven't committed in the last two years.
+Those on the list below may become active maintainers again at any time.
+
+* Armin Ronacher <@mitsuhiko>
+* Daniel Neuhäuser <@DasIch>
+* Georg Brandl <georg@python.org>
+* Rob Ruana <@RobRuana>
+* Robert Lehmann <@lehmannro>
+* Timotheus Kampik <@TimKam>
+* Yoshiki Shibukawa <@shibukawa>
+
Many thanks for all contributions!
diff --git a/CHANGES b/CHANGES.rst
index 84c7abf..cfc924b 100644
--- a/CHANGES
+++ b/CHANGES.rst
@@ -1,3 +1,279 @@
+Release 7.3.7 (released Apr 19, 2024)
+=====================================
+
+Bugs fixed
+----------
+
+* #12299: Defer loading themes defined via entry points until
+ their explicit use by the user or a child theme.
+ Patch by Adam Turner.
+* #12305: Return the default value for ``theme.get_config()`` with
+ an unsupported theme configuration section.
+ Patch by Adam Turner.
+
+Release 7.3.6 (released Apr 17, 2024)
+=====================================
+
+Bugs fixed
+----------
+
+* #12295: Re-export all AST types in the C and C++ domains.
+ Patch by Adam Turner.
+* #12295: Re-export various objects from ``sphinx.domains.python._annotations``
+ in ``sphinx.domains.python``.
+ Patch by Jacob Chesslo and Adam Turner.
+
+Release 7.3.5 (released Apr 17, 2024)
+=====================================
+
+Bugs fixed
+----------
+
+* #12295: Re-export various objects from ``sphinx.domains.python._object``
+ in ``sphinx.domains.python``.
+ Patch by Jacob Chesslo and Adam Turner.
+
+Release 7.3.4 (released Apr 17, 2024)
+=====================================
+
+Bugs fixed
+----------
+
+* Handle cases when ``Any`` is not an instance of ``type``.
+ Patch by Adam Turner.
+
+Release 7.3.3 (released Apr 17, 2024)
+=====================================
+
+Bugs fixed
+----------
+
+* #12290: Fix a false-positive warning when setting a configuration value
+ with ``Any`` as the valid type to a type other than the value's default.
+ Patch by Adam Turner.
+
+Release 7.3.2 (released Apr 17, 2024)
+=====================================
+
+Bugs fixed
+----------
+
+* Preload all themes defined via entry points.
+ Patch by Adam Turner.
+* Fix a bad interaction between the ``'Furo'`` theme and the new-style for
+ configuration values.
+ Patch by Adam Turner.
+
+Release 7.3.1 (released Apr 17, 2024)
+=====================================
+
+Dependencies
+------------
+
+* Require ``tomli`` on Python 3.10 and earlier.
+ Patch by Adam Turner.
+
+Release 7.3.0 (released Apr 16, 2024)
+=====================================
+
+Dependencies
+------------
+
+* #11858: Increase the minimum supported version of Alabaster to 0.7.14.
+ Patch by Adam Turner.
+* #11411: Support `Docutils 0.21`_. Patch by Adam Turner.
+
+ .. _Docutils 0.21: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-21-2024-04-09
+* #12012: Use ``types-docutils`` instead of ``docutils-stubs``.
+
+Deprecated
+----------
+
+* #11693: Support for old-style :file:`Makefile` and :file:`make.bat` output
+ in :program:`sphinx-quickstart`, and the associated options :option:`!-M`,
+ :option:`!-m`, :option:`!--no-use-make-mode`, and :option:`!--use-make-mode`.
+* #11285: Direct access to :attr:`!sphinx.testing.util.SphinxTestApp._status`
+ or :attr:`!sphinx.testing.util.SphinxTestApp._warning` is deprecated. Use
+ the public properties :attr:`!sphinx.testing.util.SphinxTestApp.status`
+ and :attr:`!sphinx.testing.util.SphinxTestApp.warning` instead.
+ Patch by Bénédikt Tran.
+* tests: :func:`!sphinx.testing.util.strip_escseq` is deprecated in favour of
+ :func:`!sphinx.util.console.strip_colors`.
+ Patch by Bénédikt Tran.
+
+Features added
+--------------
+
+* #12265: Support theme configuration via ``theme.toml``.
+* #11701: HTML Search: Adopt the new `\<search\>`_ element.
+ Patch by Bénédikt Tran.
+
+ .. _`\<search\>`: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/search
+* #11776: Add long option names to ``sphinx-build``.
+ Patch by Hugo van Kemenade, Adam Turner, Bénédikt Tran, and Ezio Melotti.
+* Organise the ``sphinx-build`` options into groups.
+ Patch by Adam Turner.
+* #11855: Defer computation of configuration values.
+ Patch by Adam Turner.
+* Add ``:no-search:`` as an alias of the ``:nosearch:`` metadata field.
+ Patch by Adam Turner.
+* #11803: autodoc: Use an overriden ``__repr__()`` function in an enum,
+ if defined. Patch by Shengyu Zhang.
+* #11825: Allow custom targets in the manpage role.
+ Patch by Nicolas Peugnet.
+* #11892: Improved performance when resolving cross references in the C++ domain.
+ Patch by Rouslan Korneychuk.
+* #11905: Add a :rst:dir:`versionremoved` directive.
+ Patch by Hugo van Kemenade, Adam Turner, and C.A.M. Gerlach.
+* #11981: Improve rendering of signatures using ``slice`` syntax,
+ e.g., ``def foo(arg: np.float64[:,:]) -> None: ...``.
+* The manpage builder now adds `OSC 8`_ anchors to hyperlinks, using
+ the `groff`_ device control command.
+
+ .. _OSC 8: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
+ .. _groff: https://lists.gnu.org/archive/html/groff/2021-10/msg00000.html
+* #11015: Change the text of the :rst:dir:`versionadded` directive from
+ ``New in [...]`` to ``Added in [...]``.
+ Patch by Bénédikt Tran.
+* #12131: Added :confval:`show_warning_types` configuration option.
+ Patch by Chris Sewell.
+* #12193: Improve ``external`` warnings for unknown roles.
+ In particular, suggest related role names if an object type is mistakenly used.
+ Patch by Chris Sewell.
+* Add public type alias :class:`sphinx.util.typing.ExtensionMetadata`.
+ This can be used by extension developers
+ to annotate the return type of their ``setup`` function.
+ Patch by Chris Sewell.
+
+Bugs fixed
+----------
+
+* #11668: Raise a useful error when ``theme.conf`` is missing.
+ Patch by Vinay Sajip.
+* #11622: Ensure that the order of keys in ``searchindex.js`` is deterministic.
+ Patch by Pietro Albini.
+* #11617: ANSI control sequences are stripped from the output when writing to
+ a warnings file with :option:`-w <sphinx-build -w>`.
+ Patch by Bénédikt Tran.
+* #11666: Skip all hidden directories in ``CatalogRepository.pofiles``.
+ Patch by Aryaz Eghbali.
+* #9686: html builder: Fix MathJax lazy loading when equations appear in titles.
+ Patch by Bénédikt Tran.
+* #11483: singlehtml builder: Fix MathJax lazy loading when the index does not
+ contain any math equations.
+ Patch by Bénédikt Tran.
+* #11697: HTML Search: add 'noindex' meta robots tag.
+ Patch by James Addison.
+* #11678: Fix a possible ``ZeroDivisionError`` in ``sphinx.ext.coverage``.
+ Patch by Stephen Finucane.
+* #11756: LaTeX: build error with recent TeXLive due to missing ``substitutefont``
+ package (triggered if using ``fontenc`` with ``T2A`` option and document
+ language is not a Cyrillic one).
+ Patch by Jean-François B.
+* #11675: Fix rendering of progression bars in environments that do not support
+ ANSI control sequences.
+ Patch by Bénédikt Tran.
+* #11861: Whitelist more types with an incorrect ``__module__`` attribute.
+ Patch by Adam Turner.
+* #11715: Apply ``tls_verify`` and ``tls_cacerts`` config to
+ ``ImageDownloader``.
+ Patch by Nick Touran.
+* Allow hyphens in group names for :rst:dir:`productionlist` cross-references.
+ Patch by Adam Turner.
+* #11433: Added the :confval:`linkcheck_allow_unauthorized` configuration option.
+ Set this option to ``False`` to report HTTP 401 (unauthorized) server
+ responses as broken.
+ Patch by James Addison.
+* #11868: linkcheck: added a distinct ``timeout`` reporting status code.
+ This can be enabled by setting :confval:`linkcheck_report_timeouts_as_broken`
+ to ``False``.
+ Patch by James Addison.
+* #11869: Refresh the documentation for the ``linkcheck_timeout`` setting.
+ Patch by James Addison.
+* #11874: Configure a default 30-second value for ``linkcheck_timeout``.
+ Patch by James Addison.
+* #11886: Print the Jinja2 template path chain in ``TemplateNotFound`` exceptions.
+ Patch by Colin Marquardt.
+* #11598: Do not use query components in URLs for assets in EPUB rendering.
+ Patch by David Runge.
+* #11904: Support unary subtraction when parsing annotations.
+ Patch by James Addison.
+* #11925: Blacklist the ``sphinxprettysearchresults`` extension; the functionality
+ it provides was merged into Sphinx v2.0.0.
+ Patch by James Addison.
+* #11917: Fix rendering of annotated inherited members for Python 3.9.
+ Patch by Janet Carson.
+* #11935: C Domain: Fix namespace-pop context.
+ Patch by Frank Dana.
+* #11923: Avoid zombie processes when parallel builds fail.
+ Patch by Felix von Drigalski.
+* #11353: Support enumeration classes inheriting from mixin or data types.
+ Patch by Bénédikt Tran.
+* #11962: Fix target resolution when using ``:paramtype:`` fields.
+ Patch by Bénédikt Tran.
+* #11944: Use anchor in search preview.
+ Patch by Will Lachance.
+* #12008: Fix case-sensitive lookup of ``std:label`` names in intersphinx inventory.
+ Patch by Michael Goerz.
+* #11958: HTML Search: Fix partial matches overwriting full matches.
+ Patch by William Lachance.
+* #11959: Fix multiple term matching when word appears in both title and document.
+ Patch by Will Lachance.
+* #11474: Fix doctrees caching causing files not be rebuilt in some cases,
+ e.g., when :confval:`numfig` is ``True``.
+ Patch by Bénédikt Tran.
+* #11278: autodoc: Fix rendering of :class:`functools.singledispatchmethod`
+ combined with :func:`@classmethod <classmethod>`.
+ Patch by Bénédikt Tran.
+* #11894: Do not add checksums to css files if building using the htmlhelp builder.
+ Patch by reduerK akiM.
+* #12052: Remove ``<script>`` and ``<style>`` tags from the content of search result
+ summary snippets.
+ Patch by James Addison.
+* #11578: HTML Search: Order non-main index entries after other results.
+ Patch by Brad King.
+* #12147: autosummary: Fix a bug whereby the wrong file extension
+ may be used,
+ when multiple suffixes are specified in :confval:`source_suffix`.
+ Patch by Sutou Kouhei.
+* #10786: improve the error message when a file to be copied (e.g., an asset)
+ is removed during Sphinx execution.
+ Patch by Bénédikt Tran.
+* #12040: HTML Search: Ensure that document titles that are partially-matched by
+ the user search query are included in search results.
+ Patch by James Addison.
+* #11970: singlehtml builder: make target URIs to be same-document references in
+ the sense of :rfc:`RFC 3986, §4.4 <3986#section-4.4>`, e.g., ``index.html#foo``
+ becomes ``#foo``. Patch by Eric Norige.
+* #12271: Partially revert Docutils' r9562__ to fix EPUB files.
+ Patch by Adam Turner.
+
+ __ https://sourceforge.net/p/docutils/code/9562/
+* #12253: Escape reserved path characters in the remote images post-transform
+ download cache.
+ Patch by James Addison and Adam Turner.
+
+Testing
+-------
+
+* Reorganise tests into directories.
+ Patch by Adam Turner.
+* Clean up global state in ``SphinxTestApp``.
+ Patch by Adam Turner.
+* #11285: :func:`!pytest.mark.sphinx` and :class:`!sphinx.testing.util.SphinxTestApp`
+ accept *warningiserror*, *keep_going* and *verbosity* as keyword arguments.
+ Patch by Bénédikt Tran.
+* #11285: :class:`!sphinx.testing.util.SphinxTestApp` *status* and *warning*
+ arguments are checked to be :class:`io.StringIO` objects (the public API
+ incorrectly assumed this without checking it).
+ Patch by Bénédikt Tran.
+* Report the result of ``test_run_epubcheck`` as ``skipped`` instead of
+ ``success`` when either Java or ``epubcheck`` are not available.
+* Use dynamic allocation of unused port numbers for the test HTTP(S) servers.
+ As a side-effect, this removes the need for test server lockfiles,
+ meaning that any remaining ``tests/test-server.lock`` files can safely be
+ deleted.
+
Release 7.2.6 (released Sep 13, 2023)
=====================================
@@ -89,7 +365,8 @@ Bugs fixed
----------
* Restored the the :py:class:`str` interface of the asset classes
- (``_CascadingStyleSheet`` and ``_JavaScript``), which several extensions relied upon.
+ (``_CascadingStyleSheet`` and ``_JavaScript``),
+ which several extensions relied upon.
This will be removed in Sphinx 9.
* Restored calls to ``Builder.add_{css,js}_file()``,
which several extensions relied upon.
@@ -649,8 +926,9 @@ Release 5.3.0 (released Oct 16, 2022)
* #10759: LaTeX: add :confval:`latex_table_style` and support the
``'booktabs'``, ``'borderless'``, and ``'colorrows'`` styles.
(thanks to Stefan Wiehler for initial pull requests #6666, #6671)
-* #10840: One can cross-reference including an option value like ``:option:`--module=foobar```,
- ``:option:`--module[=foobar]``` or ``:option:`--module foobar```.
+* #10840: One can cross-reference including an option value like
+ ``:option:`--module=foobar```, ``:option:`--module[=foobar]```,
+ or ``:option:`--module foobar```.
Patch by Martin Liska.
* #10881: autosectionlabel: Record the generated section label to the debug log.
* #10268: Correctly URI-escape image filenames.
@@ -804,8 +1082,8 @@ Bugs fixed
* #8686: LaTeX: Text can fall out of code-block at end of page and leave artifact
on next page
* #10633: LaTeX: user injected ``\color`` commands in topic or admonition boxes may
- cause color leaks in PDF due to upstream `framed.sty <https://ctan.org/pkg/framed>`_
- bug
+ cause color leaks in PDF due to upstream `framed.sty
+ <https://ctan.org/pkg/framed>`_ bug
* #10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted
diffs using Pygments style ``'manni'``) inherit thickness of code-block frame
* #10647: LaTeX: Only one ``\label`` is generated for ``desc_signature`` node
@@ -1173,7 +1451,7 @@ Bugs fixed
* #9844: autodoc: Failed to process a function wrapped with functools.partial if
:confval:`autodoc_preserve_defaults` enabled
* #9872: html: Class namespace collision between autodoc signatures and
- docutils-0.17
+ Docutils 0.17
* #9868: imgmath: Crashed if the dvisvgm command failed to convert equation
* #9864: mathjax: Failed to render equations via MathJax v2. The loading method
of MathJax is back to "async" method again
@@ -1192,7 +1470,7 @@ Incompatible changes
* #9649: ``searchindex.js``: the embedded data has changed format to allow
objects with the same name in different domains.
* #9672: The rendering of Python domain declarations is implemented
- with more docutils nodes to allow better CSS styling.
+ with more Docutils nodes to allow better CSS styling.
It may break existing styling.
* #9672: the signature of
``domains.python.PyObject.get_signature_prefix`` has changed to
@@ -1201,7 +1479,7 @@ Incompatible changes
``get_display_prefix`` which now returns a list of nodes
instead of a plain string.
* #9695: The rendering of Javascript domain declarations is implemented
- with more docutils nodes to allow better CSS styling.
+ with more Docutils nodes to allow better CSS styling.
It may break existing styling.
* #9450: mathjax: Load MathJax via "defer" strategy
@@ -1407,7 +1685,7 @@ Features added
* #3257: autosummary: Support instance attributes for classes
* #9358: html: Add "heading" role to the toctree items
* #9225: html: Add span tag to the return typehint of method/function
-* #9129: html search: Show search summaries when html_copy_source = False
+* #9129: html search: Show search summaries when ``html_copy_source = False``
* #9307: html search: Prevent corrections and completions in search field
* #9120: html theme: Eliminate prompt characters of code-block from copyable
text
@@ -1548,12 +1826,12 @@ Dependencies
4.0.0b1
* Drop python 3.5 support
-* Drop docutils 0.12 and 0.13 support
+* Drop Docutils 0.12 and 0.13 support
* LaTeX: add ``tex-gyre`` font dependency
4.0.0b2
-* Support docutils-0.17. Please notice it changes the output of HTML builder.
+* Support Docutils 0.17. Please notice it changes the output of HTML builder.
Some themes do not support it, and you need to update your custom CSS to
upgrade it.
@@ -1585,7 +1863,7 @@ Incompatible changes
* html theme: Move a script tag for documentation_options.js in
basic/layout.html to ``script_files`` variable
* html theme: Move CSS tags in basic/layout.html to ``css_files`` variable
-* #8915: html theme: Emit a warning for sphinx_rtd_theme-0.2.4 or older
+* #8915: html theme: Emit a warning for ``sphinx_rtd_theme`` 0.2.4 or older
* #8508: LaTeX: uplatex becomes a default setting of latex_engine for Japanese
documents
* #5977: py domain: ``:var:``, ``:cvar:`` and ``:ivar:`` fields do not create
@@ -1679,9 +1957,10 @@ Bugs fixed
* #8415: autodoc: a TypeVar imported from other module is not resolved (in
Python 3.7 or above)
* #8992: autodoc: Failed to resolve types.TracebackType type annotation
-* #8905: html: html_add_permalinks=None and html_add_permalinks="" are ignored
+* #8905: html: ``html_add_permalinks=None`` and ``html_add_permalinks=""``
+ are ignored
* #8380: html search: Paragraphs in search results are not identified as ``<p>``
-* #8915: html theme: The translation of sphinx_rtd_theme does not work
+* #8915: html theme: The translation of ``sphinx_rtd_theme`` does not work
* #8342: Emit a warning if a unknown domain is given for directive or role (ex.
``:unknown:doc:``)
* #7241: LaTeX: No wrapping for ``cpp:enumerator``
@@ -1727,14 +2006,14 @@ Release 3.5.4 (released Apr 11, 2021)
Dependencies
------------
-* #9071: Restrict docutils to 0.16
+* #9071: Restrict Docutils to 0.16
Bugs fixed
----------
* #9078: autodoc: Async staticmethods and classmethods are considered as non
async coroutine-functions with Python3.10
-* #8870, #9001, #9051: html theme: The style are not applied with docutils-0.17
+* #8870, #9001, #9051: html theme: The style are not applied with Docutils 0.17
- toctree captions
- The content of ``sidebar`` directive
@@ -1869,7 +2148,7 @@ Bugs fixed
* #741: autodoc: inherited-members doesn't work for instance attributes on super
class
* #8592: autodoc: ``:meta public:`` does not effect to variables
-* #8594: autodoc: empty __all__ attribute is ignored
+* #8594: autodoc: empty ``__all__`` attribute is ignored
* #8315: autodoc: Failed to resolve struct.Struct type annotation
* #8652: autodoc: All variable comments in the module are ignored if the module
contains invalid type comments
@@ -1920,9 +2199,9 @@ Bugs fixed
* #8214: LaTeX: The :rst:role:`index` role and the glossary generate duplicate
entries in the LaTeX index (if both used for same term)
* #8735: LaTeX: wrong internal links in pdf to captioned code-blocks when
- :confval:`numfig` is not True
+ :confval:`numfig` is not ``True``
* #8442: LaTeX: some indexed terms are ignored when using xelatex engine
- (or pdflatex and :confval:`latex_use_xindy` set to True) with memoir class
+ (or pdflatex and :confval:`latex_use_xindy` set to ``True``) with memoir class
* #8750: LaTeX: URLs as footnotes fail to show in PDF if originating from
inside function type signatures
* #8780: LaTeX: long words in narrow columns may not be hyphenated
@@ -2015,8 +2294,8 @@ Features added
* #8219: autodoc: Parameters for generic class are not shown when super class is
a generic class and show-inheritance option is given (in Python 3.7 or above)
* autodoc: Add ``Documenter.config`` as a shortcut to access the config object
-* autodoc: Add Optional[t] to annotation of function and method if a default
- value equal to None is set.
+* autodoc: Add ``Optional[t]`` to annotation of function and method if a default
+ value equal to ``None`` is set.
* #8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and
:rst:dir:`autodata` directive to suppress the default value of the variable
* #8460: autodoc: Support custom types defined by typing.NewType
@@ -2127,8 +2406,8 @@ Bugs fixed
* #8085: i18n: Add support for having single text domain
* #6640: i18n: Failed to override system message translation
-* #8143: autodoc: AttributeError is raised when False value is passed to
- autodoc_default_options
+* #8143: autodoc: ``AttributeError`` is raised when ``False`` value is passed to
+ :confval:`autodoc_default_options`
* #8103: autodoc: functools.cached_property is not considered as a property
* #8190: autodoc: parsing error is raised if some extension replaces docstring
by string not ending with blank lines
@@ -2229,7 +2508,7 @@ Features added
* #7690: napoleon: parse type strings and make them hyperlinks as possible. The
conversion rule can be updated via :confval:`napoleon_type_aliases`
* #8049: napoleon: Create a hyperlink for each the type of parameter when
- :confval:`napoleon_use_param` is False
+ :confval:`napoleon_use_param` is ``False``
* C, added :rst:dir:`c:alias` directive for inserting copies
of existing declarations.
* #7745: html: inventory is broken if the docname contains a space
@@ -2485,7 +2764,7 @@ Bugs fixed
* #7676: autodoc: wrong value for :member-order: option is ignored silently
* #7676: autodoc: member-order="bysource" does not work for C module
* #3673: autodoc: member-order="bysource" does not work for a module having
- __all__
+ ``__all__``
* #7668: autodoc: wrong retann value is passed to a handler of
autodoc-process-signature
* #7711: autodoc: fails with ValueError when processing numpy objects
@@ -2494,7 +2773,7 @@ Bugs fixed
* #7661: autosummary: autosummary directive emits warnings twices if failed to
import the target module
* #7685: autosummary: The template variable "members" contains imported members
- even if :confval:`autossummary_imported_members` is False
+ even if :confval:`autossummary_imported_members` is ``False``
* #7671: autosummary: The location of import failure warning is missing
* #7535: sphinx-autogen: crashes when custom template uses inheritance
* #7536: sphinx-autogen: crashes when template uses i18n feature
@@ -2507,7 +2786,7 @@ Bugs fixed
* #7581: napoleon: bad parsing of inline code in attribute docstrings
* #7628: imgconverter: runs imagemagick once unnecessary for builders not
supporting images
-* #7610: incorrectly renders consecutive backslashes for docutils-0.16
+* #7610: incorrectly renders consecutive backslashes for Docutils 0.16
* #7646: handle errors on event handlers
* #4187: LaTeX: EN DASH disappears from PDF bookmarks in Japanese documents
* #7701: LaTeX: Anonymous indirect hyperlink target causes duplicated labels
@@ -2568,7 +2847,7 @@ Bugs fixed
* #7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking
* C++, fix spacing issue in east-const declarations.
* #7414: LaTeX: Xindy language options were incorrect
-* sphinx crashes with ImportError on python3.5.1
+* Sphinx crashes with ImportError on python3.5.1
Release 3.0.1 (released Apr 11, 2020)
=====================================
@@ -2766,7 +3045,7 @@ Bugs fixed
3.0.0 final
-* #7364: autosummary: crashed when :confval:`autosummary_generate` is False
+* #7364: autosummary: crashed when :confval:`autosummary_generate` is ``False``
* #7370: autosummary: raises UnboundLocalError when unknown module given
* #7367: C++, alternate operator spellings are now supported.
* C, alternate operator spellings are now supported.
@@ -2792,7 +3071,7 @@ Release 2.4.5 (released Nov 18, 2021)
Dependencies
------------
-* #9807: Restrict docutils to 0.17.x or older
+* #9807: Restrict Docutils to 0.17.x or older
Release 2.4.4 (released Mar 05, 2020)
=====================================
@@ -3043,7 +3322,7 @@ Bugs fixed
* #6890: LaTeX: even with smartquotes off, PDF output transforms straight
quotes and consecutive hyphens into curly quotes and dashes
* #6876: LaTeX: multi-line display of authors on title page has ragged edges
-* #6887: Sphinx crashes with docutils-0.16b0
+* #6887: Sphinx crashes with Docutils 0.16b0
* #6920: sphinx-build: A console message is wrongly highlighted
* #6900: sphinx-build: ``-D`` option does not considers ``0`` and ``1`` as a
boolean value
@@ -3145,7 +3424,7 @@ Bugs fixed
* #6545: doctest comments not getting trimmed since Sphinx 1.8.0
* #6561: glossary: Wrong hyperlinks are generated for non alphanumeric terms
* #6620: i18n: classifiers of definition list are not translated with
- docutils-0.15
+ Docutils 0.15
* #6474: ``DocFieldTransformer`` raises AttributeError when given directive is
not a subclass of ObjectDescription
@@ -3305,7 +3584,7 @@ Bugs fixed
* #6331: man: invalid output when doctest follows rubric
* #6351: "Hyperlink target is not referenced" message is shown even if
referenced
-* #6165: autodoc: ``tab_width`` setting of docutils has been ignored
+* #6165: autodoc: ``tab_width`` setting of Docutils has been ignored
* #6347: autodoc: crashes with a plain Tuple on Python 3.6 and 3.5
* #6311: autosummary: autosummary table gets confused by complex type hints
* #6350: autosummary: confused by an argument having some kind of default value
@@ -3382,7 +3661,7 @@ Incompatible changes
2.0.0b1
* Drop python 2.7 and 3.4 support
-* Drop docutils 0.11 support
+* Drop Docutils 0.11 support
* Drop features and APIs deprecated in 1.7.x
* The default setting for :confval:`master_doc` is changed to ``'index'`` which
has been longly used as default of sphinx-quickstart.
@@ -3414,7 +3693,7 @@ Incompatible changes
* quickstart: Simplify generated ``conf.py``
* #4148: quickstart: some questions are removed. They are still able to specify
via command line options
-* websupport: unbundled from sphinx core. Please use sphinxcontrib-websupport
+* websupport: unbundled from Sphinx core. Please use sphinxcontrib-websupport
* C++, the visibility of base classes is now always rendered as present in the
input. That is, ``private`` is now shown, where it was ellided before.
* LaTeX: graphics inclusion of oversized images rescales to not exceed
@@ -3636,7 +3915,7 @@ Release 1.8.6 (released Nov 18, 2021)
Dependencies
------------
-* #9807: Restrict docutils to 0.17.x or older
+* #9807: Restrict Docutils to 0.17.x or older
Release 1.8.5 (released Mar 10, 2019)
=====================================
@@ -4157,7 +4436,7 @@ Bugs fixed
* #5037: LaTeX ``\sphinxupquote{}`` breaks in Russian
* sphinx.testing uses deprecated pytest API; ``Node.get_marker(name)``
* #5016: crashed when recommonmark.AutoStrictify is enabled
-* #5022: latex: crashed with docutils package provided by Debian/Ubuntu
+* #5022: latex: crashed with Docutils package provided by Debian/Ubuntu
* #5009: latex: a label for table is vanished if table does not have a caption
* #5048: crashed with numbered toctree
* #2410: C, render empty argument lists for macros.
@@ -4182,7 +4461,7 @@ Bugs fixed
* #5143: autodoc: crashed on inspecting dict like object which does not support
sorting
* #5139: autodoc: Enum argument missing if it shares value with another
-* #4946: py domain: rtype field could not handle "None" as a type
+* #4946: py domain: rtype field could not handle "``None``" as a type
* #5176: LaTeX: indexing of terms containing ``@``, ``!``, or ``"`` fails
* #5161: html: crashes if copying static files are failed
* #5167: autodoc: Fix formatting type annotations for tuples with more than two
@@ -4213,7 +4492,7 @@ Bugs fixed
LaTeX engine crashed
* #4978: latex: shorthandoff is not set up for Brazil locale
* #4928: i18n: Ignore dot-directories like .git/ in LC_MESSAGES/
-* #4946: py domain: type field could not handle "None" as a type
+* #4946: py domain: type field could not handle "``None``" as a type
* #4979: latex: Incorrect escaping of curly braces in index entries
* #4956: autodoc: Failed to extract document from a subclass of the class on
mocked module
@@ -4356,7 +4635,7 @@ Incompatible changes
* #4274: sphinx-build returns 2 as an exit code on argument error
* #4389: output directory will be created after loading extensions
* autodoc does not generate warnings messages to the generated document even if
- :confval:`keep_warnings` is True. They are only emitted to stderr.
+ :confval:`keep_warnings` is ``True``. They are only emitted to stderr.
* shebang line is removed from generated conf.py
* #2557: autodoc: :confval:`autodoc_mock_imports` only mocks specified modules
with their descendants. It does not mock their ancestors. If you want to
@@ -4516,7 +4795,7 @@ Bugs fixed
* #4493: recommonmark raises AttributeError if AutoStructify enabled
* #4209: intersphinx: In link title, "v" should be optional if target has no
version
-* #4230: slowdown in writing pages with sphinx 1.6
+* #4230: slowdown in writing pages with Sphinx 1.6
* #4522: epub: document is not rebuilt even if config changed
1.7.0b3
@@ -4538,7 +4817,7 @@ Testing
1.7.0b1
-* Add support for docutils 0.14
+* Add support for Docutils 0.14
* Add tests for the ``sphinx.ext.inheritance_diagram`` extension.
Release 1.6.7 (released Feb 04, 2018)
@@ -4619,7 +4898,7 @@ Bugs fixed
* #4085: Failed PDF build from image in parsed-literal using ``:align:`` option
* #4100: Remove debug print from autodoc extension
-* #3987: Changing theme from alabaster causes HTML build to fail
+* #3987: Changing theme from ``alabaster`` causes HTML build to fail
* #4096: C++, don't crash when using the wrong role type. Thanks to mitya57.
* #4070, #4111: crashes when the warning message contains format strings (again)
* #4108: Search word highlighting breaks SVG images
@@ -4667,7 +4946,7 @@ Bugs fixed
* #4067: Return non-zero exit status when make subprocess fails
* #4055: graphviz: the :align: option does not work for SVG output
* #4055: graphviz: the :align: center option does not work for latex output
-* #4051: ``warn()`` function for HTML theme outputs 'None' string
+* #4051: ``warn()`` function for HTML theme outputs '``None``' string
Release 1.6.3 (released Jul 02, 2017)
=====================================
@@ -4680,8 +4959,8 @@ Features added
Bugs fixed
----------
-* #3821: Failed to import sphinx.util.compat with docutils-0.14rc1
-* #3829: sphinx-quickstart template is incomplete regarding use of alabaster
+* #3821: Failed to import sphinx.util.compat with Docutils 0.14rc1
+* #3829: sphinx-quickstart template is incomplete regarding use of ``alabaster``
* #3772: 'str object' has no attribute 'filename'
* Emit wrong warnings if citation label includes hyphens (refs: #3565)
* #3858: Some warnings are not colored when using --color option
@@ -4689,7 +4968,7 @@ Bugs fixed
* #3835: sphinx.ext.imgmath fails to convert SVG images if project directory
name contains spaces
* #3850: Fix color handling in make mode's help command
-* #3865: use of self.env.warn in sphinx extension fails
+* #3865: use of self.env.warn in Sphinx extension fails
* #3824: production lists apply smart quotes transform since Sphinx 1.6.1
* latex: fix ``\sphinxbfcode`` swallows initial space of argument
* #3878: Quotes in auto-documented class attributes should be straight quotes
@@ -4872,7 +5151,7 @@ Features added
* latex: merged cells in LaTeX tables allow code-blocks, lists, blockquotes...
as do normal cells (refs: #3435)
* HTML builder uses experimental HTML5 writer if
- ``html_experimental_html5_writer`` is True and docutils 0.13 or later is
+ ``html_experimental_html5_writer`` is ``True`` and Docutils 0.13 or later is
installed.
* LaTeX macros to customize space before and after tables in PDF output (refs
#3504)
@@ -4901,8 +5180,8 @@ Features added
* ``LATEXMKOPTS`` variable for the Makefile in ``$BUILDDIR/latex`` to pass
options to ``latexmk`` when executing ``make latexpdf`` (refs #3695, #3720)
-* Add a new event `env-check-consistency` to check consistency to extensions
-* Add `Domain.check_consistency()` to check consistency
+* Add a new event ``env-check-consistency`` to check consistency to extensions
+* Add ``Domain.check_consistency()`` to check consistency
Bugs fixed
----------
@@ -4935,7 +5214,7 @@ Bugs fixed
1.6b3
* #3588: No compact (p tag) html output in the i18n document build even when
- :confval:`html_compact_lists` is True.
+ :confval:`html_compact_lists` is ``True``.
* The ``make latexpdf`` from 1.6b1 (for GNU/Linux and Mac OS, using
``latexmk``) aborted earlier in case of LaTeX errors than was the case with
1.5 series, due to hard-coded usage of ``--halt-on-error`` option (refs #3695)
@@ -5031,7 +5310,7 @@ Bugs fixed
* #3664: No space after the bullet in items of a latex list produced by Sphinx
* #3657: EPUB builder crashes if a document starting with genindex exists
* #3588: No compact (p tag) html output in the i18n document build even when
- :confval:`html_compact_lists` is True.
+ :confval:`html_compact_lists` is ``True``.
* #3685: AttributeError when using 3rd party domains
* #3702: LaTeX writer styles figure legends with a hard-coded ``\small``
* #3708: LaTeX writer allows irc scheme
@@ -5077,7 +5356,7 @@ Bugs fixed
domains.
* #3542: C++, fix parsing error of non-type template argument with template.
* #3065, #3520: python domain fails to recognize nested class
-* #3575: Problems with pdflatex in a Turkish document built with sphinx has
+* #3575: Problems with pdflatex in a Turkish document built with Sphinx has
reappeared (refs #2997, #2397)
* #3577: Fix intersphinx debug tool
* A LaTeX command such as ``\\large`` inserted in the title items of
@@ -5132,7 +5411,7 @@ Features added
* #3241: emit latex warning if buggy titlesec (ref #3210)
* #3194: Refer the $MAKE environment variable to determine ``make`` command
* Emit warning for nested numbered toctrees (refs: #3142)
-* #978: `intersphinx_mapping` also allows a list as a parameter
+* #978: ``intersphinx_mapping`` also allows a list as a parameter
* #3340: (LaTeX) long lines in :dudir:`parsed-literal` are wrapped like in
:rst:dir:`code-block`, inline math and footnotes are fully functional.
@@ -5145,7 +5424,7 @@ Bugs fixed
* #185: References to section title including raw node has broken
* #3255: In Py3.4 environment, autodoc doesn't support documentation for
attributes of Enum class correctly.
-* #3261: ``latex_use_parts`` makes sphinx crash
+* #3261: ``latex_use_parts`` makes Sphinx crash
* The warning type ``misc.highlighting_failure`` does not work
* #3294: ``add_latex_package()`` make crashes non-LaTeX builders
* The caption of table are rendered as invalid HTML (refs: #3287)
@@ -5191,9 +5470,9 @@ Bugs fixed
* #3195: Can not build in parallel
* #3198: AttributeError is raised when toctree has 'self'
-* #3211: Remove untranslated sphinx locale catalogs (it was covered by
+* #3211: Remove untranslated Sphinx locale catalogs (it was covered by
untranslated it_IT)
-* #3212: HTML Builders crashes with docutils-0.13
+* #3212: HTML Builders crashes with Docutils 0.13
* #3207: more latex problems with references inside parsed-literal directive
(``\DUrole``)
* #3205: sphinx.util.requests crashes with old pyOpenSSL (< 0.14)
@@ -5213,7 +5492,7 @@ Incompatible changes
1.5a1
* latex, package fancybox is not any longer a dependency of sphinx.sty
-* Use ``'locales'`` as a default value of `locale_dirs`
+* Use ``'locales'`` as a default value of ``locale_dirs``
* latex, package ifthen is not any longer a dependency of sphinx.sty
* latex, style file does not modify fancyvrb's Verbatim (also available as
OriginalVerbatim) but uses sphinxVerbatim for name of custom wrapper.
@@ -5227,7 +5506,7 @@ Incompatible changes
use ``px`` rather than ignore it.
* latex: Separate stylesheets of pygments to independent .sty file
* #2454: The filename of sourcelink is now changed. The value of
- `html_sourcelink_suffix` will be appended to the original filename (like
+ ``html_sourcelink_suffix`` will be appended to the original filename (like
``index.rst.txt``).
* ``sphinx.util.copy_static_entry()`` is now deprecated.
Use ``sphinx.util.fileutil.copy_asset()`` instead.
@@ -5313,10 +5592,10 @@ Features added
* #2463, #2516: Add keywords of "meta" directive to search index
* ``:maxdepth:`` option of toctree affects ``secnumdepth`` (ref: #2547)
* #2575: Now ``sphinx.ext.graphviz`` allows ``:align:`` option
-* Show warnings if unknown key is specified to `latex_elements`
-* Show warnings if no domains match with `primary_domain` (ref: #2001)
+* Show warnings if unknown key is specified to ``latex_elements``
+* Show warnings if no domains match with ``primary_domain`` (ref: #2001)
* C++, show warnings when the kind of role is misleading for the kind
- of target it refers to (e.g., using the `class` role for a function).
+ of target it refers to (e.g., using the ``class`` role for a function).
* latex, writer abstracts more of text styling into customizable macros, e.g.
the ``visit_emphasis`` will output ``\sphinxstyleemphasis`` rather than
``\emph`` (which may be in use elsewhere or in an added LaTeX package). See
@@ -5345,12 +5624,12 @@ Features added
* math: Add hyperlink marker to each equations in HTML output
* Add new theme ``nonav`` that doesn't include any navigation links.
This is for any help generator like qthelp.
-* #2680: `sphinx.ext.todo` now emits warnings if `todo_emit_warnings` enabled.
- Also, it emits an additional event named `todo-defined` to handle the TODO
+* #2680: ``sphinx.ext.todo`` now emits warnings if ``todo_emit_warnings`` enabled.
+ Also, it emits an additional event named ``todo-defined`` to handle the TODO
entries in 3rd party extensions.
* Python domain signature parser now uses the xref mixin for 'exceptions',
allowing exception classes to be autolinked.
-* #2513: Add `latex_engine` to switch the LaTeX engine by conf.py
+* #2513: Add ``latex_engine`` to switch the LaTeX engine by conf.py
* #2682: C++, basic support for attributes (C++11 style and GNU style).
The new configuration variables 'cpp_id_attributes' and 'cpp_paren_attributes'
can be used to introduce custom attributes.
@@ -5372,8 +5651,8 @@ Features added
* #2926: EPUB3 builder supports vertical mode (``epub3_writing_mode`` option)
* #2695: ``build_sphinx`` subcommand for setuptools handles exceptions as same
as ``sphinx-build`` does
-* #326: `numref` role can also refer sections
-* #2916: `numref` role can also refer caption as an its linktext
+* #326: ``numref`` role can also refer sections
+* #2916: ``numref`` role can also refer caption as an its linktext
1.5a2
@@ -5383,7 +5662,7 @@ Features added
* #2843: Add :start-at: and :end-at: options to literalinclude directive
* #2527: Add ``:reversed:`` option to toctree directive
* Add ``-t`` and ``-d`` option to ``sphinx-quickstart`` to support templating
- generated sphinx project.
+ generated Sphinx project.
* #3028: Add ``{path}`` and ``{basename}`` to the format of
``figure_language_filename``
* new ``'hyperref'`` key in the ``latex_elements`` dictionary (ref #3030)
@@ -5426,8 +5705,8 @@ Bugs fixed
* #2707: (latex) the column width is badly computed for tabular
* #2799: Sphinx installs roles and directives automatically on importing sphinx
module. Now Sphinx installs them on running application.
-* `sphinx.ext.autodoc` crashes if target code imports * from mock modules
- by `autodoc_mock_imports`.
+* ``sphinx.ext.autodoc`` crashes if target code imports * from mock modules
+ by ``autodoc_mock_imports``.
* #1953: ``Sphinx.add_node`` does not add handlers the translator installed by
``html_translator_class``
* #1797: text builder inserts blank line on top
@@ -5450,7 +5729,7 @@ Bugs fixed
* #3004: Invalid link types "top" and "up" are used
* #3009: Bad rendering of parsed-literals in LaTeX since Sphinx 1.4.4
* #3000: ``option`` directive generates invalid HTML anchors
-* #2984: Invalid HTML has been generated if `html_split_index` enabled
+* #2984: Invalid HTML has been generated if ``html_split_index`` enabled
* #2986: themes/basic/defindex.html should be changed for html5 friendly
* #2987: Invalid HTML has been generated if multiple IDs are assigned to a list
* #2891: HTML search does not provide all the results
@@ -5484,7 +5763,7 @@ Bugs fixed
* #3069: Even if ``'babel'`` key is set to empty string, LaTeX output contains
one ``\addto\captions...``
* #3123: user ``'babel'`` key setting is not obeyed anymore
-* #3155: Fix JavaScript for `html_sourcelink_suffix` fails with IE and Opera
+* #3155: Fix JavaScript for ``html_sourcelink_suffix`` fails with IE and Opera
* #3085: keep current directory after breaking build documentation. Thanks to
Timotheus Kampik.
* #3181: pLaTeX crashes with a section contains endash
@@ -5501,7 +5780,7 @@ Bugs fixed
Testing
-------
-* To simplify, sphinx uses external mock package even if unittest.mock exists.
+* To simplify, Sphinx uses external mock package even if ``unittest.mock`` exists.
Release 1.4.9 (released Nov 23, 2016)
@@ -5555,9 +5834,9 @@ Bugs fixed
* Could not reference equations if ``:nowrap:`` option specified
* #2873: code-block overflow in latex (due to commas)
* #1060, #2056: sphinx.ext.intersphinx: broken links are generated if relative
- paths are used in `intersphinx_mapping`
+ paths are used in ``intersphinx_mapping``
* #2931: code-block directive with same :caption: causes warning of duplicate
- target. Now `code-block` and `literalinclude` does not define hyperlink
+ target. Now ``code-block`` and ``literalinclude`` does not define hyperlink
target using its caption automatically.
* #2962: latex: missing label of longtable
* #2968: autodoc: show-inheritance option breaks docstrings
@@ -5590,7 +5869,7 @@ Bugs fixed
* #2833: Fix formatting instance annotations in ext.autodoc.
* #1911: ``-D`` option of ``sphinx-build`` does not override the ``extensions``
variable
-* #2789: `sphinx.ext.intersphinx` generates wrong hyperlinks if the inventory is
+* #2789: ``sphinx.ext.intersphinx`` generates wrong hyperlinks if the inventory is
given
* parsing errors for caption of code-blocks are displayed in document
(ref: #2845)
@@ -5614,8 +5893,9 @@ Incompatible changes
Features added
--------------
-* new config option :confval:`!latex_keep_old_macro_names`, defaults to True. If False,
- lets macros (for text styling) be defined only with ``\sphinx``-prefixed names
+* new config option :confval:`!latex_keep_old_macro_names`, defaults to ``True``.
+ If ``False``, lets macros (for text styling) be defined
+ only with ``\sphinx``-prefixed names
* latex writer allows user customization of "shadowed" boxes (topics), via
three length variables.
* woff-format web font files now supported by the epub builder.
@@ -5627,11 +5907,11 @@ Bugs fixed
* #2676: (latex) Error with verbatim text in captions since Sphinx 1.4.4
* #2629: memoir class crashes LaTeX. Fixed by
``latex_keep_old_macro_names=False`` (ref 2675)
-* #2684: `sphinx.ext.intersphinx` crashes with six-1.4.1
+* #2684: ``sphinx.ext.intersphinx`` crashes with six-1.4.1
* #2679: ``float`` package needed for ``'figure_align': 'H'`` latex option
* #2671: image directive may lead to inconsistent spacing in pdf
* #2705: ``toctree`` generates empty bullet_list if ``:titlesonly:`` specified
-* #2479: `sphinx.ext.viewcode` uses python2 highlighter by default
+* #2479: ``sphinx.ext.viewcode`` uses python2 highlighter by default
* #2700: HtmlHelp builder has hard coded index.html
* latex, since 1.4.4 inline literal text is followed by spurious space
* #2722: C++, fix id generation for var/member declarations to include
@@ -5640,13 +5920,13 @@ Bugs fixed
indentation (fixed together with #2671)
* #2733: since Sphinx 1.4.4 ``make latexpdf`` generates lots of hyperref
warnings
-* #2731: `sphinx.ext.autodoc` does not access propertymethods which raises any
+* #2731: ``sphinx.ext.autodoc`` does not access propertymethods which raises any
exceptions
* #2666: C++, properly look up nested names involving constructors.
* #2579: Could not refer a label including both spaces and colons via
- `sphinx.ext.intersphinx`
+ ``sphinx.ext.intersphinx``
* #2718: Sphinx crashes if the document file is not readable
-* #2699: hyperlinks in help HTMLs are broken if `html_file_suffix` is set
+* #2699: hyperlinks in help HTMLs are broken if ``html_file_suffix`` is set
* #2723: extra spaces in latex pdf output from multirow cell
* #2735: latexpdf ``Underfull \hbox (badness 10000)`` warnings from title page
* #2667: latex crashes if resized images appeared in section title
@@ -5669,7 +5949,7 @@ Bugs fixed
* Let LaTeX use straight quotes also in inline code (ref #2627)
* #2351: latex crashes if enumerated lists are placed on footnotes
* #2646: latex crashes if math contains twice empty lines
-* #2480: `sphinx.ext.autodoc`: memory addresses were shown
+* #2480: ``sphinx.ext.autodoc``: memory addresses were shown
* latex: allow code-blocks appearing inside lists and quotes at maximal nesting
depth (ref #777, #2624, #2651)
* #2635: Latex code directives produce inconsistent frames based on viewing
@@ -5696,7 +5976,7 @@ Bugs fixed
* #2614: Some tables in PDF output will end up shifted if user sets non zero
\parindent in preamble
* #2602: URL redirection breaks the hyperlinks generated by
- `sphinx.ext.intersphinx`
+ ``sphinx.ext.intersphinx``
* #2613: Show warnings if merged extensions are loaded
* #2619: make sure amstext LaTeX package always loaded (ref: d657225, 488ee52,
9d82cad and #2615)
@@ -5773,20 +6053,20 @@ Bugs fixed
* #2521: generated Makefile causes BSD make crashed if sphinx-build not found
* #2470: ``typing`` backport package causes autodoc errors with python 2.7
* ``sphinx.ext.intersphinx`` crashes if non-string value is used for key of
- `intersphinx_mapping`
-* #2518: `intersphinx_mapping` disallows non alphanumeric keys
+ ``intersphinx_mapping``
+* #2518: ``intersphinx_mapping`` disallows non alphanumeric keys
* #2558: unpack error on devhelp builder
* #2561: Info builder crashes when a footnote contains a link
* #2565: The descriptions of objects generated by ``sphinx.ext.autosummary``
overflow lines at LaTeX writer
* Extend pdflatex config in sphinx.sty to subparagraphs (ref: #2551)
-* #2445: `rst_prolog` and `rst_epilog` affect to non reST sources
+* #2445: ``rst_prolog`` and ``rst_epilog`` affect to non reST sources
* #2576: ``sphinx.ext.imgmath`` crashes if subprocess raises error
* #2577: ``sphinx.ext.imgmath``: Invalid argument are passed to dvisvgm
* #2556: Xapian search does not work with Python 3
* #2581: The search doesn't work if language="es" (Spanish)
* #2382: Adjust spacing after abbreviations on figure numbers in LaTeX writer
-* #2383: The generated footnote by `latex_show_urls` overflows lines
+* #2383: The generated footnote by ``latex_show_urls`` overflows lines
* #2497, #2552: The label of search button does not fit for the button itself
@@ -5796,7 +6076,7 @@ Release 1.4.1 (released Apr 12, 2016)
Incompatible changes
--------------------
-* The default format of `today_fmt` and `html_last_updated_fmt` is back to
+* The default format of ``today_fmt`` and ``html_last_updated_fmt`` is back to
strftime format again. Locale Date Markup Language is also supported for
backward compatibility until Sphinx 1.5.
@@ -5835,13 +6115,13 @@ Incompatible changes
--------------------
* Drop ``PorterStemmer`` package support. Use ``PyStemmer`` instead of
``PorterStemmer`` to accelerate stemming.
-* sphinx_rtd_theme has become optional. Please install it manually.
+* ``sphinx_rtd_theme`` has become optional. Please install it manually.
Refs #2087, #2086, #1845 and #2097. Thanks to Victor Zverovich.
* #2231: Use DUrole instead of DUspan for custom roles in LaTeX writer. It
enables to take title of roles as an argument of custom macros.
-* #2022: 'Thumbs.db' and '.DS_Store' are added to `exclude_patterns` default
+* #2022: 'Thumbs.db' and '.DS_Store' are added to ``exclude_patterns`` default
values in conf.py that will be provided on sphinx-quickstart.
-* #2027, #2208: The ``html_title`` accepts string values only. And The None
+* #2027, #2208: The ``html_title`` accepts string values only. And the ``None``
value cannot be accepted.
* ``sphinx.ext.graphviz``: show graph image in inline by default
* #2060, #2224: The ``manpage`` role now generate ``sphinx.addnodes.manpage``
@@ -5862,11 +6142,11 @@ Incompatible changes
add ``highlight_language = "python"`` to conf.py.
* `Locale Date Markup Language
<https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns>`_ like
- ``"MMMM dd, YYYY"`` is default format for `today_fmt` and
- `html_last_updated_fmt`. However strftime format like ``"%B %d, %Y"`` is also
+ ``"MMMM dd, YYYY"`` is default format for ``today_fmt`` and
+ ``html_last_updated_fmt``. However strftime format like ``"%B %d, %Y"`` is also
supported for backward compatibility until Sphinx 1.5. Later format will be
disabled from Sphinx 1.5.
-* #2327: ``latex_use_parts`` is deprecated now. Use `latex_toplevel_sectioning`
+* #2327: ``latex_use_parts`` is deprecated now. Use ``latex_toplevel_sectioning``
instead.
* #2337: Use ``\url{URL}`` macro instead of ``\href{URL}{URL}`` in LaTeX writer.
* #1498: manpage writer: don't make whole of item in definition list bold if it
@@ -5937,14 +6217,14 @@ Features added
* #2338: Define ``\titleref`` macro to redefine the style of ``title-reference``
roles.
* Define ``\menuselection`` and ``\accelerator`` macros to redefine the style of
- `menuselection` roles.
+ ``menuselection`` roles.
* Define ``\crossref`` macro to redefine the style of references
* #2301: Texts in the classic html theme should be hyphenated.
* #2355: Define ``\termref`` macro to redefine the style of ``term`` roles.
* Add :confval:`suppress_warnings` to suppress arbitrary warning message
(experimental)
* #2229: Fix no warning is given for unknown options
-* #2327: Add `latex_toplevel_sectioning` to switch the top level sectioning of
+* #2327: Add ``latex_toplevel_sectioning`` to switch the top level sectioning of
LaTeX document.
Bugs fixed
@@ -6054,7 +6334,7 @@ Bugs fixed
* #2247: Fix #2205 breaks make html for definition list with classifiers
that contains regular-expression like string
* #1565: Sphinx will now emit a warning that highlighting was skipped if the
- syntax is incorrect for `code-block`, `literalinclude` and so on.
+ syntax is incorrect for ``code-block``, ``literalinclude`` and so on.
* #2211: Fix paragraphs in table cell doesn't work in Latex output
* #2253: ``:pyobject:`` option of ``literalinclude`` directive can't detect
indented body block when the block starts with blank or comment lines.
@@ -6070,7 +6350,7 @@ Bugs fixed
* #2134: Fix figure caption with reference causes latex build error
* #2094: Fix rubric with reference not working in Latex
* #2147: Fix literalinclude code in latex does not break in pages
-* #1833: Fix email addresses is showed again if latex_show_urls is not None
+* #1833: Fix email addresses is showed again if latex_show_urls is not ``None``
* #2176: sphinx.ext.graphviz: use <object> instead of <img> to embed svg
* #967: Fix SVG inheritance diagram is not hyperlinked (clickable)
* #1237: Fix footnotes not working in definition list in LaTeX
@@ -6088,7 +6368,7 @@ Bugs fixed
* #2193: Fix shutil.SameFileError if source directory and destination directory
are same
* #2178: Fix unparsable C++ cross-reference when referencing a function with
- :cpp:any:
+ ``:cpp:any:``
* #2206: Fix Sphinx latex doc build failed due to a footnotes
* #2201: Fix wrong table caption for tables with over 30 rows
* #2213: Set <blockquote> in the classic theme to fit with <p>
@@ -6101,7 +6381,7 @@ Bugs fixed
* #1408: Check latex_logo validity before copying
* #771: Fix latex output doesn't set tocdepth
* #1820: On Windows, console coloring is broken with colorama version 0.3.3.
- Now sphinx use colorama>=0.3.5 to avoid this problem.
+ Now Sphinx use colorama>=0.3.5 to avoid this problem.
* #2072: Fix footnotes in chapter-titles do not appear in PDF output
* #1580: Fix paragraphs in longtable don't work in Latex output
* #1366: Fix centered image not centered in latex
@@ -6117,7 +6397,7 @@ Bugs fixed
* #2226: Fix math is not HTML-encoded when :nowrap: is given (jsmath, mathjax)
* #1601, #2220: 'any' role breaks extended domains behavior. Affected extensions
doesn't support resolve_any_xref and resolve_xref returns problematic node
- instead of None. sphinxcontrib-httpdomain is one of them.
+ instead of ``None``. sphinxcontrib-httpdomain is one of them.
* #2229: Fix no warning is given for unknown options
Release 1.3.3 (released Dec 2, 2015)
@@ -6153,9 +6433,9 @@ Bugs fixed
* #1790: ``literalinclude`` strips empty lines at the head and tail
* #1802: load plugin themes automatically when theme.conf use it as 'inherit'.
Thanks to Takayuki Hirai.
-* #1794: custom theme extended from alabaster or sphinx_rtd_theme can't find
- base theme.
-* #1834: compatibility for docutils-0.13: handle_io_errors keyword argument for
+* #1794: custom theme extended from ``alabaster`` or ``sphinx_rtd_theme``
+ can't find base theme.
+* #1834: compatibility for Docutils 0.13: handle_io_errors keyword argument for
docutils.io.FileInput cause TypeError.
* #1823: '.' as <module_path> for sphinx-apidoc cause an unfriendly error. Now
'.' is converted to absolute path automatically.
@@ -6192,7 +6472,7 @@ Bugs fixed
on LaTeX builder
* #1994: More supporting non-standard parser (like recommonmark parser) for
Translation and WebSupport feature. Now node.rawsource is fall backed to
- node.astext() during docutils transforming.
+ node.astext() during Docutils transforming.
* #1989: "make blahblah" on Windows indicate help messages for sphinx-build
every time. It was caused by wrong make.bat that generated by
Sphinx 1.3.0/1.3.1.
@@ -6201,12 +6481,12 @@ Bugs fixed
* #2102: On Windows + Py3, using ``|today|`` and non-ASCII date format will
raise UnicodeEncodeError.
* #1974: UnboundLocalError: local variable 'domain' referenced before assignment
- when using `any` role and `sphinx.ext.intersphinx` in same time.
+ when using ``any`` role and ``sphinx.ext.intersphinx`` in same time.
* #2121: multiple words search doesn't find pages when words across on the page
title and the page content.
* #1884, #1885: plug-in html themes cannot inherit another plug-in theme. Thanks
to Suzumizaki.
-* #1818: `sphinx.ext.todo` directive generates broken html class attribute as
+* #1818: ``sphinx.ext.todo`` directive generates broken html class attribute as
'admonition-' when :confval:`language` is specified with non-ASCII linguistic
area like 'ru' or 'ja'. To fix this, now ``todo`` directive can use
``:class:`` option.
@@ -6232,9 +6512,9 @@ Bugs fixed
* #1777: Sphinx 1.3 can't load extra theme. Thanks to tell-k.
* #1776: ``source_suffix = ['.rst']`` cause unfriendly error on prior version.
* #1771: automated .mo building doesn't work properly.
-* #1783: Autodoc: Python2 Allow unicode string in __all__.
+* #1783: Autodoc: Python2 Allow unicode string in ``__all__``.
Thanks to Jens Hedegaard Nielsen.
-* #1781: Setting `html_domain_indices` to a list raises a type check warnings.
+* #1781: Setting ``html_domain_indices`` to a list raises a type check warnings.
Release 1.3 (released Mar 10, 2015)
@@ -6253,7 +6533,7 @@ Features added
* Add convenience directives and roles to the C++ domain:
directive ``cpp:var`` as alias for ``cpp:member``, role ``:cpp:var`` as alias
- for ``:cpp:member``, and role `any` for cross-reference to any C++
+ for ``:cpp:member``, and role ``any`` for cross-reference to any C++
declaraction. #1577, #1744
* The :confval:`source_suffix` config value can now be a list of multiple
suffixes.
@@ -6293,22 +6573,22 @@ Release 1.3b3 (released Feb 24, 2015)
Incompatible changes
--------------------
-* Dependency requirement updates: docutils 0.11, Pygments 2.0
+* Dependency requirement updates: Docutils 0.11, Pygments 2.0
* The ``gettext_enables`` config value has been renamed to
- `gettext_additional_targets`.
+ ``gettext_additional_targets``.
* #1735: Use https://docs.python.org/ instead of ``http`` protocol.
- It was used for `sphinx.ext.intersphinx` and some documentation.
+ It was used for ``sphinx.ext.intersphinx`` and some documentation.
Features added
--------------
* #1346: Add new default theme;
- * Add 'alabaster' theme.
- * Add 'sphinx_rtd_theme' theme.
+ * Add '``alabaster``' theme.
+ * Add '``sphinx_rtd_theme``' theme.
* The 'default' html theme has been renamed to 'classic'. 'default' is still
available, however it will emit notice a recommendation that using new
- 'alabaster' theme.
+ '``alabaster``' theme.
* Added ``highlight_options`` configuration value.
* The ``language`` config value is now available in the HTML templates.
@@ -6320,17 +6600,17 @@ Features added
described in documentation.
* HTML breadcrumb items tag has class "nav-item" and "nav-item-N" (like
nav-item-0, 1, 2...).
-* New option `sphinx-quickstart --use-make-mode` for generating Makefile that
+* New option ``sphinx-quickstart --use-make-mode`` for generating Makefile that
use sphinx-build make-mode.
* #1235: i18n: several node can be translated if it is set to
- `gettext_additional_targets` in conf.py. Supported nodes are:
+ ``gettext_additional_targets`` in conf.py. Supported nodes are:
- 'literal-block'
- 'doctest-block'
- 'raw'
- 'image'
-* #1227: Add `html_scaled_image_link` config option to conf.py, to control
+* #1227: Add ``html_scaled_image_link`` config option to conf.py, to control
scaled image link.
Bugs fixed
@@ -6339,7 +6619,7 @@ Bugs fixed
* LaTeX writer now generates correct markup for cells spanning multiple rows.
* #1674: Do not crash if a module's ``__all__`` is not a list of strings.
* #1629: Use VerbatimBorderColor to add frame to code-block in LaTeX
-* On windows, make-mode didn't work on Win32 platform if sphinx was invoked as
+* On windows, make-mode didn't work on Win32 platform if Sphinx was invoked as
``python sphinx-build.py``.
* #1687: linkcheck now treats 401 Unauthorized responses as "working".
* #1690: toctrees with ``glob`` option now can also contain entries for single
@@ -6373,7 +6653,7 @@ Features added
--------------
* #1597: Added possibility to return a new template name from
- `html-page-context`.
+ ``html-page-context``.
* PR#314, #1150: Configuration values are now checked for their type. A
warning is raised if the configured and the default value do not have the
same type and do not share a common non-trivial base class.
@@ -6388,7 +6668,7 @@ Bugs fixed
* #1607: Fix a crash when building latexpdf with "howto" class
* #1251: Fix again. Sections which depth are lower than :tocdepth: should not
be shown on localtoc sidebar.
-* make-mode didn't work on Win32 platform if sphinx was installed by wheel
+* make-mode didn't work on Win32 platform if Sphinx was installed by wheel
package.
@@ -6399,7 +6679,7 @@ Incompatible changes
--------------------
* Dropped support for Python 2.5, 3.1 and 3.2.
-* Dropped support for docutils versions up to 0.9.
+* Dropped support for Docutils versions up to 0.9.
* Removed the ``sphinx.ext.oldcmarkup`` extension.
* The deprecated config values ``exclude_trees``, ``exclude_dirnames`` and
``unused_docs`` have been removed.
@@ -6409,13 +6689,13 @@ Incompatible changes
* PR#269, #1476: replace ``<tt>`` tag by ``<code>``. User customized stylesheets
should be updated If the css contain some styles for ``tt>`` tag.
Thanks to Takeshi Komiya.
-* #1543: `templates_path` is automatically added to
- `exclude_patterns` to avoid reading autosummary rst templates in the
+* #1543: ``templates_path`` is automatically added to
+ ``exclude_patterns`` to avoid reading autosummary rst templates in the
templates directory.
-* Custom domains should implement the new `Domain.resolve_any_xref`
- method to make the `any` role work properly.
+* Custom domains should implement the new ``Domain.resolve_any_xref``
+ method to make the ``any`` role work properly.
* gettext builder: gettext doesn't emit uuid information to generated pot files
- by default. Please set ``True`` to `gettext_uuid` to emit uuid information.
+ by default. Please set ``True`` to ``gettext_uuid`` to emit uuid information.
Additionally, if the ``python-levenshtein`` 3rd-party package is installed,
it will improve the calculation time.
* gettext builder: disable extracting/apply 'index' node by default. Please set
@@ -6426,38 +6706,38 @@ Features added
--------------
* Add support for Python 3.4.
-* Add support for docutils 0.12
+* Add support for Docutils 0.12
* Added ``sphinx.ext.napoleon`` extension for NumPy and Google style docstring
support.
* Added support for parallel reading (parsing) of source files with the
- `sphinx-build -j` option. Third-party extensions will need to be checked for
+ ``sphinx-build -j`` option. Third-party extensions will need to be checked for
compatibility and may need to be adapted if they store information in the
- build environment object. See `env-merge-info`.
-* Added the `any` role that can be used to find a cross-reference of
+ build environment object. See ``env-merge-info``.
+* Added the ``any`` role that can be used to find a cross-reference of
*any* type in *any* domain. Custom domains should implement the new
- `Domain.resolve_any_xref` method to make this work properly.
+ ``Domain.resolve_any_xref`` method to make this work properly.
* Exception logs now contain the last 10 messages emitted by Sphinx.
* Added support for extension versions (a string returned by ``setup()``, these
can be shown in the traceback log files). Version requirements for extensions
- can be specified in projects using the new `needs_extensions` config
+ can be specified in projects using the new ``needs_extensions`` config
value.
* Changing the default role within a document with the :dudir:`default-role`
directive is now supported.
* PR#214: Added stemming support for 14 languages, so that the built-in document
search can now handle these. Thanks to Shibukawa Yoshiki.
* PR#296, PR#303, #76: numfig feature: Assign numbers to figures, tables and
- code-blocks. This feature is configured with `numfig`, `numfig_secnum_depth`
- and `numfig_format`. Also `numref` role is available. Thanks to Takeshi
+ code-blocks. This feature is configured with ``numfig``, ``numfig_secnum_depth``
+ and ``numfig_format``. Also ``numref`` role is available. Thanks to Takeshi
Komiya.
* PR#202: Allow "." and "~" prefixed references in ``:param:`` doc fields
for Python.
-* PR#184: Add `autodoc_mock_imports`, allowing to mock imports of
+* PR#184: Add ``autodoc_mock_imports``, allowing to mock imports of
external modules that need not be present when autodocumenting.
* #925: Allow list-typed config values to be provided on the command line,
like ``-D key=val1,val2``.
-* #668: Allow line numbering of `code-block` and `literalinclude` directives
+* #668: Allow line numbering of ``code-block`` and ``literalinclude`` directives
to start at an arbitrary line number, with a new ``lineno-start`` option.
-* PR#172, PR#266: The `code-block` and `literalinclude`
+* PR#172, PR#266: The ``code-block`` and ``literalinclude``
directives now can have a ``caption`` option that shows a filename before the
code in the output. Thanks to Nasimul Haque, Takeshi Komiya.
* Prompt for the document language in sphinx-quickstart.
@@ -6477,12 +6757,12 @@ Features added
and WAKAYAMA shirou.
* PR#272: Added 'bizstyle' theme. Thanks to Shoji KUMAGAI.
* Automatically compile ``*.mo`` files from ``*.po`` files when
- `gettext_auto_build` is True (default) and ``*.po`` is newer than
+ ``gettext_auto_build`` is ``True`` (default) and ``*.po`` is newer than
``*.mo`` file.
-* #623: `sphinx.ext.viewcode` supports imported function/class aliases.
-* PR#275: `sphinx.ext.intersphinx` supports multiple target for the
+* #623: ``sphinx.ext.viewcode`` supports imported function/class aliases.
+* PR#275: ``sphinx.ext.intersphinx`` supports multiple target for the
inventory. Thanks to Brigitta Sipocz.
-* PR#261: Added the `env-before-read-docs` event that can be connected to modify
+* PR#261: Added the ``env-before-read-docs`` event that can be connected to modify
the order of documents before they are read by the environment.
* #1284: Program options documented with :rst:dir:`option` can now start with
``+``.
@@ -6492,7 +6772,7 @@ Features added
Thanks to Takeshi Komiya.
* #1344: add ``gettext_enables`` to enable extracting 'index' to gettext
catalog output / applying translation catalog to generated documentation.
-* PR#301, #1583: Allow the line numbering of the directive `literalinclude` to
+* PR#301, #1583: Allow the line numbering of the directive ``literalinclude`` to
match that of the included file, using a new ``lineno-match`` option. Thanks
to Jeppe Pihl.
* PR#299: add various options to sphinx-quickstart. Quiet mode option
@@ -6509,7 +6789,7 @@ Bugs fixed
* #1563: :meth:`~sphinx.application.Sphinx.add_search_language` raises
AssertionError for correct type of argument. Thanks to rikoman.
* #1174: Fix smart quotes being applied inside roles like :rst:role:`program` or
- `makevar`.
+ ``makevar``.
* PR#235: comment db schema of websupport lacked a length of the node_id field.
Thanks to solos.
* #1466,PR#241: Fix failure of the cpp domain parser to parse C+11
@@ -6545,8 +6825,8 @@ Bugs fixed
qualified name. It should be rather easy to change this behaviour and
potentially index by namespaces/classes as well.
-* PR#258, #939: Add dedent option for `code-block` and
- `literalinclude`. Thanks to Zafar Siddiqui.
+* PR#258, #939: Add dedent option for ``code-block`` and
+ ``literalinclude``. Thanks to Zafar Siddiqui.
* PR#268: Fix numbering section does not work at singlehtml mode. It still
ad-hoc fix because there is a issue that section IDs are conflicted.
Thanks to Takeshi Komiya.
@@ -6554,10 +6834,10 @@ Bugs fixed
Takeshi Komiya.
* PR#274: Set its URL as a default title value if URL appears in toctree.
Thanks to Takeshi Komiya.
-* PR#276, #1381: `rfc` and `pep` roles support custom link
+* PR#276, #1381: ``rfc`` and ``pep`` roles support custom link
text. Thanks to Takeshi Komiya.
* PR#277, #1513: highlights for function pointers in argument list of
- `c:function`. Thanks to Takeshi Komiya.
+ ``c:function``. Thanks to Takeshi Komiya.
* PR#278: Fix section entries were shown twice if toctree has been put under
only directive. Thanks to Takeshi Komiya.
* #1547: pgen2 tokenizer doesn't recognize ``...`` literal (Ellipsis for py3).
@@ -6610,7 +6890,7 @@ Bugs fixed
a user-friendly error message.
* #1502: In autodoc, fix display of parameter defaults containing backslashes.
* #1226: autodoc, autosummary: importing setup.py by automodule will invoke
- setup process and execute ``sys.exit()``. Now sphinx avoids SystemExit
+ setup process and execute ``sys.exit()``. Now Sphinx avoids SystemExit
exception and emits warnings without unexpected termination.
* #1503: py:function directive generate incorrectly signature when specifying
a default parameter with an empty list ``[]``. Thanks to Geert Jansen.
@@ -6636,7 +6916,7 @@ Release 1.2.2 (released Mar 2, 2014)
Bugs fixed
----------
-* PR#211: When checking for existence of the `html_logo` file, check
+* PR#211: When checking for existence of the ``html_logo`` file, check
the full relative path and not the basename.
* PR#212: Fix traceback with autodoc and ``__init__`` methods without docstring.
* PR#213: Fix a missing import in the setup command.
@@ -6676,7 +6956,7 @@ Bugs fixed
This was caused by a change for #1138.
* #1340: Can't search alphabetical words on the HTML quick search generated
with language='ja'.
-* #1319: Do not crash if the `html_logo` file does not exist.
+* #1319: Do not crash if the ``html_logo`` file does not exist.
* #603: Do not use the HTML-ized title for building the search index (that
resulted in "literal" being found on every page with a literal in the
title).
@@ -6694,7 +6974,7 @@ Bugs fixed
* #923: Take the entire LaTeX document into account when caching
pngmath-generated images. This rebuilds them correctly when
``pngmath_latex_preamble`` changes.
-* #901: Emit a warning when using docutils' new "math" markup without a Sphinx
+* #901: Emit a warning when using Docutils' new "math" markup without a Sphinx
math extension active.
* #845: In code blocks, when the selected lexer fails, display line numbers
nevertheless if configured.
@@ -6717,7 +6997,7 @@ Bugs fixed
running Python version.
* #1017: Be helpful and tell the user when the argument to :rst:dir:`option`
does not match the required format.
-* #1345: Fix two bugs with `nitpick_ignore`; now you don't have to
+* #1345: Fix two bugs with ``nitpick_ignore``; now you don't have to
remove the store environment for changes to have effect.
* #1072: In the JS search, fix issues searching for upper-cased words by
lowercasing words before stemming.
@@ -6740,8 +7020,8 @@ Bugs fixed
* #1300: Fix references not working in translated documents in some instances.
* #1283: Fix a bug in the detection of changed files that would try to access
doctrees of deleted documents.
-* #1330: Fix `exclude_patterns` behavior with subdirectories in the
- `html_static_path`.
+* #1330: Fix ``exclude_patterns`` behavior with subdirectories in the
+ ``html_static_path``.
* #1323: Fix emitting empty ``<ul>`` tags in the HTML writer, which is not
valid HTML.
* #1147: Don't emit a sidebar search box in the "singlehtml" builder.
@@ -6840,7 +7120,7 @@ Features added
* Support docutils.conf 'writers' and 'html4css1 writer' section in the HTML
writer. The latex, manpage and texinfo writers also support their respective
'writers' sections.
-* The new `html_extra_path` config value allows to specify directories
+* The new ``html_extra_path`` config value allows to specify directories
with files that should be copied directly to the HTML output directory.
* Autodoc directives for module data and attributes now support an
``annotation`` option, so that the default display of the data/attribute
@@ -6862,7 +7142,7 @@ Bugs fixed
* PR#132: Updated jQuery version to 1.8.3.
* PR#141, #982: Avoid crash when writing PNG file using Python 3. Thanks to
Marcin Wojdyr.
-* PR#145: In parallel builds, sphinx drops second document file to write.
+* PR#145: In parallel builds, Sphinx drops second document file to write.
Thanks to tychoish.
* PR#151: Some styling updates to tables in LaTeX.
* PR#153: The "extensions" config value can now be overridden.
@@ -6911,10 +7191,10 @@ Incompatible changes
* Removed ``sphinx.util.compat.directive_dwim()`` and
``sphinx.roles.xfileref_role()`` which were deprecated since version 1.0.
-* PR#122: the files given in `latex_additional_files` now override TeX
+* PR#122: the files given in ``latex_additional_files`` now override TeX
files included by Sphinx, such as ``sphinx.sty``.
-* PR#124: the node generated by `versionadded`,
- `versionchanged` and `deprecated` directives now includes
+* PR#124: the node generated by ``versionadded``,
+ ``versionchanged`` and ``deprecated`` directives now includes
all added markup (such as "New in version X") as child nodes, and no
additional text must be generated by writers.
* PR#99: the :rst:dir:`seealso` directive now generates admonition nodes instead
@@ -6968,7 +7248,7 @@ Features added
asterisks ("*").
- The default value for the ``paragraphindent`` has been changed from 2 to 0
meaning that paragraphs are no longer indented by default.
- - #1110: A new configuration value `texinfo_no_detailmenu` has been
+ - #1110: A new configuration value ``texinfo_no_detailmenu`` has been
added for controlling whether a ``@detailmenu`` is added in the "Top"
node's menu.
- Detailed menus are no longer created except for the "Top" node.
@@ -6977,16 +7257,16 @@ Features added
* LaTeX builder:
- - PR#115: Add ``'transition'`` item in `latex_elements` for
+ - PR#115: Add ``'transition'`` item in ``latex_elements`` for
customizing how transitions are displayed. Thanks to Jeff Klukas.
- PR#114: The LaTeX writer now includes the "cmap" package by default. The
- ``'cmappkg'`` item in `latex_elements` can be used to control this.
+ ``'cmappkg'`` item in ``latex_elements`` can be used to control this.
Thanks to Dmitry Shachnev.
- - The ``'fontpkg'`` item in `latex_elements` now defaults to ``''``
+ - The ``'fontpkg'`` item in ``latex_elements`` now defaults to ``''``
when the :confval:`language` uses the Cyrillic script. Suggested by Dmitry
Shachnev.
- - The `latex_documents`, `texinfo_documents`, and
- `man_pages` configuration values will be set to default values based
+ - The ``latex_documents``, ``texinfo_documents``, and
+ ``man_pages`` configuration values will be set to default values based
on the :confval:`master_doc` if not explicitly set in :file:`conf.py`.
Previously, if these values were not set, no output would be generated by
their respective builders.
@@ -7005,13 +7285,13 @@ Features added
:class:`~sphinx.builders.xml.XMLBuilder` and
:class:`~sphinx.builders.xml.PseudoXMLBuilder`.
- PR#45: The linkcheck builder now checks ``#anchor``\ s for existence.
- - PR#123, #1106: Add `epub_use_index` configuration value. If
- provided, it will be used instead of `html_use_index` for epub
+ - PR#123, #1106: Add ``epub_use_index`` configuration value. If
+ provided, it will be used instead of ``html_use_index`` for epub
builder.
- - PR#126: Add `epub_tocscope` configuration value. The setting
+ - PR#126: Add ``epub_tocscope`` configuration value. The setting
controls the generation of the epub toc. The user can now also include
hidden toc entries.
- - PR#112: Add `epub_show_urls` configuration value.
+ - PR#112: Add ``epub_show_urls`` configuration value.
* Extensions:
@@ -7078,7 +7358,7 @@ Bugs fixed
* #1127: Fix traceback when autodoc tries to tokenize a non-Python file.
* #1126: Fix double-hyphen to en-dash conversion in wrong places such as
command-line option names in LaTeX.
-* #1123: Allow whitespaces in filenames given to `literalinclude`.
+* #1123: Allow whitespaces in filenames given to ``literalinclude``.
* #1120: Added improvements about i18n for themes "basic", "haiku" and
"scrolls" that Sphinx built-in. Thanks to Leonardo J. Caballero G.
* #1118: Updated Spanish translation. Thanks to Leonardo J. Caballero G.
@@ -7086,7 +7366,7 @@ Bugs fixed
* #1112: Avoid duplicate download files when referenced from documents in
different ways (absolute/relative).
* #1111: Fix failure to find uppercase words in search when
- `html_search_language` is 'ja'. Thanks to Tomo Saito.
+ ``html_search_language`` is 'ja'. Thanks to Tomo Saito.
* #1108: The text writer now correctly numbers enumerated lists with
non-default start values (based on patch by Ewan Edwards).
* #1102: Support multi-context "with" statements in autodoc.
@@ -7117,7 +7397,7 @@ Bugs fixed
* #1008: Fix test failures with Python 3.3.
* #995: Fix table-of-contents and page numbering for the LaTeX "howto" class.
* #976: Fix gettext does not extract index entries.
-* PR#72: #975: Fix gettext not extracting definition terms before docutils 0.10.
+* PR#72: #975: Fix gettext not extracting definition terms before Docutils 0.10.
* #961: Fix LaTeX output for triple quotes in code snippets.
* #958: Do not preserve ``environment.pickle`` after a failed build.
* #955: Fix i18n transformation.
@@ -7158,7 +7438,7 @@ Release 1.1.3 (Mar 10, 2012)
* #851: Recognize and warn about circular toctrees, instead of running
into recursion errors.
-* #853: Restore compatibility with docutils trunk.
+* #853: Restore compatibility with Docutils trunk.
* #852: Fix HtmlHelp index entry links again.
@@ -7215,7 +7495,7 @@ Release 1.1 (Oct 9, 2011)
Incompatible changes
--------------------
-* The `py:module` directive doesn't output its ``platform`` option
+* The ``py:module`` directive doesn't output its ``platform`` option
value anymore. (It was the only thing that the directive did output, and
therefore quite inconsistent.)
@@ -7251,7 +7531,7 @@ Features added
:rst:dir:`toctree`\'s ``numbered`` option.
- #586: Implemented improved :rst:dir:`glossary` markup which allows
multiple terms per definition.
- - #478: Added `py:decorator` directive to describe decorators.
+ - #478: Added ``py:decorator`` directive to describe decorators.
- C++ domain now supports array definitions.
- C++ domain now supports doc fields (``:param x:`` inside directives).
- Section headings in :rst:dir:`only` directives are now correctly
@@ -7307,8 +7587,8 @@ Features added
- Added ``inline`` option to graphviz directives, and fixed the
default (block-style) in LaTeX output.
- #590: Added ``caption`` option to graphviz directives.
- - #553: Added `testcleanup` blocks in the doctest extension.
- - #594: `trim_doctest_flags` now also removes ``<BLANKLINE>``
+ - #553: Added ``testcleanup`` blocks in the doctest extension.
+ - #594: ``trim_doctest_flags`` now also removes ``<BLANKLINE>``
indicators.
- #367: Added automatic exclusion of hidden members in inheritance
diagrams, and an option to selectively enable it.
@@ -7385,7 +7665,7 @@ Release 1.0.8 (Sep 23, 2011)
* #669: Respect the ``noindex`` flag option in py:module directives.
* #675: Fix IndexErrors when including nonexisting lines with
- `literalinclude`.
+ ``literalinclude``.
* #676: Respect custom function/method parameter separator strings.
@@ -7468,7 +7748,7 @@ Release 1.0.6 (Jan 04, 2011)
* #570: Try decoding ``-D`` and ``-A`` command-line arguments with
the locale's preferred encoding.
-* #528: Observe `locale_dirs` when looking for the JS
+* #528: Observe ``locale_dirs`` when looking for the JS
translations file.
* #574: Add special code for better support of Japanese documents
@@ -7491,7 +7771,7 @@ Release 1.0.6 (Jan 04, 2011)
* Fix strange reports of line numbers for warnings generated from
autodoc-included docstrings, due to different behavior depending
- on docutils version.
+ on Docutils version.
* Several fixes to the C++ domain.
@@ -7499,7 +7779,7 @@ Release 1.0.6 (Jan 04, 2011)
Release 1.0.5 (Nov 12, 2010)
============================
-* #557: Add CSS styles required by docutils 0.7 for aligned images
+* #557: Add CSS styles required by Docutils 0.7 for aligned images
and figures.
* In the Makefile generated by LaTeX output, do not delete pdf files
@@ -7526,7 +7806,7 @@ Release 1.0.3 (Aug 23, 2010)
============================
* #495: Fix internal vs. external link distinction for links coming
- from a docutils table-of-contents.
+ from a Docutils table-of-contents.
* #494: Fix the ``maxdepth`` option for the ``toctree()`` template
callable when used with ``collapse=True``.
@@ -7626,7 +7906,7 @@ Incompatible changes
* Removed support for old dependency versions; requirements are now:
- - docutils >= 0.5
+ - Docutils >= 0.5
- Jinja2 >= 2.2
* Removed deprecated elements:
@@ -7646,17 +7926,17 @@ Features added
* Markup:
- - The `menuselection` and `guilabel` roles now
+ - The ``menuselection`` and ``guilabel`` roles now
support ampersand accelerators.
- New more compact doc field syntax is now recognized: ``:param type
name: description``.
- - Added ``tab-width`` option to `literalinclude` directive.
+ - Added ``tab-width`` option to ``literalinclude`` directive.
- Added ``titlesonly`` option to :rst:dir:`toctree` directive.
- Added the ``prepend`` and ``append`` options to the
- `literalinclude` directive.
+ ``literalinclude`` directive.
- #284: All docinfo metadata is now put into the document metadata, not
just the author.
- - The `ref` role can now also reference tables by caption.
+ - The ``ref`` role can now also reference tables by caption.
- The :dudir:`include` directive now supports absolute paths, which
are interpreted as relative to the source directory.
- In the Python domain, references like ``:func:`.name``` now look for
@@ -7664,28 +7944,28 @@ Features added
* Configuration:
- - Added `rst_prolog` config value.
- - Added `html_secnumber_suffix` config value to control
+ - Added ``rst_prolog`` config value.
+ - Added ``html_secnumber_suffix`` config value to control
section numbering format.
- - Added `html_compact_lists` config value to control
- docutils' compact lists feature.
- - The `html_sidebars` config value can now contain patterns
+ - Added ``html_compact_lists`` config value to control
+ Docutils' compact lists feature.
+ - The ``html_sidebars`` config value can now contain patterns
as keys, and the values can be lists that explicitly select which
sidebar templates should be rendered. That means that the builtin
sidebar contents can be included only selectively.
- - `html_static_path` can now contain single file entries.
- - The new universal config value `exclude_patterns` makes the
+ - ``html_static_path`` can now contain single file entries.
+ - The new universal config value ``exclude_patterns`` makes the
old ``unused_docs``, ``exclude_trees`` and
``exclude_dirnames`` obsolete.
- - Added `html_output_encoding` config value.
- - Added the `latex_docclass` config value and made the
+ - Added ``html_output_encoding`` config value.
+ - Added the ``latex_docclass`` config value and made the
"twoside" documentclass option overridable by "oneside".
- - Added the `trim_doctest_flags` config value, which is true
+ - Added the ``trim_doctest_flags`` config value, which is true
by default.
- - Added `html_show_copyright` config value.
- - Added `latex_show_pagerefs` and `latex_show_urls`
+ - Added ``html_show_copyright`` config value.
+ - Added ``latex_show_pagerefs``` and ``latex_show_urls``
config values.
- - The behavior of `html_file_suffix` changed slightly: the
+ - The behavior of ``html_file_suffix``` changed slightly: the
empty string now means "no suffix" instead of "default suffix", use
``None`` for "default suffix".
@@ -7727,7 +8007,7 @@ Features added
* Extension API:
- Added :event:`html-collect-pages`.
- - Added `needs_sphinx` config value and
+ - Added ``needs_sphinx`` config value and
:meth:`~sphinx.application.Sphinx.require_sphinx` application API
method.
- #200: Added :meth:`!add_stylesheet`
@@ -7739,7 +8019,7 @@ Features added
- Added the :mod:`~sphinx.ext.extlinks` extension.
- Added support for source ordering of members in autodoc, with
``autodoc_member_order = 'bysource'``.
- - Added `autodoc_default_flags` config value, which can be
+ - Added ``autodoc_default_flags`` config value, which can be
used to select default flags for all autodoc directives.
- Added a way for intersphinx to refer to named labels in other
projects, and to specify the project you want to link to.
@@ -7749,7 +8029,7 @@ Features added
extension, thanks to Pauli Virtanen.
- #309: The :mod:`~sphinx.ext.graphviz` extension can now output SVG
instead of PNG images, controlled by the
- `graphviz_output_format` config value.
+ ``graphviz_output_format`` config value.
- Added ``alt`` option to :rst:dir:`graphviz` extension directives.
- Added ``exclude`` argument to :func:`.autodoc.between`.
@@ -7779,7 +8059,7 @@ Release 0.6.7 (Jun 05, 2010)
* Fix a bug that prevented some references being generated in the
LaTeX builder.
-* #428: Add some missing CSS styles for standard docutils classes.
+* #428: Add some missing CSS styles for standard Docutils classes.
* #432: Fix UnicodeErrors while building LaTeX in translated locale.
@@ -7959,7 +8239,7 @@ Release 0.6.3 (Sep 03, 2009)
* #213: Fix centering of images in LaTeX output.
-* #211: Fix compatibility with docutils 0.5.
+* #211: Fix compatibility with Docutils 0.5.
Release 0.6.2 (Jun 16, 2009)
@@ -7988,7 +8268,7 @@ Release 0.6.2 (Jun 16, 2009)
* #178: apply ``add_function_parentheses`` config value to C
functions as promised.
-* #173: Respect the docutils ``title`` directive.
+* #173: Respect the Docutils ``title`` directive.
* #172: The ``obj`` role now links to modules as promised.
@@ -8124,7 +8404,7 @@ New features added
- Added a ``toctree`` callable to the templates, and the ability
to include external links in toctrees. The 'collapse' keyword
argument indicates whether or not to only display subitems of
- the current page. (Defaults to True.)
+ the current page. (Defaults to ``True``.)
* Configuration:
@@ -8146,7 +8426,7 @@ New features added
ignore certain package names for module index sorting.
- The new ``trim_footnote_reference_space`` config value mirrors
- the docutils config value of the same name and removes the
+ the Docutils config value of the same name and removes the
space before a footnote reference that is necessary for reST
to recognize the reference.
@@ -8212,15 +8492,15 @@ New features added
option per directive.
- The function ``Sphinx.add_directive()`` now also supports
- docutils 0.5-style directive classes. If they inherit from
+ Docutils 0.5-style directive classes. If they inherit from
``sphinx.util.compat.Directive``, they also work with
- docutils 0.4.
+ Docutils 0.4.
- There is now a ``Sphinx.add_lexer()`` method to be able to use
custom Pygments lexers easily.
- There is now ``Sphinx.add_generic_role()`` to mirror the
- docutils' own function.
+ Docutils' own function.
* Other changes:
@@ -8349,7 +8629,7 @@ New features added
- "System Message" warnings are now automatically removed from the
built documentation, and only written to stderr. If you want the
- old behavior, set the new config value ``keep_warnings`` to True.
+ old behavior, set the new config value ``keep_warnings`` to ``True``.
- Glossary entries are now automatically added to the index.
@@ -8384,7 +8664,7 @@ New features added
- Highlighted code blocks now have CSS classes that make it possible
to style them depending on their language.
- - HTML ``<meta>`` tags via the docutils :dudir:`meta` directive are now
+ - HTML ``<meta>`` tags via the Docutils :dudir:`meta` directive are now
supported.
- ``SerializingHTMLBuilder`` was added as new abstract builder that
@@ -8456,7 +8736,7 @@ New features added
- sphinx.ext.autodoc has a new event ``autodoc-skip-member`` that allows
tuning which members are included in the generated content.
- - Respect __all__ when autodocumenting module members.
+ - Respect ``__all__`` when autodocumenting module members.
- The ``automodule`` directive now supports the ``synopsis``,
``deprecated`` and ``platform`` options.
@@ -8544,7 +8824,7 @@ Release 0.4.3 (Oct 8, 2008)
"module", once as "module.".
* Fix a bug in the HTML writer that created duplicate ``id``
- attributes for section titles with docutils 0.5.
+ attributes for section titles with Docutils 0.5.
* Properly call ``super()`` in overridden blocks in templates.
@@ -8606,7 +8886,7 @@ Release 0.4.1 (Jul 5, 2008)
* Fix linkcheck builder crash for malformed URLs.
-* Add compatibility for admonitions and docutils 0.5.
+* Add compatibility for admonitions and Docutils 0.5.
* Remove the silly restriction on "rubric" in the LaTeX writer: you
can now write arbitrary "rubric" directives, and only those with
@@ -8855,8 +9135,8 @@ New features added
- Support a new method, ``add_crossref_type``. It works like
``add_description_unit`` but the directive will only create a target
and no output.
- - Support a new method, ``add_transform``. It takes a standard docutils
- ``Transform`` subclass which is then applied by Sphinx' reader on
+ - Support a new method, ``add_transform``. It takes a standard Docutils
+ ``Transform`` subclass which is then applied by Sphinx's reader on
parsing reST document trees.
- Add support for other template engines than Jinja, by adding an
abstraction called a "template bridge". This class handles rendering
@@ -8882,7 +9162,7 @@ New features added
- All references to "documentation" in the templates have been removed, so
that it is now easier to use Sphinx for non-documentation documents with
the default templates.
- - Templates now have an XHTML doctype, to be consistent with docutils'
+ - Templates now have an XHTML doctype, to be consistent with Docutils'
HTML output.
- You can now create an OpenSearch description file with the
``html_use_opensearch`` config value.
@@ -8962,7 +9242,7 @@ Release 0.1.61945 (Mar 26, 2008)
latex Makefile. Really pass the correct paper and size options
to the LaTeX document class.
-* setup: On Python 2.4, don't egg-depend on docutils if a docutils is
+* setup: On Python 2.4, don't egg-depend on Docutils if a Docutils is
already installed -- else it will be overwritten.
@@ -8993,7 +9273,7 @@ Release 0.1.61843 (Mar 24, 2008)
Release 0.1.61798 (Mar 23, 2008)
================================
-* sphinx: Work with docutils SVN snapshots as well as 0.4.
+* sphinx: Work with Docutils SVN snapshots as well as 0.4.
* sphinx.ext.doctest: Make the group in which doctest blocks are
placed selectable, and default to ``'default'``.
diff --git a/CODE_OF_CONDUCT b/CODE_OF_CONDUCT.rst
index 4bec2fd..4bec2fd 100644
--- a/CODE_OF_CONDUCT
+++ b/CODE_OF_CONDUCT.rst
diff --git a/EXAMPLES b/EXAMPLES.rst
index 5a787c3..1f47ced 100644
--- a/EXAMPLES
+++ b/EXAMPLES.rst
@@ -29,7 +29,6 @@ Documentation using the alabaster theme
* `Jinja <https://jinja.palletsprojects.com/>`__
* `Lino <https://www.lino-framework.org/>`__ (customized)
* `marbl <https://getmarbl.readthedocs.io/>`__
-* `MDAnalysis <https://www.mdanalysis.org/docs/>`__ (customized)
* `MeshPy <https://documen.tician.de/meshpy/>`__
* `Molecule <https://molecule.readthedocs.io/>`__
* `Momotor LTI <https://momotor.org/doc/lti/canvas/>`__
@@ -61,18 +60,17 @@ Documentation using the classic theme
* `Buildbot <https://docs.buildbot.net/latest/>`__
* `CMake <https://cmake.org/documentation/>`__ (customized)
* `Chaco <https://docs.enthought.com/chaco/>`__ (customized)
-* `Cormoran <http://cormoran.nhopkg.org/docs/>`__
* `DEAP <https://deap.readthedocs.io/>`__ (customized)
* `Director <https://pythonhosted.org/director/>`__
-* `EZ-Draw <https://pageperso.lif.univ-mrs.fr/~edouard.thiel/ez-draw/doc/en/html/ez-manual.html>`__ (customized)
+* `EZ-Draw <https://pageperso.lis-lab.fr/~edouard.thiel/ez-draw/doc/en/html/ez-manual.html>`__ (customized)
* `Generic Mapping Tools (GMT) <https://gmt.soest.hawaii.edu/doc/latest/>`__ (customized)
* `Genomedata <https://noble.gs.washington.edu/proj/genomedata/doc/1.3.3/>`__
-* `GetFEM++ <https://getfem.org/>`__ (customized)
+* `GetFEM <https://getfem.org/>`__ (customized)
* `Glasgow Haskell Compiler <https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/>`__ (customized)
-* `Grok <http://grok.zope.org/doc/current/>`__ (customized)
+* `Grok <https://web.archive.org/web/20230708190705/http://grok.zope.org/doc/current/>`__ (customized)
* `GROMACS <https://manual.gromacs.org/documentation/>`__
* `GSL Shell <https://www.nongnu.org/gsl-shell/>`__
-* `Hands-on Python Tutorial <http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/>`__
+* `Hands-on Python Tutorial <http://anh.cs.luc.edu:80/python/hands-on/3.1/handsonHtml/>`__
* `Kaa <https://freevo.github.io/kaa-base/>`__ (customized)
* `Leo <https://leoeditor.com/>`__ (customized)
* `Mayavi <https://docs.enthought.com/mayavi/mayavi/>`__ (customized)
@@ -80,33 +78,31 @@ Documentation using the classic theme
* `mpmath <https://mpmath.org/doc/current/>`__
* `OpenCV <https://docs.opencv.org/>`__ (customized)
* `OpenEXR <https://excamera.com/articles/26/doc/index.html>`__
-* `OpenGDA <http://www.opengda.org/documentation/>`__
+* `OpenGDA <https://alfred.diamond.ac.uk/documentation/>`__
* `phpDocumentor <https://docs.phpdoc.org/>`__ (customized)
* `Plone <https://docs.plone.org/>`__ (customized)
* `PyEMD <https://pyemd.readthedocs.io/>`__
-* `Pyevolve <http://pyevolve.sourceforge.net/>`__
+* `Pyevolve <https://pyevolve.sourceforge.net/>`__
* `Pygame <https://www.pygame.org/docs/>`__ (customized)
* `PyMQI <https://dsuch.github.io/pymqi/>`__
-* `PyQt4 <http://pyqt.sourceforge.net/Docs/PyQt4/>`__ (customized)
-* `PyQt5 <http://pyqt.sourceforge.net/Docs/PyQt5/>`__ (customized)
+* `PyQt4 <https://pyqt.sourceforge.net/Docs/PyQt4/>`__ (customized)
+* `PyQt5 <https://pyqt.sourceforge.net/Docs/PyQt5/>`__ (customized)
* `Python 2 <https://docs.python.org/2/>`__
* `Python 3 <https://docs.python.org/3/>`__ (customized)
* `Python Packaging Authority <https://www.pypa.io/>`__ (customized)
-* `Ring programming language <http://ring-lang.sourceforge.net/doc/>`__ (customized)
+* `Ring programming language <https://ring-lang.sourceforge.net/doc/>`__ (customized)
* `SageMath <https://doc.sagemath.org/>`__ (customized)
* `Segway <https://noble.gs.washington.edu/proj/segway/doc/1.1.0/segway.html>`__
-* `simuPOP <http://simupop.sourceforge.net/manual_release/build/userGuide.html>`__ (customized)
-* `Sprox <http://sprox.org/>`__ (customized)
+* `simuPOP <https://simupop.sourceforge.net/manual_release/build/userGuide.html>`__ (customized)
* `SymPy <https://docs.sympy.org/>`__
* `TurboGears <https://turbogears.readthedocs.io/>`__ (customized)
* `tvtk <https://docs.enthought.com/mayavi/tvtk/>`__
* `Varnish <https://www.varnish-cache.org/docs/>`__ (customized, alabaster for index)
* `Waf <https://waf.io/apidocs/>`__
* `wxPython Phoenix <https://wxpython.org/Phoenix/docs/html/main.html>`__ (customized)
-* `Yum <http://yum.baseurl.org/api/yum/>`__
* `z3c <https://www.ibiblio.org/paulcarduner/z3ctutorial/>`__
* `zc.async <https://pythonhosted.org/zc.async/>`__ (customized)
-* `Zope <https://docs.zope.org/zope2/>`__ (customized)
+* `Zope <https://www.zope.dev/>`__ (customized)
Documentation using the sphinxdoc theme
---------------------------------------
@@ -115,16 +111,15 @@ Documentation using the sphinxdoc theme
* `cartopy <https://scitools.org.uk/cartopy/docs/latest/>`__
* `Jython <https://jython.readthedocs.io/>`__
* `LLVM <https://llvm.org/docs/>`__
-* `MDAnalysis Tutorial <https://www.mdanalysis.org/MDAnalysisTutorial/>`__
* `PyCantonese <https://pycantonese.org/>`__
* `Pyre <https://pyre.readthedocs.io/>`__
* `pySPACE <https://pyspace.github.io/pyspace/>`__
-* `Pysparse <http://pysparse.sourceforge.net/>`__
-* `PyTango <https://www.esrf.eu/computing/cs/tango/tango_doc/kernel_doc/pytango/latest/>`__
+* `Pysparse <https://pysparse.sourceforge.net/>`__
+* `PyTango <https://pytango.readthedocs.io>`__
* `Python Wild Magic <https://vmlaker.github.io/pythonwildmagic/>`__ (customized)
* `RDKit <https://www.rdkit.org/docs/>`__
-* `Reteisi <http://www.reteisi.org/contents.html>`__ (customized)
-* `Sqlkit <http://sqlkit.argolinux.org/>`__ (customized)
+* `Reteisi <https://www.reteisi.org/contents.html>`__ (customized)
+* `Sqlkit <https://sqlkit.argolinux.org/>`__ (customized)
* `Turbulenz <http://docs.turbulenz.com/>`__
Documentation using the nature theme
@@ -136,12 +131,11 @@ Documentation using the nature theme
* `libLAS <https://liblas.org/>`__ (customized)
* `Lmod <https://lmod.readthedocs.io/>`__
* `MapServer <https://mapserver.org/>`__ (customized)
-* `pyglet <https://pyglet.readthedocs.io/>`__ (customized)
* `PyWavelets <https://pywavelets.readthedocs.io/>`__
* `Setuptools <https://setuptools.readthedocs.io/>`__
* `Spring Python <https://docs.spring.io/spring-python/1.2.x/sphinx/html/>`__
* `StatsModels <https://www.statsmodels.org/>`__ (customized)
-* `Sylli <http://sylli.sourceforge.net/>`__
+* `Sylli <https://sylli.sourceforge.net/>`__
Documentation using another builtin theme
-----------------------------------------
@@ -191,7 +185,6 @@ Documentation using sphinx_rtd_theme
* `dj-stripe <https://dj-stripe.readthedocs.io/>`__
* `edX <https://docs.edx.org/>`__
* `Electrum <https://docs.electrum.org/>`__
-* `Elemental <https://libelemental.org/documentation/dev/>`__
* `ESWP3 <https://eswp3.readthedocs.io/>`__
* `Ethereum Homestead <https://www.ethdocs.org/>`__
* `Exhale <https://exhale.readthedocs.io/>`__
@@ -210,7 +203,6 @@ Documentation using sphinx_rtd_theme
* `HDF5 for Python (h5py) <https://docs.h5py.org/>`__
* `HyperKitty <https://hyperkitty.readthedocs.io/>`__
* `Hyperledger Fabric <https://hyperledger-fabric.readthedocs.io/>`__
-* `Hyperledger Sawtooth <https://sawtooth.hyperledger.org/docs/>`__
* `IdentityServer <https://docs.identityserver.io/>`__
* `Idris <https://docs.idris-lang.org/>`__
* `Inkscape <https://inkscape-manuals.readthedocs.io/>`__ (customized)
@@ -225,7 +217,7 @@ Documentation using sphinx_rtd_theme
* `Linux kernel <https://www.kernel.org/doc/html/latest/index.html>`__
* `Mailman <https://docs.list.org/>`__
* `MathJax <https://docs.mathjax.org/>`__
-* `MDTraj <http://mdtraj.org/>`__ (customized)
+* `MDTraj <https://mdtraj.org/>`__ (customized)
* `Mesa 3D <https://docs.mesa3d.org/>`__
* `micca - MICrobial Community Analysis <https://micca.readthedocs.io/>`__
* `MicroPython <https://docs.micropython.org/>`__
@@ -257,6 +249,7 @@ Documentation using sphinx_rtd_theme
* `PROS <https://pros.cs.purdue.edu/v5/>`__ (customized)
* `Pweave <https://mpastell.com/pweave/>`__
* `pyca/cryptograhpy <https://cryptography.io/>`__
+* `pyglet <https://pyglet.readthedocs.io/>`__
* `PyNaCl <https://pynacl.readthedocs.io/>`__
* `pyOpenSSL <https://www.pyopenssl.org/>`__
* `PyPy <https://doc.pypy.org/>`__
@@ -268,8 +261,9 @@ Documentation using sphinx_rtd_theme
* `Free your information from their silos (French) <https://redaction-technique.org/>`__ (customized)
* `Releases Sphinx extension <https://releases.readthedocs.io/>`__
* `Qtile <https://docs.qtile.org/>`__
-* `Quex <http://quex.sourceforge.net/doc/html/main.html>`__
+* `Quex <https://quex.sourceforge.net/doc/html/main.html>`__
* `QuTiP <https://qutip.org/docs/latest/>`__
+* `Sawtooth <https://sawtooth.splinter.dev/docs>`__
* `Scapy <https://scapy.readthedocs.io/>`__
* `SimGrid <https://simgrid.org/doc/latest/>`__
* `SimPy <https://simpy.readthedocs.io/>`__
@@ -283,12 +277,11 @@ Documentation using sphinx_rtd_theme
* `Sphinx with Github Webpages <https://runawayhorse001.github.io/SphinxGithub>`__
* `SpotBugs <https://spotbugs.readthedocs.io/>`__
* `StarUML <https://docs.staruml.io/>`__
-* `Sublime Text Unofficial Documentation <http://docs.sublimetext.info/>`__
+* `Sublime Text Unofficial Documentation <https://docs.sublimetext.info/>`__
* `SunPy <https://docs.sunpy.org/>`__
* `Sylius <https://docs.sylius.com/>`__
* `Syncthing <https://docs.syncthing.net/>`__
* `Tango Controls <https://tango-controls.readthedocs.io/>`__ (customized)
-* `Topshelf <https://docs.topshelf-project.com/>`__
* `ThreatConnect <https://docs.threatconnect.com/>`__
* `TrueNAS <https://www.ixsystems.com/documentation/truenas/>`__ (customized)
* `Tuleap <https://tuleap.net/doc/en/>`__
@@ -381,12 +374,11 @@ Documentation using a custom theme or integrated in a website
* `ndnSIM <https://ndnsim.net/current/>`__
* `nose <https://nose.readthedocs.io/>`__
* `ns-3 <https://www.nsnam.org/documentation/>`__
-* `ObjectListView <http://objectlistview.sourceforge.net/python/>`__
+* `ObjectListView <https://objectlistview.sourceforge.net/python/>`__
* `OpenERP <https://doc.odoo.com/>`__
* `OpenCV <https://docs.opencv.org/>`__
* `Open Dylan <https://opendylan.org/>`__
-* `OpenLayers <http://docs.openlayers.org/>`__
-* `OpenTURNS <https://openturns.github.io/openturns/master/>`__
+* `OpenTURNS <https://openturns.github.io/openturns/latest/>`__
* `Open vSwitch <https://docs.openvswitch.org/>`__
* `PlatformIO <https://docs.platformio.org/>`__
* `Psycopg <https://www.psycopg.org/docs/>`__
@@ -407,7 +399,7 @@ Documentation using a custom theme or integrated in a website
* `Substance D <https://docs.pylonsproject.org/projects/substanced/>`__
* `Sulu <https://docs.sulu.io/>`__
* `SQLAlchemy <https://docs.sqlalchemy.org/>`__
-* `tinyTiM <http://tinytim.sourceforge.net/docs/2.0/>`__
+* `tinyTiM <https://tinytim.sourceforge.net/docs/2.0/>`__
* `Twisted <https://twistedmatrix.com/documents/current/>`__
* `Ubuntu Packaging Guide <https://packaging.ubuntu.com/html/>`__
* `WTForms <https://wtforms.readthedocs.io/>`__
@@ -415,7 +407,7 @@ Documentation using a custom theme or integrated in a website
Homepages and other non-documentation sites
-------------------------------------------
-* `Alan Crosswell's Using the Django REST Framework and DRF-JSONAPI <http://www.columbia.edu/~alan/django-jsonapi-training/>`__
+* `Alan Crosswell's Using the Django REST Framework and DRF-JSONAPI <https://www.columbia.edu/~alan/django-jsonapi-training/>`__
* `Arizona State University PHY494/PHY598/CHM598 Simulation approaches to Bio-and Nanophysics <https://becksteinlab.physics.asu.edu/pages/courses/2013/SimBioNano/>`__ (classic)
* `Benoit Boissinot <https://bboissin.appspot.com/>`__ (classic, customized)
* `EBI Cloud Consultancy Team <https://tsi-ccdoc.readthedocs.io/>`__ (sphinx_rtd_theme)
@@ -424,11 +416,9 @@ Homepages and other non-documentation sites
* `Institute for the Design of Advanced Energy Systems (IDAES) <https://idaes-pse.readthedocs.io/>`__ (sphinx_rtd_theme)
* `IDAES Examples <https://idaes.github.io/examples-pse/>`__ (sphinx_rtd_theme)
* `Lei Ma's Statistical Mechanics lecture notes <https://statisticalphysics.leima.is/>`__ (sphinx_bootstrap_theme)
-* `Loyola University Chicago CS Academic Programs <https://academics.cs.luc.edu/index.html>`__ (sphinx_rtd_theme, customized)
* `PyXLL <https://www.pyxll.com/>`__ (sphinx_bootstrap_theme, customized)
* `SciPy Cookbook <https://scipy-cookbook.readthedocs.io/>`__ (sphinx_rtd_theme)
* `Tech writer at work blog <https://documatt.com/blog/>`__ (custom theme)
-* `Thomas Cokelaer's Python, Sphinx and reStructuredText tutorials <https://thomas-cokelaer.info/tutorials/>`__ (standard)
* `UC Berkeley ME233 Advanced Control Systems II course <https://berkeley-me233.github.io/>`__ (sphinxdoc)
* `Željko Svedružić's Biomolecular Structure and Function Laboratory (BioSFLab) <https://svedruziclab.github.io/>`__ (sphinx_bootstrap_theme)
@@ -446,7 +436,7 @@ Books produced using Sphinx
* `"Learning System Programming with Go (Japanese)" <https://www.lambdanote.com/products/go>`__
* `"Mercurial: the definitive guide (Second edition)" <https://book.mercurial-scm.org/>`__
* `"Mithril -- The fastest clientside MVC (Japanese)" <https://www.oreilly.co.jp/books/9784873117447/>`__
-* `"Pioneers and Prominent Men of Utah" <http://pioneers.rstebbing.com/>`__
+* "Pioneers and Prominent Men of Utah"
* `"Pomodoro Technique Illustrated" (Japanese translation) <https://www.amazon.co.jp/dp/4048689525/>`__
* `"Professional Software Development" <https://mixmastamyk.bitbucket.io/pro_soft_dev/>`__
* `"Python Professional Programming" (in Japanese) <https://www.amazon.co.jp/dp/4798032948/>`__
diff --git a/LICENSE b/LICENSE.rst
index 12779b2..db36b19 100644
--- a/LICENSE
+++ b/LICENSE.rst
@@ -4,7 +4,7 @@ License for Sphinx
Unless otherwise indicated, all code in the Sphinx project is licenced under the
two clause BSD licence below.
-Copyright (c) 2007-2023 by the Sphinx team (see AUTHORS file).
+Copyright (c) 2007-2024 by the Sphinx team (see AUTHORS file).
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/PKG-INFO b/PKG-INFO
index 8494bd6..3f7c818 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: Sphinx
-Version: 7.2.6
+Version: 7.3.7
Summary: Python documentation generator
Author-email: Georg Brandl <georg@python.org>
Requires-Python: >=3.9
@@ -26,6 +26,7 @@ Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Framework :: Sphinx
+Classifier: Framework :: Sphinx :: Domain
Classifier: Framework :: Sphinx :: Extension
Classifier: Framework :: Sphinx :: Theme
Classifier: Topic :: Documentation
@@ -49,29 +50,30 @@ Requires-Dist: sphinxcontrib-serializinghtml>=1.1.9
Requires-Dist: sphinxcontrib-qthelp
Requires-Dist: Jinja2>=3.0
Requires-Dist: Pygments>=2.14
-Requires-Dist: docutils>=0.18.1,<0.21
+Requires-Dist: docutils>=0.18.1,<0.22
Requires-Dist: snowballstemmer>=2.0
Requires-Dist: babel>=2.9
-Requires-Dist: alabaster>=0.7,<0.8
+Requires-Dist: alabaster~=0.7.14
Requires-Dist: imagesize>=1.3
Requires-Dist: requests>=2.25.0
Requires-Dist: packaging>=21.0
Requires-Dist: importlib-metadata>=4.8; python_version < '3.10'
+Requires-Dist: tomli>=2; python_version < '3.11'
Requires-Dist: colorama>=0.4.5; sys_platform == 'win32'
Requires-Dist: sphinxcontrib-websupport ; extra == "docs"
Requires-Dist: flake8>=3.5.0 ; extra == "lint"
-Requires-Dist: flake8-simplify ; extra == "lint"
-Requires-Dist: isort ; extra == "lint"
-Requires-Dist: ruff ; extra == "lint"
-Requires-Dist: mypy>=0.990 ; extra == "lint"
+Requires-Dist: ruff==0.3.7 ; extra == "lint"
+Requires-Dist: mypy==1.9.0 ; extra == "lint"
Requires-Dist: sphinx-lint ; extra == "lint"
-Requires-Dist: docutils-stubs ; extra == "lint"
+Requires-Dist: types-docutils ; extra == "lint"
Requires-Dist: types-requests ; extra == "lint"
-Requires-Dist: pytest>=4.6 ; extra == "test"
-Requires-Dist: html5lib ; extra == "test"
+Requires-Dist: importlib_metadata ; extra == "lint"
+Requires-Dist: tomli ; extra == "lint"
+Requires-Dist: pytest>=6.0 ; extra == "lint"
+Requires-Dist: pytest>=6.0 ; extra == "test"
+Requires-Dist: defusedxml>=0.7.1 ; extra == "test"
Requires-Dist: cython>=3.0 ; extra == "test"
Requires-Dist: setuptools>=67.0 ; extra == "test"
-Requires-Dist: filelock ; extra == "test"
Project-URL: Changelog, https://www.sphinx-doc.org/en/master/changes.html
Project-URL: Code, https://github.com/sphinx-doc/sphinx
Project-URL: Download, https://pypi.org/project/Sphinx/
@@ -123,7 +125,7 @@ Features
* **Language Support**: Python, C, C++, JavaScript, mathematics, and many other
languages through extensions.
-For more information, refer to the `the documentation`_.
+For more information, refer to `the documentation`_.
Installation
============
diff --git a/README.rst b/README.rst
index d1ad3f4..156ce72 100644
--- a/README.rst
+++ b/README.rst
@@ -40,7 +40,7 @@ Features
* **Language Support**: Python, C, C++, JavaScript, mathematics, and many other
languages through extensions.
-For more information, refer to the `the documentation`_.
+For more information, refer to `the documentation`_.
Installation
============
diff --git a/debian/changelog b/debian/changelog
index 7bd47a6..628b1e8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,56 @@
+sphinx (7.3.7-2) experimental; urgency=medium
+
+ * Make python3-sphinx depend on python3-defusedxml, needed by
+ sphinx.testing.util module.
+ * Remove no longer needed test dependencies (thanks Piotr Ożarowski):
+ - python3-sphinxcontrib.websupport
+ - python3-sqlalchemy
+ - python3-whoosh
+ - python3-xapian
+ * Backport upstream patch to fix tests with Python 3.12.4.
+
+ -- Dmitry Shachnev <mitya57@debian.org> Thu, 13 Jun 2024 20:51:07 +0300
+
+sphinx (7.3.7-1) experimental; urgency=medium
+
+ * New upstream release.
+ * Drop patches, included in the new release:
+ - python_3.11.7.diff
+ - python_3.12.3.diff
+ - reproducible_searchindex.diff
+ * Drop skip_tests_network.diff (closes: #1069774).
+ * Drop support_old_search_indexes.diff. Bookworm has Sphinx 5.3, so it
+ does not make sense to support older indexes anymore.
+ * Refresh other patches.
+ * Update path of ignored test file in debian/rules.
+ * Bump required python3-alabaster version to 0.7.14.
+ * Add dvisvgm to test dependencies and Suggests.
+ * Add cython3, gcc and python3-all-dev to test dependencies.
+ * Add python3-defusedxml to test dependencies.
+ * dh_sphinxdoc: Support loading searchindex.js with defer="defer".
+ * Install AUTHORS and CHANGES files with .rst extension.
+ * Remove debian/python3-sphinx.preinst, no longer needed.
+ * Update numbers in debian/jstest/run-tests.
+ * Update debian/copyright.
+ * dh_sphinxdoc: Bump minimum dependency version for searchtools.js.
+ * Update the command to replace links to docutils documentation.
+ * Bump Standards-Version to 4.7.0, no changes needed.
+
+ -- Dmitry Shachnev <mitya57@debian.org> Wed, 05 Jun 2024 16:35:21 +0300
+
+sphinx (7.2.6-8) unstable; urgency=medium
+
+ * Backport upstream patch to make searchindex.js deterministic (closes:
+ #1071719).
+
+ -- Dmitry Shachnev <mitya57@debian.org> Fri, 24 May 2024 16:08:24 +0300
+
+sphinx (7.2.6-7) unstable; urgency=medium
+
+ * Backport upstream patch to fix test failure with Python 3.12.3.
+
+ -- Dmitry Shachnev <mitya57@debian.org> Fri, 10 May 2024 21:42:01 +0300
+
sphinx (7.2.6-6) unstable; urgency=medium
* Break old versions of python-flask-restful-doc and python-pylatex-doc
diff --git a/debian/control b/debian/control
index 965d7de..558e0fd 100644
--- a/debian/control
+++ b/debian/control
@@ -5,9 +5,11 @@ Maintainer: Debian Python Team <team+python@tracker.debian.org>
Uploaders: Dmitry Shachnev <mitya57@debian.org>
Homepage: https://www.sphinx-doc.org/
Build-Depends: debhelper-compat (= 13)
-Build-Depends-Indep: dh-python (>= 3.20180313~),
+Build-Depends-Indep: cython3 <!nocheck>,
+ dh-python (>= 3.20180313~),
dpkg-dev (>= 1.17.14),
- dvipng,
+ dvipng <!nocheck>,
+ dvisvgm <!nocheck>,
flit (>= 3.7),
fonts-freefont-otf,
graphviz,
@@ -19,9 +21,11 @@ Build-Depends-Indep: dh-python (>= 3.20180313~),
perl,
pybuild-plugin-pyproject,
python-requests-doc <!nodoc>,
- python3-alabaster (>= 0.7),
+ python3-alabaster (>= 0.7.14),
python3-all (>= 3.3.3-1~),
+ python3-all-dev <!nocheck>,
python3-babel (>= 1.3),
+ python3-defusedxml <!nocheck>,
python3-doc <!nodoc>,
python3-docutils (>= 0.18.1),
python3-filelock <!nocheck>,
@@ -44,17 +48,19 @@ Build-Depends-Indep: dh-python (>= 3.20180313~),
texlive-luatex,
texlive-xetex
Rules-Requires-Root: no
-Standards-Version: 4.6.2
+Standards-Version: 4.7.0
Vcs-Git: https://salsa.debian.org/python-team/packages/sphinx.git
Vcs-Browser: https://salsa.debian.org/python-team/packages/sphinx
Package: python3-sphinx
Architecture: all
-Depends: sphinx-common (= ${source:Version}),
+Depends: python3-defusedxml (>= 0.7.1),
+ sphinx-common (= ${source:Version}),
${misc:Depends},
${python3:Depends}
Recommends: make, python3-pil
Suggests: dvipng,
+ dvisvgm,
fonts-freefont-otf,
imagemagick-6.q16,
latexmk,
diff --git a/debian/copyright b/debian/copyright
index 80f793e..4acdf48 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -2,7 +2,7 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Sphinx
Files: *
-Copyright: 2007-2023 the Sphinx team (see AUTHORS file)
+Copyright: 2007-2024 the Sphinx team (see AUTHORS file)
License: BSD-2-clause
Files: debian/dh-sphinxdoc/dh_sphinxdoc
@@ -13,13 +13,13 @@ License: BSD-2-clause
Files: sphinx/ext/apidoc.py
Copyright: 2008 Société des arts technologiques (SAT)
- 2007-2023 the Sphinx team
+ 2007-2024 the Sphinx team
License: BSD-2-clause
Files: sphinx/ext/napoleon/docstring.py
Copyright: 2008 Stefan van der Walt <stefan@mentat.za.net>
2008 Pauli Virtanen <pav@iki.fi>
- 2007-2023 the Sphinx team
+ 2007-2024 the Sphinx team
License: BSD-2-clause
Files: sphinx/search/minified-js/*
@@ -32,8 +32,8 @@ License: BSD-3-clause
Files: sphinx/themes/haiku/static/haiku.css_t
Copyright: 2008-2009 Haiku
- 2007-2023 the Sphinx team
-License: BSD-2-clause
+ 2007-2024 the Sphinx team
+License: Expat and BSD-2-clause
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
@@ -83,3 +83,22 @@ License: BSD-3-clause
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: Expat
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
diff --git a/debian/dh-sphinxdoc/dh_sphinxdoc b/debian/dh-sphinxdoc/dh_sphinxdoc
index ccd4a5a..fb74e9c 100755
--- a/debian/dh-sphinxdoc/dh_sphinxdoc
+++ b/debian/dh-sphinxdoc/dh_sphinxdoc
@@ -290,7 +290,7 @@ sub sanity_check($$)
}
}
defined $documentation_options or error("DOCUMENTATION_OPTIONS not found");
- my $loads_searchindex = $search =~ m{<script(?: type="text/javascript")? src="[^"]*searchindex.js\s?"(?: defer)?>};
+ my $loads_searchindex = $search =~ m{<script(?: type="text/javascript")? src="[^"]*searchindex.js\s?"(?: defer(?:="defer"))?>};
unless ($loads_searchindex)
{
# old style, used before Sphinx 2.0
diff --git a/debian/dh-sphinxdoc/index b/debian/dh-sphinxdoc/index
index 6217120..fe7384b 100644
--- a/debian/dh-sphinxdoc/index
+++ b/debian/dh-sphinxdoc/index
@@ -1,7 +1,7 @@
# <filename> [min-version]
1.0/doctools.js 5.2
1.0/language_data.js 2.4.3-5~
-1.0/searchtools.js 7.2.2
+1.0/searchtools.js 7.3
1.0/sidebar.js 5.0
1.0/theme_extras.js 5.0
1.0/css3-mediaqueries.js 1.3
diff --git a/debian/jstest/run-tests b/debian/jstest/run-tests
index 1285ccd..1310ebf 100755
--- a/debian/jstest/run-tests
+++ b/debian/jstest/run-tests
@@ -9,21 +9,21 @@ from PyQt6.QtWidgets import QApplication
class t1:
search_term = 'example'
- n_results = 85
- n_links = 85
- n_highlights = 101
+ n_results = 93
+ n_links = 93
+ n_highlights = 109
class t2:
search_term = 'examples'
- n_results = 76
- n_links = 76
- n_highlights = 17
+ n_results = 84
+ n_links = 84
+ n_highlights = 22
class t3:
search_term = 'graph'
n_results = 33
n_links = 33
- n_highlights = 124
+ n_highlights = 125
if __name__ == '__main__':
if not os.getenv('DISPLAY'):
diff --git a/debian/patches/docutils_manpage_macros.diff b/debian/patches/docutils_manpage_macros.diff
index 4bf22dc..b854af4 100644
--- a/debian/patches/docutils_manpage_macros.diff
+++ b/debian/patches/docutils_manpage_macros.diff
@@ -4,15 +4,15 @@ Subject: Make test_build_manpage pass with docutils 0.19+dfsg-7
I backported the change from upstream 0.21 to our 0.19 and 0.20 packaging.
---
- tests/test_build_manpage.py | 2 +-
+ tests/test_builders/test_build_manpage.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/tests/test_build_manpage.py b/tests/test_build_manpage.py
-index e765644..2fc2014 100644
---- a/tests/test_build_manpage.py
-+++ b/tests/test_build_manpage.py
+diff --git a/tests/test_builders/test_build_manpage.py b/tests/test_builders/test_build_manpage.py
+index 7172281..735f597 100644
+--- a/tests/test_builders/test_build_manpage.py
++++ b/tests/test_builders/test_build_manpage.py
@@ -52,7 +52,7 @@ def test_captioned_code_block(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.1').read_text(encoding='utf8')
- if docutils.__version_info__[:2] < (0, 21):
diff --git a/debian/patches/intersphinx_local.diff b/debian/patches/intersphinx_local.diff
index 1eff330..8f63354 100644
--- a/debian/patches/intersphinx_local.diff
+++ b/debian/patches/intersphinx_local.diff
@@ -10,10 +10,10 @@ during build.
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/doc/conf.py b/doc/conf.py
-index 416158f..a262354 100644
+index 437b08f..8b21457 100644
--- a/doc/conf.py
+++ b/doc/conf.py
-@@ -117,9 +117,8 @@ texinfo_documents = [
+@@ -159,9 +159,8 @@ texinfo_documents = [
]
intersphinx_mapping = {
@@ -26,10 +26,10 @@ index 416158f..a262354 100644
# Sphinx document translation with sphinx gettext feature uses these settings:
diff --git a/doc/tutorial/deploying.rst b/doc/tutorial/deploying.rst
-index e16abdf..1c4e3c6 100644
+index 6b7913f..f5fd24e 100644
--- a/doc/tutorial/deploying.rst
+++ b/doc/tutorial/deploying.rst
-@@ -160,13 +160,16 @@ Read the Docs
+@@ -155,13 +155,16 @@ Read the Docs
~~~~~~~~~~~~~
`Read the Docs`_ offers integration with both GitHub and GitLab. The quickest
diff --git a/debian/patches/move_sphinxcontrib_to_extras_require.diff b/debian/patches/move_sphinxcontrib_to_extras_require.diff
index 9fa47ea..8e73096 100644
--- a/debian/patches/move_sphinxcontrib_to_extras_require.diff
+++ b/debian/patches/move_sphinxcontrib_to_extras_require.diff
@@ -7,10 +7,10 @@ Subject: Move sphinxcontrib modules to extras_require
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
-index 0a9bc9e..6383e31 100644
+index 8aa49aa..5dbb696 100644
--- a/pyproject.toml
+++ b/pyproject.toml
-@@ -55,12 +55,6 @@ classifiers = [
+@@ -56,12 +56,6 @@ classifiers = [
"Topic :: Utilities",
]
dependencies = [
@@ -22,10 +22,10 @@ index 0a9bc9e..6383e31 100644
- "sphinxcontrib-qthelp",
"Jinja2>=3.0",
"Pygments>=2.14",
- "docutils>=0.18.1,<0.21",
-@@ -96,6 +90,14 @@ test = [
+ "docutils>=0.18.1,<0.22",
+@@ -98,6 +92,14 @@ test = [
+ "cython>=3.0",
"setuptools>=67.0", # for Cython compilation
- "filelock",
]
+sphinxcontrib = [
+ "sphinxcontrib-applehelp",
diff --git a/debian/patches/python_3.11.7.diff b/debian/patches/python_3.11.7.diff
deleted file mode 100644
index 02ed97f..0000000
--- a/debian/patches/python_3.11.7.diff
+++ /dev/null
@@ -1,77 +0,0 @@
-From: Hugo van Kemenade <hugovk@users.noreply.github.com>
-Date: Mon, 11 Dec 2023 12:01:55 +0200
-Subject: Fix autodoc tests for Python 3.11.7+
-
-Origin: https://github.com/sphinx-doc/sphinx/pull/11793
----
- tests/test_ext_autodoc_configs.py | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/tests/test_ext_autodoc_configs.py b/tests/test_ext_autodoc_configs.py
-index 45bc729..2e8f40c 100644
---- a/tests/test_ext_autodoc_configs.py
-+++ b/tests/test_ext_autodoc_configs.py
-@@ -1584,6 +1584,14 @@ def test_autodoc_typehints_format_fully_qualified_for_newtype_alias(app):
-
- @pytest.mark.sphinx('html', testroot='ext-autodoc')
- def test_autodoc_default_options(app):
-+ if (
-+ (3, 11, 7) <= sys.version_info < (3, 12)
-+ or sys.version_info >= (3, 12, 1)
-+ ):
-+ list_of_weak_references = " list of weak references to the object"
-+ else:
-+ list_of_weak_references = " list of weak references to the object (if defined)"
-+
- # no settings
- actual = do_autodoc(app, 'class', 'target.enums.EnumCls')
- assert ' .. py:attribute:: EnumCls.val1' not in actual
-@@ -1627,7 +1635,7 @@ def test_autodoc_default_options(app):
- assert ' Iterate squares of each value.' in actual
- if not IS_PYPY:
- assert ' .. py:attribute:: CustomIter.__weakref__' in actual
-- assert ' list of weak references to the object (if defined)' in actual
-+ assert list_of_weak_references in actual
-
- # :exclude-members: None - has no effect. Unlike :members:,
- # :special-members:, etc. where None == "include all", here None means
-@@ -1651,13 +1659,21 @@ def test_autodoc_default_options(app):
- assert ' Iterate squares of each value.' in actual
- if not IS_PYPY:
- assert ' .. py:attribute:: CustomIter.__weakref__' in actual
-- assert ' list of weak references to the object (if defined)' in actual
-+ assert list_of_weak_references in actual
- assert ' .. py:method:: CustomIter.snafucate()' in actual
- assert ' Makes this snafucated.' in actual
-
-
- @pytest.mark.sphinx('html', testroot='ext-autodoc')
- def test_autodoc_default_options_with_values(app):
-+ if (
-+ (3, 11, 7) <= sys.version_info < (3, 12)
-+ or sys.version_info >= (3, 12, 1)
-+ ):
-+ list_of_weak_references = " list of weak references to the object"
-+ else:
-+ list_of_weak_references = " list of weak references to the object (if defined)"
-+
- # with :members:
- app.config.autodoc_default_options = {'members': 'val1,val2'}
- actual = do_autodoc(app, 'class', 'target.enums.EnumCls')
-@@ -1698,7 +1714,7 @@ def test_autodoc_default_options_with_values(app):
- assert ' Iterate squares of each value.' in actual
- if not IS_PYPY:
- assert ' .. py:attribute:: CustomIter.__weakref__' not in actual
-- assert ' list of weak references to the object (if defined)' not in actual
-+ assert list_of_weak_references not in actual
-
- # with :exclude-members:
- app.config.autodoc_default_options = {
-@@ -1722,6 +1738,6 @@ def test_autodoc_default_options_with_values(app):
- assert ' Iterate squares of each value.' in actual
- if not IS_PYPY:
- assert ' .. py:attribute:: CustomIter.__weakref__' not in actual
-- assert ' list of weak references to the object (if defined)' not in actual
-+ assert list_of_weak_references not in actual
- assert ' .. py:method:: CustomIter.snafucate()' not in actual
- assert ' Makes this snafucated.' not in actual
diff --git a/debian/patches/python_3.12.4.diff b/debian/patches/python_3.12.4.diff
new file mode 100644
index 0000000..9e7d09a
--- /dev/null
+++ b/debian/patches/python_3.12.4.diff
@@ -0,0 +1,33 @@
+From: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
+Date: Tue, 23 Apr 2024 20:25:34 +0200
+Subject: Fix `sphinx.util.inspect_evaluate_forwardref` for Python 3.12.4
+ (#12317)
+
+Python has recently [1] changed the signature of `_evaluate` for forward references
+because of type parameters. The change affects 3.13, and was backported to 3.12.4.
+
+[1]: https://github.com/python/cpython/pull/118104
+
+(cherry picked from commit b5f3ef987ab5c2147d651ad84cc7d72c84ac6acc)
+---
+ sphinx/util/inspect.py | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
+index 6b13b29..dfb4e40 100644
+--- a/sphinx/util/inspect.py
++++ b/sphinx/util/inspect.py
+@@ -681,6 +681,13 @@ def _evaluate_forwardref(
+ localns: dict[str, Any] | None,
+ ) -> Any:
+ """Evaluate a forward reference."""
++ if sys.version_info >= (3, 12, 4):
++ # ``type_params`` were added in 3.13 and the signature of _evaluate()
++ # is not backward-compatible (it was backported to 3.12.4, so anything
++ # before 3.12.4 still has the old signature).
++ #
++ # See: https://github.com/python/cpython/pull/118104.
++ return ref._evaluate(globalns, localns, {}, recursive_guard=frozenset()) # type: ignore[arg-type, misc]
+ return ref._evaluate(globalns, localns, frozenset())
+
+
diff --git a/debian/patches/remove_contrib_references.diff b/debian/patches/remove_contrib_references.diff
index 8510649..ce28b5b 100644
--- a/debian/patches/remove_contrib_references.diff
+++ b/debian/patches/remove_contrib_references.diff
@@ -10,10 +10,10 @@ dependency loops anyway.
2 files changed, 25 deletions(-)
diff --git a/doc/usage/builders/index.rst b/doc/usage/builders/index.rst
-index ce2c5dc..01172a7 100644
+index 9c538ee..21763c1 100644
--- a/doc/usage/builders/index.rst
+++ b/doc/usage/builders/index.rst
-@@ -68,12 +68,6 @@ The builder's "name" must be given to the **-b** command-line option of
+@@ -121,12 +121,6 @@ The most common builders are:
also generates HTML Help support files that allow the Microsoft HTML Help
Workshop to compile them into a CHM file.
@@ -26,7 +26,7 @@ index ce2c5dc..01172a7 100644
.. module:: sphinxcontrib.qthelp
.. class:: QtHelpBuilder
-@@ -85,12 +79,6 @@ The builder's "name" must be given to the **-b** command-line option of
+@@ -138,12 +132,6 @@ The most common builders are:
Moved to sphinxcontrib.qthelp from sphinx.builders package.
@@ -39,7 +39,7 @@ index ce2c5dc..01172a7 100644
.. _Qt help: https://doc.qt.io/qt-4.8/qthelp-framework.html
.. module:: sphinxcontrib.applehelp
-@@ -111,12 +99,6 @@ The builder's "name" must be given to the **-b** command-line option of
+@@ -164,12 +152,6 @@ The most common builders are:
output will not be valid until :program:`hiutil` has been run on all of the
``.lproj`` folders within the bundle.
@@ -52,7 +52,7 @@ index ce2c5dc..01172a7 100644
.. versionadded:: 1.3
.. versionchanged:: 2.0
-@@ -130,12 +112,6 @@ The builder's "name" must be given to the **-b** command-line option of
+@@ -183,12 +165,6 @@ The most common builders are:
also generates `GNOME Devhelp <https://wiki.gnome.org/Apps/Devhelp>`__
support file that allows the GNOME Devhelp reader to view them.
@@ -66,7 +66,7 @@ index ce2c5dc..01172a7 100644
Moved to sphinxcontrib.devhelp from sphinx.builders package.
diff --git a/sphinx/application.py b/sphinx/application.py
-index 73c157d..ebb47ca 100644
+index 7d16d9a..3791738 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -116,7 +116,6 @@ _first_party_themes = (
diff --git a/debian/patches/series b/debian/patches/series
index fe0e669..951abc3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
-skip_tests_network.diff
no_external_css.diff
remove_contrib_references.diff
skip_tests_jsmath.diff
@@ -6,6 +5,5 @@ use_packaged_mathjax.diff
skip_tests_serializinghtml.diff
move_sphinxcontrib_to_extras_require.diff
intersphinx_local.diff
-support_old_search_indexes.diff
docutils_manpage_macros.diff
-python_3.11.7.diff
+python_3.12.4.diff
diff --git a/debian/patches/skip_tests_jsmath.diff b/debian/patches/skip_tests_jsmath.diff
index 32647a4..ad718e0 100644
--- a/debian/patches/skip_tests_jsmath.diff
+++ b/debian/patches/skip_tests_jsmath.diff
@@ -3,14 +3,14 @@ Date: Wed, 25 Dec 2019 23:37:50 +0300
Subject: Skip tests that require sphinxcontrib.jsmath module
---
- tests/test_build_html.py | 3 +++
+ tests/test_builders/test_build_html_maths.py | 3 +++
1 file changed, 3 insertions(+)
-diff --git a/tests/test_build_html.py b/tests/test_build_html.py
-index 07f101d..beef440 100644
---- a/tests/test_build_html.py
-+++ b/tests/test_build_html.py
-@@ -1544,6 +1544,7 @@ def test_html_math_renderer_is_imgmath(app, status, warning):
+diff --git a/tests/test_builders/test_build_html_maths.py b/tests/test_builders/test_build_html_maths.py
+index 900846b..3870093 100644
+--- a/tests/test_builders/test_build_html_maths.py
++++ b/tests/test_builders/test_build_html_maths.py
+@@ -20,6 +20,7 @@ def test_html_math_renderer_is_imgmath(app, status, warning):
assert app.builder.math_renderer_name == 'imgmath'
@@ -18,7 +18,7 @@ index 07f101d..beef440 100644
@pytest.mark.sphinx('html', testroot='basic',
confoverrides={'extensions': ['sphinxcontrib.jsmath',
'sphinx.ext.imgmath']})
-@@ -1564,6 +1565,7 @@ def test_html_math_renderer_is_duplicated2(app, status, warning):
+@@ -40,6 +41,7 @@ def test_html_math_renderer_is_duplicated2(app, status, warning):
assert app.builder.math_renderer_name == 'imgmath' # The another one is chosen
@@ -26,7 +26,7 @@ index 07f101d..beef440 100644
@pytest.mark.sphinx('html', testroot='basic',
confoverrides={'extensions': ['sphinxcontrib.jsmath',
'sphinx.ext.imgmath'],
-@@ -1572,6 +1574,7 @@ def test_html_math_renderer_is_chosen(app, status, warning):
+@@ -48,6 +50,7 @@ def test_html_math_renderer_is_chosen(app, status, warning):
assert app.builder.math_renderer_name == 'imgmath'
diff --git a/debian/patches/skip_tests_network.diff b/debian/patches/skip_tests_network.diff
deleted file mode 100644
index 60fe57c..0000000
--- a/debian/patches/skip_tests_network.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Dmitry Shachnev <mitya57@debian.org>
-Date: Tue, 20 Dec 2016 16:37:32 +0300
-Subject: Skip tests that require network access
-
-Forwarded: not-needed
----
- tests/test_build_latex.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py
-index f6c3369..5996203 100644
---- a/tests/test_build_latex.py
-+++ b/tests/test_build_latex.py
-@@ -1420,6 +1420,7 @@ def test_latex_raw_directive(app, status, warning):
- assert 'LaTeX: abc def ghi' in result
-
-
-+@pytest.mark.skip('Requires internet access')
- @pytest.mark.sphinx('latex', testroot='images')
- def test_latex_images(app, status, warning):
- app.builder.build_all()
diff --git a/debian/patches/skip_tests_serializinghtml.diff b/debian/patches/skip_tests_serializinghtml.diff
index b9401cc..22198db 100644
--- a/debian/patches/skip_tests_serializinghtml.diff
+++ b/debian/patches/skip_tests_serializinghtml.diff
@@ -3,13 +3,13 @@ Date: Thu, 6 Feb 2020 23:55:28 +0300
Subject: Skip tests that require sphinxcontrib.serializinghtml module
---
- tests/test_api_translator.py | 2 ++
+ tests/test_writers/test_api_translator.py | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/tests/test_api_translator.py b/tests/test_api_translator.py
-index 2185fb8..66aa17f 100644
---- a/tests/test_api_translator.py
-+++ b/tests/test_api_translator.py
+diff --git a/tests/test_writers/test_api_translator.py b/tests/test_writers/test_api_translator.py
+index 9f2bd44..1c8defb 100644
+--- a/tests/test_writers/test_api_translator.py
++++ b/tests/test_writers/test_api_translator.py
@@ -36,6 +36,7 @@ def test_singlehtml_set_translator_for_singlehtml(app, status, warning):
assert translator_class.__name__ == 'ConfSingleHTMLTranslator'
diff --git a/debian/patches/support_old_search_indexes.diff b/debian/patches/support_old_search_indexes.diff
deleted file mode 100644
index 450e5e8..0000000
--- a/debian/patches/support_old_search_indexes.diff
+++ /dev/null
@@ -1,48 +0,0 @@
-From: Dmitry Shachnev <mitya57@debian.org>
-Date: Sat, 11 Dec 2021 19:19:27 +0300
-Subject: Make searchtools.js support documentation built with old Sphinx
-
-Sphinx 4.3 has changed format of searchindex.js files, but in Debian
-there are lots of packages built with older Sphinx, and we want to
-keep them working for some time.
-
-Also support legacy custom search.html templates, which don't have
-data-content_root attribute on the top-level element.
-
-Forwarded: not-needed
----
- sphinx/themes/basic/static/searchtools.js | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/sphinx/themes/basic/static/searchtools.js b/sphinx/themes/basic/static/searchtools.js
-index 7918c3f..09d6458 100644
---- a/sphinx/themes/basic/static/searchtools.js
-+++ b/sphinx/themes/basic/static/searchtools.js
-@@ -62,7 +62,8 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
- const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX;
- const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX;
- const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY;
-- const contentRoot = document.documentElement.dataset.content_root;
-+ const contentRoot = document.documentElement.dataset.content_root
-+ ?? DOCUMENTATION_OPTIONS.URL_ROOT;
-
- const [docName, title, anchor, descr, score, _filename] = item;
-
-@@ -434,11 +435,14 @@ const Search = {
- filenames[match[0]],
- ]);
- };
-- Object.keys(objects).forEach((prefix) =>
-+ Object.keys(objects).forEach((prefix) => {
-+ if (!(objects[prefix] instanceof Array)) {
-+ objects[prefix] = Object.entries(objects[prefix]).map(([name, match]) => [...match, name]);
-+ }
- objects[prefix].forEach((array) =>
- objectSearchCallback(prefix, array)
-- )
-- );
-+ );
-+ });
- return results;
- },
-
diff --git a/debian/patches/use_packaged_mathjax.diff b/debian/patches/use_packaged_mathjax.diff
index 28405ca..e9694da 100644
--- a/debian/patches/use_packaged_mathjax.diff
+++ b/debian/patches/use_packaged_mathjax.diff
@@ -7,10 +7,10 @@ Subject: Use packaged MathJax (for our own documentation)
1 file changed, 1 insertion(+)
diff --git a/doc/conf.py b/doc/conf.py
-index d4915aa..416158f 100644
+index 49fcba4..437b08f 100644
--- a/doc/conf.py
+++ b/doc/conf.py
-@@ -185,6 +185,7 @@ nitpick_ignore = {
+@@ -230,6 +230,7 @@ nitpick_ignore = {
('std:confval', 'globaltoc_maxdepth'),
}
diff --git a/debian/python3-sphinx.preinst b/debian/python3-sphinx.preinst
deleted file mode 100644
index b4b7bd6..0000000
--- a/debian/python3-sphinx.preinst
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ "$1" = upgrade ] && dpkg --compare-versions "$2" lt 2.4.3-3~
-then
- for exe in /usr/share/sphinx/scripts/python3/*
- do
- update-alternatives --remove ${exe##*/} $exe
- done
-fi
-
-#DEBHELPER#
diff --git a/debian/rules b/debian/rules
index 0a40e5d..237612d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,7 +5,7 @@ export NO_PKG_MANGLE=1
export LC_ALL=C.UTF-8
export PYTHONWARNINGS=d
-export PYBUILD_TEST_ARGS=--verbose --ignore tests/test_api_translator.py
+export PYBUILD_TEST_ARGS=--verbose --ignore tests/test_writers/test_api_translator.py
locales = $(notdir $(patsubst %/LC_MESSAGES,%,$(wildcard sphinx/locale/*/LC_MESSAGES)))
@@ -22,7 +22,7 @@ override_dh_auto_build:
ifeq "$(filter nodoc,$(DEB_BUILD_OPTIONS))" ""
PYTHONPATH=$(py3_builddir) python3 ./sphinx/cmd/build.py -T doc build/html/
find build/html/ -name '*.txt' -or -name '*.html' | xargs -L1 sed -i \
- 's!http://docutils.sourceforge.net/docs/!file:///usr/share/doc/docutils-doc/docs/!g'
+ 's!https://docutils.sourceforge.io/docs/!file:///usr/share/doc/docutils-doc/docs/!g'
PYTHONPATH=$(py3_builddir) python3 ./sphinx/cmd/build.py -T -b man doc build/man
endif
PYTHONPATH=$(py3_builddir) python3 ./utils/babel_runner.py compile
@@ -64,7 +64,7 @@ override_dh_auto_install:
done
override_dh_installchangelogs:
- dh_installchangelogs CHANGES
+ dh_installchangelogs CHANGES.rst
override_dh_installdocs:
dh_installdocs
diff --git a/debian/sphinx-doc.docs b/debian/sphinx-doc.docs
index 79c4f46..f815fbb 100644
--- a/debian/sphinx-doc.docs
+++ b/debian/sphinx-doc.docs
@@ -1,3 +1,3 @@
-AUTHORS
+AUTHORS.rst
README.rst
build/html
diff --git a/debian/tests/control b/debian/tests/control
index 3e6c688..1a501fb 100644
--- a/debian/tests/control
+++ b/debian/tests/control
@@ -1,19 +1,19 @@
Tests: python3-sphinx
-Depends: dvipng,
+Depends: cython3,
+ dvipng,
+ dvisvgm,
fonts-freefont-otf,
+ gcc,
graphviz,
imagemagick-6.q16,
librsvg2-bin,
- python3-all,
+ python3-all-dev,
+ python3-defusedxml,
python3-filelock,
python3-html5lib,
python3-pytest,
python3-setuptools,
python3-sphinx,
- python3-sphinxcontrib.websupport,
- python3-sqlalchemy (>= 0.9),
- python3-whoosh,
- python3-xapian,
tex-gyre,
texinfo,
texlive-fonts-recommended,
diff --git a/doc/_static/tutorial/lumache-autosummary.png b/doc/_static/tutorial/lumache-autosummary.png
index ed54ea3..f3d98a5 100644
--- a/doc/_static/tutorial/lumache-autosummary.png
+++ b/doc/_static/tutorial/lumache-autosummary.png
Binary files differ
diff --git a/doc/_static/tutorial/lumache-first-light.png b/doc/_static/tutorial/lumache-first-light.png
index fbf4aec..9a604cd 100644
--- a/doc/_static/tutorial/lumache-first-light.png
+++ b/doc/_static/tutorial/lumache-first-light.png
Binary files differ
diff --git a/doc/_static/tutorial/lumache-furo.png b/doc/_static/tutorial/lumache-furo.png
index c7aaee7..e3a1367 100644
--- a/doc/_static/tutorial/lumache-furo.png
+++ b/doc/_static/tutorial/lumache-furo.png
Binary files differ
diff --git a/doc/_static/tutorial/lumache-py-function-full.png b/doc/_static/tutorial/lumache-py-function-full.png
index d13b637..9991b52 100644
--- a/doc/_static/tutorial/lumache-py-function-full.png
+++ b/doc/_static/tutorial/lumache-py-function-full.png
Binary files differ
diff --git a/doc/_static/tutorial/lumache-py-function.png b/doc/_static/tutorial/lumache-py-function.png
index 06129d5..bf18d85 100644
--- a/doc/_static/tutorial/lumache-py-function.png
+++ b/doc/_static/tutorial/lumache-py-function.png
Binary files differ
diff --git a/doc/_themes/sphinx13/layout.html b/doc/_themes/sphinx13/layout.html
index 86a7943..aae163a 100644
--- a/doc/_themes/sphinx13/layout.html
+++ b/doc/_themes/sphinx13/layout.html
@@ -3,16 +3,17 @@
{% block extrahead %}
{{ super() }}
-{%- if not embedded and pagename == 'index' %}
+{%- if not embedded and pagename == root_doc %}
<style>.related { display: none; }</style>
{%- endif %}
{% endblock %}
{% block header %}
<div class="pageheader">
-<a href="{{ pathto('index') }}">
- <img src="{{ pathto('_static/sphinxheader.png', 1) }}" alt="SPHINX" />
-</a>
+ <a href="{{ pathto(root_doc)|e }}">
+ <img src="{{ pathto('_static/sphinx-logo.svg', resource=True) }}" alt="logo" />
+ </a>
+ <h1>Sphinx</h1>
</div>
{% endblock %}
@@ -20,7 +21,7 @@
<div class="related" role="navigation" aria-label="related navigation">
<h3>{{ _('Navigation') }}</h3>
<ul>
- <li><a href="{{ pathto('index') }}">Documentation</a> &raquo;</li>
+ <li><a href="{{ pathto(root_doc)|e }}">Documentation</a> &raquo;</li>
{%- for parent in parents %}
<li class="nav-item nav-item-{{ loop.index }}"><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a>{{ reldelim1 }}</li>
{%- endfor %}
diff --git a/doc/_themes/sphinx13/static/sphinx-logo.svg b/doc/_themes/sphinx13/static/sphinx-logo.svg
new file mode 100644
index 0000000..b2b83c7
--- /dev/null
+++ b/doc/_themes/sphinx13/static/sphinx-logo.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 7">
+<path d="M8.12 3.27c.45-.32 1.06-.46 1.78-.73l-.31-.7c-1.28.23-2.43-.53-3.68-.7C4 .75 2.24 1.9.36 2.04v.76c1.87.41 3.64 1.26 5.6 1.02-1.21 1.21-2.84 2.64-4.69 2.07C.63 5.77.35 4.87.96 4.6c.27 1.04 1.57.3 1-.52C1.57 3.6.54 3.82.24 4.3c-.87 1.65.84 2.56 2.31 2.32 1.86-.25 3.29-1.71 4.53-3.02-.02.61.18 1.96-.41 2.5l.01.9c.43-.34.8-1.07.92-1.56.16-.63.04-1.02.1-1.53.05-.23.1-.41.42-.64zM1.9 2.39c.77-.23 1.58-.58 2.39-.66-.42 1.38 1.81 1.54 1.56 0 .64.16 1 .3 1.94.7-2.06 1.02-4.05.56-5.89-.04z"/>
+<path d="M.36 1.81v-.8c.23 0 .84-.18 1.44-.35C2.8.36 4.05 0 4.95 0c1 0 2.05.34 2.82.58l.91.25c.62.07.98-.08.98-.08l.34.73c-.06.02-.56.24-1.41.15-.27-.03-.62-.14-1.06-.29C6.77 1.1 5.82.8 4.95.8c-.79 0-1.97.35-2.92.63-.74.21-1.32.38-1.67.38z"/>
+</svg>
diff --git a/doc/_themes/sphinx13/static/sphinx13.css b/doc/_themes/sphinx13/static/sphinx13.css
index 674d211..3234a37 100644
--- a/doc/_themes/sphinx13/static/sphinx13.css
+++ b/doc/_themes/sphinx13/static/sphinx13.css
@@ -2,7 +2,7 @@
/* Set master colours */
:root {
- --fonts-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
+ --fonts-sans-serif: system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--colour-sphinx-blue: #0A507A;
--colour-text: #333;
--colour-links-light: #057;
@@ -15,8 +15,29 @@ body {
}
.pageheader {
+ display: flex;
+ column-gap: 1em;
+ align-items: center;
+ width: 100%;
background-color: var(--colour-sphinx-blue);
- padding: 10px 15px;
+ padding: 10px 20px;
+}
+
+.pageheader a {
+ width: 5%;
+}
+
+.pageheader img {
+ filter: invert(1) drop-shadow(1px 1px 2px black);
+}
+
+.pageheader h1{
+ color: white;
+ margin: 0;
+ font-weight: 600;
+ font-size: 3.5rem;
+ line-height: 1;
+ font-variant: small-caps;
}
div.document {
diff --git a/doc/_themes/sphinx13/static/sphinxheader.png b/doc/_themes/sphinx13/static/sphinxheader.png
deleted file mode 100644
index 845da4a..0000000
--- a/doc/_themes/sphinx13/static/sphinxheader.png
+++ /dev/null
Binary files differ
diff --git a/doc/_themes/sphinx13/theme.conf b/doc/_themes/sphinx13/theme.conf
deleted file mode 100644
index 78bb78f..0000000
--- a/doc/_themes/sphinx13/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-pygments_style = default
-sidebars =
diff --git a/doc/_themes/sphinx13/theme.toml b/doc/_themes/sphinx13/theme.toml
new file mode 100644
index 0000000..ba4fb2b
--- /dev/null
+++ b/doc/_themes/sphinx13/theme.toml
@@ -0,0 +1,4 @@
+[theme]
+inherit = "basic"
+pygments_style = { default = "default" }
+sidebars = []
diff --git a/doc/authors.rst b/doc/authors.rst
index 411835b..015420d 100644
--- a/doc/authors.rst
+++ b/doc/authors.rst
@@ -6,4 +6,4 @@
Sphinx authors
==============
-.. include:: ../AUTHORS
+.. include:: ../AUTHORS.rst
diff --git a/doc/changes.rst b/doc/changes.rst
index 96853fe..ac9b346 100644
--- a/doc/changes.rst
+++ b/doc/changes.rst
@@ -1,7 +1,5 @@
:tocdepth: 1
-.. default-role:: any
-
.. _changes:
=========
@@ -19,4 +17,4 @@ Changelog
\makeatother
-.. include:: ../CHANGES
+.. include:: ../CHANGES.rst
diff --git a/doc/conf.py b/doc/conf.py
index d4915aa..49fcba4 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -8,11 +8,17 @@ import sphinx
os.environ['SPHINX_AUTODOC_RELOAD_MODULES'] = '1'
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo',
- 'sphinx.ext.autosummary', 'sphinx.ext.extlinks',
- 'sphinx.ext.intersphinx',
- 'sphinx.ext.viewcode', 'sphinx.ext.inheritance_diagram',
- 'sphinx.ext.coverage']
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.doctest',
+ 'sphinx.ext.todo',
+ 'sphinx.ext.autosummary',
+ 'sphinx.ext.extlinks',
+ 'sphinx.ext.intersphinx',
+ 'sphinx.ext.viewcode',
+ 'sphinx.ext.inheritance_diagram',
+ 'sphinx.ext.coverage',
+]
coverage_statistics_to_report = coverage_statistics_to_stdout = True
templates_path = ['_templates']
exclude_patterns = ['_build']
@@ -22,6 +28,8 @@ copyright = f'2007-{time.strftime("%Y")}, the Sphinx developers'
version = sphinx.__display_version__
release = version
show_authors = True
+nitpicky = True
+show_warning_types = True
html_theme = 'sphinx13'
html_theme_path = ['_themes']
@@ -47,73 +55,107 @@ epub_uid = 'web-site'
epub_scheme = 'url'
epub_identifier = epub_publisher
epub_pre_files = [('index.xhtml', 'Welcome')]
-epub_post_files = [('usage/installation.xhtml', 'Installing Sphinx'),
- ('develop.xhtml', 'Sphinx development')]
-epub_exclude_files = ['_static/opensearch.xml', '_static/doctools.js',
- '_static/searchtools.js',
- '_static/sphinx_highlight.js',
- '_static/basic.css',
- '_static/language_data.js',
- 'search.html', '_static/websupport.js']
+epub_post_files = [
+ ('usage/installation.xhtml', 'Installing Sphinx'),
+ ('develop.xhtml', 'Sphinx development'),
+]
+epub_exclude_files = [
+ '_static/opensearch.xml',
+ '_static/doctools.js',
+ '_static/searchtools.js',
+ '_static/sphinx_highlight.js',
+ '_static/basic.css',
+ '_static/language_data.js',
+ 'search.html',
+ '_static/websupport.js',
+]
epub_fix_images = False
epub_max_image_width = 0
epub_show_urls = 'inline'
epub_use_index = False
epub_description = 'Sphinx documentation generator system manual'
-latex_documents = [('index', 'sphinx.tex', 'Sphinx Documentation',
- 'the Sphinx developers', 'manual', 1)]
+latex_documents = [
+ ('index', 'sphinx.tex', 'Sphinx Documentation', 'the Sphinx developers', 'manual', 1)
+]
latex_logo = '_static/sphinx.png'
latex_elements = {
'fontenc': r'\usepackage[LGR,X2,T1]{fontenc}',
- 'passoptionstopackages': r'''
+ 'passoptionstopackages': r"""
\PassOptionsToPackage{svgnames}{xcolor}
-''',
- 'preamble': r'''
+""",
+ 'preamble': r"""
\DeclareUnicodeCharacter{229E}{\ensuremath{\boxplus}}
\setcounter{tocdepth}{3}% depth of what main TOC shows (3=subsubsection)
\setcounter{secnumdepth}{1}% depth of section numbering
\setlength{\tymin}{2cm}% avoid too cramped table columns
-''',
+""",
# fix missing index entry due to RTD doing only once pdflatex after makeindex
- 'printindex': r'''
+ 'printindex': r"""
\IfFileExists{\jobname.ind}
{\footnotesize\raggedright\printindex}
{\begin{sphinxtheindex}\end{sphinxtheindex}}
-''',
+""",
}
latex_show_urls = 'footnote'
latex_use_xindy = True
linkcheck_timeout = 5
+linkcheck_ignore = [
+ r'^contents\.html$', # extra generated page
+ r'^\.\./contents\.html$',
+ re.escape('https://gitlab.com/projects/new'), # requires sign-in
+ re.escape('https://web.libera.chat/?channel=#sphinx-doc'),
+]
+linkcheck_anchors_ignore_for_url = [
+ # anchors in Markdown files cannot be accessed directly
+ 'https://github.com/Khan/style-guides/blob/master/style/python.md',
+]
autodoc_member_order = 'groupwise'
autosummary_generate = False
todo_include_todos = True
-extlinks = {'duref': ('https://docutils.sourceforge.io/docs/ref/rst/'
- 'restructuredtext.html#%s', '%s'),
- 'durole': ('https://docutils.sourceforge.io/docs/ref/rst/'
- 'roles.html#%s', '%s'),
- 'dudir': ('https://docutils.sourceforge.io/docs/ref/rst/'
- 'directives.html#%s', '%s')}
+extlinks = {
+ 'dupage': ('https://docutils.sourceforge.io/docs/ref/rst/' '%s.html', '%s'),
+ 'duref': (
+ 'https://docutils.sourceforge.io/docs/ref/rst/' 'restructuredtext.html#%s',
+ '%s',
+ ),
+ 'durole': ('https://docutils.sourceforge.io/docs/ref/rst/' 'roles.html#%s', '%s'),
+ 'dudir': ('https://docutils.sourceforge.io/docs/ref/rst/' 'directives.html#%s', '%s'),
+}
man_pages = [
- ('index', 'sphinx-all', 'Sphinx documentation generator system manual',
- 'the Sphinx developers', 1),
- ('man/sphinx-build', 'sphinx-build', 'Sphinx documentation generator tool',
- '', 1),
- ('man/sphinx-quickstart', 'sphinx-quickstart', 'Sphinx documentation '
- 'template generator', '', 1),
- ('man/sphinx-apidoc', 'sphinx-apidoc', 'Sphinx API doc generator tool',
- '', 1),
- ('man/sphinx-autogen', 'sphinx-autogen', 'Generate autodoc stub pages',
- '', 1),
+ (
+ 'index',
+ 'sphinx-all',
+ 'Sphinx documentation generator system manual',
+ 'the Sphinx developers',
+ 1,
+ ),
+ ('man/sphinx-build', 'sphinx-build', 'Sphinx documentation generator tool', '', 1),
+ (
+ 'man/sphinx-quickstart',
+ 'sphinx-quickstart',
+ 'Sphinx documentation ' 'template generator',
+ '',
+ 1,
+ ),
+ ('man/sphinx-apidoc', 'sphinx-apidoc', 'Sphinx API doc generator tool', '', 1),
+ ('man/sphinx-autogen', 'sphinx-autogen', 'Generate autodoc stub pages', '', 1),
]
texinfo_documents = [
- ('index', 'sphinx', 'Sphinx Documentation', 'the Sphinx developers',
- 'Sphinx', 'The Sphinx documentation builder.', 'Documentation tools',
- 1),
+ (
+ 'index',
+ 'sphinx',
+ 'Sphinx Documentation',
+ 'the Sphinx developers',
+ 'Sphinx',
+ 'The Sphinx documentation builder.',
+ 'Documentation tools',
+ 1,
+ ),
]
intersphinx_mapping = {
@@ -127,7 +169,10 @@ locale_dirs = ['locale/']
gettext_compact = False
nitpick_ignore = {
- ('cpp:class', 'template<typename TOuter> template<typename TInner> Wrapper::Outer<TOuter>::Inner'), # NoQA: E501
+ (
+ 'cpp:class',
+ 'template<typename TOuter> template<typename TInner> Wrapper::Outer<TOuter>::Inner',
+ ), # NoQA: E501
('cpp:identifier', 'MyContainer'),
('js:func', 'SomeError'),
('js:func', 'number'),
@@ -188,7 +233,7 @@ nitpick_ignore = {
# -- Extension interface -------------------------------------------------------
-from sphinx import addnodes # noqa: E402
+from sphinx import addnodes # NoQA: E402
event_sig_re = re.compile(r'([a-zA-Z-]+)\s*\((.*)\)')
@@ -209,16 +254,15 @@ def parse_event(env, sig, signode):
def linkify_issues_in_changelog(app, docname, source):
- """ Linkify issue references like #123 in changelog to GitHub. """
-
+ """Linkify issue references like #123 in changelog to GitHub."""
if docname == 'changes':
- changelog_path = os.path.join(os.path.dirname(__file__), "../CHANGES")
+ changelog_path = os.path.join(os.path.dirname(__file__), '../CHANGES.rst')
# this path trickery is needed because this script can
# be invoked with different working directories:
# * running make in docs/
# * running tox -e docs in the repo root dir
- with open(changelog_path, encoding="utf-8") as f:
+ with open(changelog_path, encoding='utf-8') as f:
changelog = f.read()
def linkify(match):
@@ -227,18 +271,22 @@ def linkify_issues_in_changelog(app, docname, source):
linkified_changelog = re.sub(r'(?:PR)?#([0-9]+)\b', linkify, changelog)
- source[0] = source[0].replace('.. include:: ../CHANGES', linkified_changelog)
+ source[0] = source[0].replace('.. include:: ../CHANGES.rst', linkified_changelog)
def setup(app):
from sphinx.ext.autodoc import cut_lines
from sphinx.util.docfields import GroupedField
+
app.connect('autodoc-process-docstring', cut_lines(4, what=['module']))
app.connect('source-read', linkify_issues_in_changelog)
- app.add_object_type('confval', 'confval',
- objname='configuration value',
- indextemplate='pair: %s; configuration value')
- fdesc = GroupedField('parameter', label='Parameters',
- names=['param'], can_collapse=True)
- app.add_object_type('event', 'event', 'pair: %s; event', parse_event,
- doc_field_types=[fdesc])
+ app.add_object_type(
+ 'confval',
+ 'confval',
+ objname='configuration value',
+ indextemplate='pair: %s; configuration value',
+ )
+ fdesc = GroupedField('parameter', label='Parameters', names=['param'], can_collapse=True)
+ app.add_object_type(
+ 'event', 'event', 'pair: %s; event', parse_event, doc_field_types=[fdesc]
+ )
diff --git a/doc/development/builders.rst b/doc/development/builders.rst
index bb67770..7792fbd 100644
--- a/doc/development/builders.rst
+++ b/doc/development/builders.rst
@@ -10,25 +10,19 @@ Discover builders by entry point
that they do not have to be listed in the :confval:`extensions` configuration
value.
-Builder extensions should define an entry point in the ``sphinx.builders``
+Builder extensions should define an entry point in the ``"sphinx.builders"``
group. The name of the entry point needs to match your builder's
:attr:`~.Builder.name` attribute, which is the name passed to the
:option:`sphinx-build -b` option. The entry point value should equal the
dotted name of the extension module. Here is an example of how an entry point
-for 'mybuilder' can be defined in the extension's ``setup.py``
+for 'mybuilder' can be defined in the extension's ``pyproject.toml``
-.. code-block:: python
+.. code-block:: toml
- setup(
- # ...
- entry_points={
- 'sphinx.builders': [
- 'mybuilder = my.extension.module',
- ],
- }
- )
+ [project.entry-points."sphinx.builders"]
+ mybuilder = "my.extension.module"
Note that it is still necessary to register the builder using
:meth:`~.Sphinx.add_builder` in the extension's :func:`setup` function.
-.. _entry points: https://setuptools.readthedocs.io/en/latest/setuptools.html#dynamic-discovery-of-services-and-plugins
+.. _entry points: https://setuptools.pypa.io/en/latest/userguide/entry_point.html
diff --git a/doc/development/templating.rst b/doc/development/templating.rst
index 73ae6e5..016b8b8 100644
--- a/doc/development/templating.rst
+++ b/doc/development/templating.rst
@@ -30,6 +30,7 @@ No. You have several other options:
produces pickle files with the page contents, and postprocess them using a
custom tool, or use them in your Web application.
+.. _templating-primer:
Jinja/Sphinx Templating Primer
------------------------------
@@ -108,7 +109,7 @@ The following blocks exist in the ``layout.html`` template:
parent documents on the left, and the links to index, modules etc. on the
right). ``relbar1`` appears before the document, ``relbar2`` after the
document. By default, both blocks are filled; to show the relbar only
- before the document, you would override `relbar2` like this::
+ before the document, you would override ``relbar2`` like this::
{% block relbar2 %}{% endblock %}
@@ -422,7 +423,7 @@ are in HTML form), these variables are also available:
.. data:: next
The next document for the navigation. This variable is either false or has
- two attributes `link` and `title`. The title contains HTML markup. For
+ two attributes ``link`` and ``title``. The title contains HTML markup. For
example, to generate a link to the next page, you can use this snippet::
{% if next %}
diff --git a/doc/development/theming.rst b/doc/development/theming.rst
index 538dcaf..13a5802 100644
--- a/doc/development/theming.rst
+++ b/doc/development/theming.rst
@@ -30,11 +30,85 @@ Creating themes
Themes take the form of either a directory or a zipfile (whose name is the
theme name), containing the following:
-* A :file:`theme.conf` file.
+* Either a :file:`theme.toml` file (preferred) or a :file:`theme.conf` file.
* HTML templates, if needed.
* A ``static/`` directory containing any static files that will be copied to the
output static directory on build. These can be images, styles, script files.
+Theme configuration (``theme.toml``)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The :file:`theme.toml` file is a TOML_ document,
+containing two tables: ``[theme]`` and ``[options]``.
+
+The ``[theme]`` table defines the theme's settings:
+
+* **inherit** (string): The name of the base theme from which to inherit
+ settings, options, templates, and static files.
+ All static files from theme 'ancestors' will be used.
+ The theme will use all options defined in inherited themes.
+ Finally, inherited themes will be used to locate missing templates
+ (for example, if ``"basic"`` is used as the base theme, most templates will
+ already be defined).
+
+ If set to ``"none"``, the theme will not inherit from any other theme.
+ Inheritance is recursive, forming a chain of inherited themes
+ (e.g. ``default`` -> ``classic`` -> ``basic`` -> ``none``).
+
+* **stylesheets** (list of strings): A list of CSS filenames which will be
+ included in generated HTML header.
+ Setting the :confval:`html_style` config value will override this setting.
+
+ Other mechanisms for including multiple stylesheets include ``@import`` in CSS
+ or using a custom HTML template with appropriate ``<link rel="stylesheet">`` tags.
+
+* **sidebars** (list of strings): A list of sidebar templates.
+ This can be overridden by the user via the :confval:`html_sidebars` config value.
+
+* **pygments_style** (table): A TOML table defining the names of Pygments styles
+ to use for highlighting syntax.
+ The table has two recognised keys: ``default`` and ``dark``.
+ The style defined in the ``dark`` key will be used when
+ the CSS media query ``(prefers-color-scheme: dark)`` evaluates to true.
+
+ ``[theme.pygments_style.default]`` can be overridden by the user via the
+ :confval:`pygments_style` config value.
+
+The ``[options]`` table defines the options for the theme.
+It is structured such that each key-value pair corresponds to a variable name
+and the corresponding default value.
+These options can be overridden by the user in :confval:`html_theme_options`
+and are accessible from all templates as ``theme_<name>``.
+
+.. versionadded:: 7.3
+ ``theme.toml`` support.
+
+.. _TOML: https://toml.io/en/
+
+Exemplar :file:`theme.toml` file:
+
+.. code-block:: toml
+
+ [theme]
+ inherit = "basic"
+ stylesheets = [
+ "main-CSS-stylesheet.css",
+ ]
+ sidebars = [
+ "localtoc.html",
+ "relations.html",
+ "sourcelink.html",
+ "searchbox.html",
+ ]
+ # Style names from https://pygments.org/styles/
+ pygments_style = { default = "style_name", dark = "dark_style" }
+
+ [options]
+ variable = "default value"
+
+Theme configuration (``theme.conf``)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
The :file:`theme.conf` file is in INI format [1]_ (readable by the standard
Python :mod:`configparser` module) and has the following structure:
@@ -86,6 +160,24 @@ Python :mod:`configparser` module) and has the following structure:
The stylesheet setting accepts multiple CSS filenames
+Convert ``theme.conf`` to ``theme.toml``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+INI-style theme configuration files (``theme.conf``) can be converted to TOML
+via a helper programme distributed with Sphinx.
+This is intended for one-time use, and may be removed without notice in a future
+version of Sphinx.
+
+.. code-block:: console
+
+ $ python -m sphinx.theming conf_to_toml [THEME DIRECTORY PATH]
+
+The required argument is a path to a directory containing a ``theme.conf`` file.
+The programme will write a ``theme.toml`` file in the same directory,
+and will not modify the original ``theme.conf`` file.
+
+.. versionadded:: 7.3
+
.. _distribute-your-theme:
Distribute your theme as a Python package
@@ -95,21 +187,20 @@ As a way to distribute your theme, you can use a Python package. This makes it
easier for users to set up your theme.
To distribute your theme as a Python package, please define an entry point
-called ``sphinx.html_themes`` in your ``setup.py`` file, and write a ``setup()``
-function to register your themes using ``add_html_theme()`` API in it::
-
- # 'setup.py'
- setup(
- ...
- entry_points = {
- 'sphinx.html_themes': [
- 'name_of_theme = your_package',
- ]
- },
- ...
- )
-
- # 'your_package.py'
+called ``sphinx.html_themes`` in your ``pyproject.toml`` file,
+and write a ``setup()`` function to register your theme
+using the :meth:`~sphinx.application.Sphinx.add_html_theme` API:
+
+.. code-block:: toml
+
+ # pyproject.toml
+
+ [project.entry-points."sphinx.html_themes"]
+ name_of_theme = "your_theme_package"
+
+.. code-block:: python
+
+ # your_theme_package.py
from os import path
def setup(app):
@@ -142,7 +233,7 @@ searches for templates:
When extending a template in the base theme with the same name, use the theme
name as an explicit directory: ``{% extends "basic/layout.html" %}``. From a
user ``templates_path`` template, you can still use the "exclamation mark"
-syntax as described in the templating document.
+syntax as :ref:`described in the templating document <templating-primer>`.
.. _theming-static-templates:
diff --git a/doc/development/tutorials/examples/autodoc_intenum.py b/doc/development/tutorials/examples/autodoc_intenum.py
index 75fa204..c52bb4c 100644
--- a/doc/development/tutorials/examples/autodoc_intenum.py
+++ b/doc/development/tutorials/examples/autodoc_intenum.py
@@ -19,9 +19,9 @@ class IntEnumDocumenter(ClassDocumenter):
option_spec['hex'] = bool_option
@classmethod
- def can_document_member(cls,
- member: Any, membername: str,
- isattr: bool, parent: Any) -> bool:
+ def can_document_member(
+ cls, member: Any, membername: str, isattr: bool, parent: Any
+ ) -> bool:
try:
return issubclass(member, IntEnum)
except TypeError:
@@ -31,11 +31,11 @@ class IntEnumDocumenter(ClassDocumenter):
super().add_directive_header(sig)
self.add_line(' :final:', self.get_sourcename())
- def add_content(self,
- more_content: StringList | None,
- no_docstring: bool = False,
- ) -> None:
-
+ def add_content(
+ self,
+ more_content: StringList | None,
+ no_docstring: bool = False,
+ ) -> None:
super().add_content(more_content, no_docstring)
source_name = self.get_sourcename()
@@ -48,8 +48,7 @@ class IntEnumDocumenter(ClassDocumenter):
if use_hex:
the_member_value = hex(the_member_value)
- self.add_line(
- f"**{the_member_name}**: {the_member_value}", source_name)
+ self.add_line(f'**{the_member_name}**: {the_member_value}', source_name)
self.add_line('', source_name)
diff --git a/doc/development/tutorials/examples/helloworld.py b/doc/development/tutorials/examples/helloworld.py
index d6d81fd..da29562 100644
--- a/doc/development/tutorials/examples/helloworld.py
+++ b/doc/development/tutorials/examples/helloworld.py
@@ -1,16 +1,18 @@
from docutils import nodes
from docutils.parsers.rst import Directive
+from sphinx.application import Sphinx
+from sphinx.util.typing import ExtensionMetadata
-class HelloWorld(Directive):
+class HelloWorld(Directive):
def run(self):
paragraph_node = nodes.paragraph(text='Hello World!')
return [paragraph_node]
-def setup(app):
- app.add_directive("helloworld", HelloWorld)
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.add_directive('helloworld', HelloWorld)
return {
'version': '0.1',
diff --git a/doc/development/tutorials/examples/recipe.py b/doc/development/tutorials/examples/recipe.py
index c7ebf2a..28d25f2 100644
--- a/doc/development/tutorials/examples/recipe.py
+++ b/doc/development/tutorials/examples/recipe.py
@@ -3,10 +3,12 @@ from collections import defaultdict
from docutils.parsers.rst import directives
from sphinx import addnodes
+from sphinx.application import Sphinx
from sphinx.directives import ObjectDescription
from sphinx.domains import Domain, Index
from sphinx.roles import XRefRole
from sphinx.util.nodes import make_refnode
+from sphinx.util.typing import ExtensionMetadata
class RecipeDirective(ObjectDescription):
@@ -25,8 +27,7 @@ class RecipeDirective(ObjectDescription):
def add_target_and_index(self, name_cls, sig, signode):
signode['ids'].append('recipe' + '-' + sig)
if 'contains' in self.options:
- ingredients = [
- x.strip() for x in self.options.get('contains').split(',')]
+ ingredients = [x.strip() for x in self.options.get('contains').split(',')]
recipes = self.env.get_domain('recipe')
recipes.add_recipe(sig, ingredients)
@@ -42,9 +43,10 @@ class IngredientIndex(Index):
def generate(self, docnames=None):
content = defaultdict(list)
- recipes = {name: (dispname, typ, docname, anchor)
- for name, dispname, typ, docname, anchor, _
- in self.domain.get_objects()}
+ recipes = {
+ name: (dispname, typ, docname, anchor)
+ for name, dispname, typ, docname, anchor, _ in self.domain.get_objects()
+ }
recipe_ingredients = self.domain.data['recipe_ingredients']
ingredient_recipes = defaultdict(list)
@@ -60,8 +62,7 @@ class IngredientIndex(Index):
for ingredient, recipe_names in ingredient_recipes.items():
for recipe_name in recipe_names:
dispname, typ, docname, anchor = recipes[recipe_name]
- content[ingredient].append(
- (dispname, 0, docname, anchor, docname, '', typ))
+ content[ingredient].append((dispname, 0, docname, anchor, docname, '', typ))
# convert the dict to the sorted list of tuples expected
content = sorted(content.items())
@@ -88,8 +89,15 @@ class RecipeIndex(Index):
#
# name, subtype, docname, anchor, extra, qualifier, description
for _name, dispname, typ, docname, anchor, _priority in recipes:
- content[dispname[0].lower()].append(
- (dispname, 0, docname, anchor, docname, '', typ))
+ content[dispname[0].lower()].append((
+ dispname,
+ 0,
+ docname,
+ anchor,
+ docname,
+ '',
+ typ,
+ ))
# convert the dict to the sorted list of tuples expected
content = sorted(content.items())
@@ -98,7 +106,6 @@ class RecipeIndex(Index):
class RecipeDomain(Domain):
-
name = 'recipe'
label = 'Recipe Sample'
roles = {
@@ -122,18 +129,18 @@ class RecipeDomain(Domain):
def get_objects(self):
yield from self.data['recipes']
- def resolve_xref(self, env, fromdocname, builder, typ, target, node,
- contnode):
- match = [(docname, anchor)
- for name, sig, typ, docname, anchor, prio
- in self.get_objects() if sig == target]
+ def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
+ match = [
+ (docname, anchor)
+ for name, sig, typ, docname, anchor, prio in self.get_objects()
+ if sig == target
+ ]
if len(match) > 0:
todocname = match[0][0]
targ = match[0][1]
- return make_refnode(builder, fromdocname, todocname, targ,
- contnode, targ)
+ return make_refnode(builder, fromdocname, todocname, targ, contnode, targ)
else:
print('Awww, found nothing')
return None
@@ -145,11 +152,10 @@ class RecipeDomain(Domain):
self.data['recipe_ingredients'][name] = ingredients
# name, dispname, type, docname, anchor, priority
- self.data['recipes'].append(
- (name, signature, 'Recipe', self.env.docname, anchor, 0))
+ self.data['recipes'].append((name, signature, 'Recipe', self.env.docname, anchor, 0))
-def setup(app):
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(RecipeDomain)
return {
diff --git a/doc/development/tutorials/examples/todo.py b/doc/development/tutorials/examples/todo.py
index 15368f4..2baac5c 100644
--- a/doc/development/tutorials/examples/todo.py
+++ b/doc/development/tutorials/examples/todo.py
@@ -1,8 +1,10 @@
from docutils import nodes
from docutils.parsers.rst import Directive
+from sphinx.application import Sphinx
from sphinx.locale import _
from sphinx.util.docutils import SphinxDirective
+from sphinx.util.typing import ExtensionMetadata
class todo(nodes.Admonition, nodes.Element):
@@ -22,13 +24,11 @@ def depart_todo_node(self, node):
class TodolistDirective(Directive):
-
def run(self):
return [todolist('')]
class TodoDirective(SphinxDirective):
-
# this enables content in the directive
has_content = True
@@ -57,8 +57,7 @@ def purge_todos(app, env, docname):
if not hasattr(env, 'todo_all_todos'):
return
- env.todo_all_todos = [todo for todo in env.todo_all_todos
- if todo['docname'] != docname]
+ env.todo_all_todos = [todo for todo in env.todo_all_todos if todo['docname'] != docname]
def merge_todos(app, env, docnames, other):
@@ -90,37 +89,40 @@ def process_todo_nodes(app, doctree, fromdocname):
for todo_info in env.todo_all_todos:
para = nodes.paragraph()
filename = env.doc2path(todo_info['docname'], base=None)
- description = (
- _('(The original entry is located in %s, line %d and can be found ') %
- (filename, todo_info['lineno']))
+ description = _(
+ '(The original entry is located in %s, line %d and can be found '
+ ) % (filename, todo_info['lineno'])
para += nodes.Text(description)
# Create a reference
newnode = nodes.reference('', '')
innernode = nodes.emphasis(_('here'), _('here'))
newnode['refdocname'] = todo_info['docname']
- newnode['refuri'] = app.builder.get_relative_uri(
- fromdocname, todo_info['docname'])
+ newnode['refuri'] = app.builder.get_relative_uri(fromdocname, todo_info['docname'])
newnode['refuri'] += '#' + todo_info['target']['refid']
newnode.append(innernode)
para += newnode
para += nodes.Text('.)')
# Insert into the todolist
- content.append(todo_info['todo'])
- content.append(para)
+ content.extend((
+ todo_info['todo'],
+ para,
+ ))
node.replace_self(content)
-def setup(app):
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_config_value('todo_include_todos', False, 'html')
app.add_node(todolist)
- app.add_node(todo,
- html=(visit_todo_node, depart_todo_node),
- latex=(visit_todo_node, depart_todo_node),
- text=(visit_todo_node, depart_todo_node))
+ app.add_node(
+ todo,
+ html=(visit_todo_node, depart_todo_node),
+ latex=(visit_todo_node, depart_todo_node),
+ text=(visit_todo_node, depart_todo_node),
+ )
app.add_directive('todo', TodoDirective)
app.add_directive('todolist', TodolistDirective)
diff --git a/doc/development/tutorials/recipe.rst b/doc/development/tutorials/recipe.rst
index 1ed428a..683cc8c 100644
--- a/doc/development/tutorials/recipe.rst
+++ b/doc/development/tutorials/recipe.rst
@@ -179,9 +179,9 @@ hook the various parts of our extension into Sphinx. Let's look at the
This looks a little different to what we're used to seeing. There are no calls
to :meth:`~Sphinx.add_directive` or even :meth:`~Sphinx.add_role`. Instead, we
have a single call to :meth:`~Sphinx.add_domain` followed by some
-initialization of the :ref:`standard domain <domains-std>`. This is because we
-had already registered our directives, roles and indexes as part of the
-directive itself.
+initialization of the :doc:`standard domain </usage/domains/standard>`.
+This is because we had already registered our directives,
+roles and indexes as part of the directive itself.
Using the extension
diff --git a/doc/examples.rst b/doc/examples.rst
index c28364a..492752a 100644
--- a/doc/examples.rst
+++ b/doc/examples.rst
@@ -2,4 +2,4 @@
.. _examples:
-.. include:: ../EXAMPLES
+.. include:: ../EXAMPLES.rst
diff --git a/doc/extdev/appapi.rst b/doc/extdev/appapi.rst
index 270000b..10d030b 100644
--- a/doc/extdev/appapi.rst
+++ b/doc/extdev/appapi.rst
@@ -443,6 +443,9 @@ The Config object
.. autoclass:: Config
+.. py:class:: ENUM
+ :no-typesetting:
+
.. _template-bridge:
diff --git a/doc/extdev/deprecated.rst b/doc/extdev/deprecated.rst
index f90389c..1476ce8 100644
--- a/doc/extdev/deprecated.rst
+++ b/doc/extdev/deprecated.rst
@@ -22,6 +22,20 @@ The following is a list of deprecated interfaces.
- Removed
- Alternatives
+ * - ``sphinx.testing.util.strip_escseq``
+ - 7.3
+ - 9.0
+ - ``sphinx.util.console.strip_colors``
+
+ * - Old-style Makefiles in ``sphinx-quickstart``
+ and the :option:`!-M`, :option:`!-m`, :option:`!--no-use-make-mode`,
+ and :option:`!--use-make-mode` options
+ - 7.3
+ - 9.0
+ - Vendoring the `old style Makefile templates`__
+
+ __ https://github.com/sphinx-doc/sphinx/blob/v7.0.0/sphinx/templates/quickstart/Makefile_t
+
* - ``sphinx.ext.autodoc.preserve_defaults.get_function_def()``
- 7.2
- 9.0
diff --git a/doc/extdev/i18n.rst b/doc/extdev/i18n.rst
index 6b32b8b..c5ffc84 100644
--- a/doc/extdev/i18n.rst
+++ b/doc/extdev/i18n.rst
@@ -18,8 +18,8 @@ i18n API
.. _ext-i18n:
-Extension internationalization (`i18n`) and localization (`l10n`) using i18n API
---------------------------------------------------------------------------------
+Extension internationalization (``i18n``) and localization (``l10n``) using i18n API
+------------------------------------------------------------------------------------
.. versionadded:: 1.8
diff --git a/doc/extdev/nodes.rst b/doc/extdev/nodes.rst
index 7603763..f17c28e 100644
--- a/doc/extdev/nodes.rst
+++ b/doc/extdev/nodes.rst
@@ -44,7 +44,7 @@ to ``docutils.nodes.inline`` by :py:class:`!SigElementFallbackTransform`.
Extensions may create additional ``desc_sig_*``-like nodes but in order for
:py:class:`!SigElementFallbackTransform` to translate them to inline nodes
automatically, they must be added to :py:data:`SIG_ELEMENTS` via the class
-keyword argument `_sig_element=True` of :py:class:`desc_sig_element`, e.g.:
+keyword argument ``_sig_element=True`` of :py:class:`desc_sig_element`, e.g.:
.. code-block:: python
diff --git a/doc/extdev/utils.rst b/doc/extdev/utils.rst
index e842f30..ff8dc4e 100644
--- a/doc/extdev/utils.rst
+++ b/doc/extdev/utils.rst
@@ -35,3 +35,9 @@ Utility components
.. autoclass:: sphinx.events.EventManager
:members:
+
+Utility types
+-------------
+
+.. autoclass:: sphinx.util.typing.ExtensionMetadata
+ :members:
diff --git a/doc/faq.rst b/doc/faq.rst
index 85ccb24..8538cdc 100644
--- a/doc/faq.rst
+++ b/doc/faq.rst
@@ -107,7 +107,7 @@ Google Analytics
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ?
- 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ 'https://ssl' : 'https://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
diff --git a/doc/glossary.rst b/doc/glossary.rst
index e58ce6b..85e0057 100644
--- a/doc/glossary.rst
+++ b/doc/glossary.rst
@@ -59,7 +59,7 @@ Glossary
means that extensions that support the documentation of whole new
languages are much easier to write.
- For more information, refer to :doc:`/usage/restructuredtext/domains`.
+ For more information, refer to :doc:`/usage/domains/index`.
environment
A structure where information about all documents under the root is saved,
diff --git a/doc/index.rst b/doc/index.rst
index e9aea1c..6dfdb6d 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -21,7 +21,7 @@ Here are some of Sphinx's major features:
<builtin-extensions>`, and much more functionality via :ref:`third-party
extensions <third-party-extensions>`.
* **Themes:** modify the look and feel of outputs via :doc:`creating themes
- <development/theming>`, and re-use many :ref:`third-party themes
+ <development/theming>`, and reuse many :ref:`third-party themes
<third-party-themes>`.
* **Contributed extensions:** dozens of extensions :ref:`contributed by users
<third-party-extensions>`; most of them installable from PyPI.
diff --git a/doc/internals/code-of-conduct.rst b/doc/internals/code-of-conduct.rst
index 8e31ef0..c7e2e34 100644
--- a/doc/internals/code-of-conduct.rst
+++ b/doc/internals/code-of-conduct.rst
@@ -2,4 +2,4 @@
.. _code_of_conduct:
-.. include:: ../../CODE_OF_CONDUCT
+.. include:: ../../CODE_OF_CONDUCT.rst
diff --git a/doc/internals/contributing.rst b/doc/internals/contributing.rst
index 195f6a5..207374e 100644
--- a/doc/internals/contributing.rst
+++ b/doc/internals/contributing.rst
@@ -114,7 +114,7 @@ These are the basic steps needed to start developing on Sphinx.
Write your code along with tests that shows that the bug was fixed or that
the feature works as expected.
-#. Add a bullet point to :file:`CHANGES` if the fix or feature is not trivial
+#. Add a bullet point to :file:`CHANGES.rst` if the fix or feature is not trivial
(small doc updates, typo fixes), then commit::
git commit -m '#42: Add useful new feature that does this.'
@@ -142,7 +142,7 @@ Please follow these guidelines when writing code for Sphinx:
* Try to use the same code style as used in the rest of the project.
-* For non-trivial changes, please update the :file:`CHANGES` file. If your
+* For non-trivial changes, please update the :file:`CHANGES.rst` file. If your
changes alter existing behavior, please document this.
* New features should be documented. Include examples and use cases where
@@ -197,6 +197,14 @@ To run JavaScript tests, use ``npm``::
npm install
npm run test
+.. tip::
+
+ ``karma`` requires a Firefox binary to use as a test browser.
+
+ For Unix-based systems, you can specify the path to the Firefox binary using::
+
+ FIREFOX_BIN="/Applications/Firefox.app/Contents/MacOS/firefox" npm test
+
New unit tests should be included in the ``tests`` directory where
necessary:
diff --git a/doc/internals/organization.rst b/doc/internals/organization.rst
index 9dec923..8ca1446 100644
--- a/doc/internals/organization.rst
+++ b/doc/internals/organization.rst
@@ -24,7 +24,7 @@ The following are some general guidelines for core developers:
in a good working state and that all tests pass before pushing your changes.
* When committing code written by someone else, please attribute the original
- author in the commit message and any relevant :file:`CHANGES` entry.
+ author in the commit message and any relevant :file:`CHANGES.rst` entry.
Membership
~~~~~~~~~~
diff --git a/doc/internals/release-process.rst b/doc/internals/release-process.rst
index 50648cd..5d14c44 100644
--- a/doc/internals/release-process.rst
+++ b/doc/internals/release-process.rst
@@ -117,9 +117,11 @@ Date Python
05 Apr 2024 3.10+
----------- ------
04 Apr 2025 3.11+
+----------- ------
+24 Apr 2026 3.12+
=========== ======
Release procedures
------------------
-The release procedures are listed in ``utils/release-checklist``.
+The release procedures are listed in :file:`utils/release-checklist.rst`.
diff --git a/doc/latex.rst b/doc/latex.rst
index 4c9a4e0..0101b24 100644
--- a/doc/latex.rst
+++ b/doc/latex.rst
@@ -377,7 +377,7 @@ Keys that don't need to be overridden unless in special cases are:
.. versionchanged:: 2.0
``'lualatex'`` executes
``\defaultfontfeatures[\rmfamily,\sffamily]{}`` to disable TeX
- ligatures transforming `<<` and `>>` as escaping working with
+ ligatures transforming ``<<`` and ``>>`` as escaping working with
``pdflatex/xelatex`` failed with ``lualatex``.
.. versionchanged:: 2.0
@@ -484,7 +484,7 @@ Keys that don't need to be overridden unless in special cases are:
.. versionchanged:: 1.8.3
Original ``\maketitle`` from document class is not overwritten,
- hence is re-usable as part of some custom setting for this key.
+ hence is reusable as part of some custom setting for this key.
.. versionadded:: 1.8.3
``\sphinxbackoftitlepage`` optional macro. It can also be defined
diff --git a/doc/man/sphinx-build.rst b/doc/man/sphinx-build.rst
index a1fb9be..8be2780 100644
--- a/doc/man/sphinx-build.rst
+++ b/doc/man/sphinx-build.rst
@@ -20,7 +20,7 @@ files, including ``conf.py``.
format is selected by specifying the builder name on the command line; it
defaults to HTML. Builders can also perform other tasks related to
documentation processing. For a list of available builders, refer to
-:option:`sphinx-build -b`.
+:doc:`/usage/builders/index`.
By default, everything that is outdated is built. Output only for selected
files can be built by specifying individual filenames.
@@ -30,107 +30,87 @@ Options
.. program:: sphinx-build
-.. option:: -b buildername
-
- The most important option: it selects a builder. The most common builders
- are:
-
- **html**
- Build HTML pages. This is the default builder.
-
- **dirhtml**
- Build HTML pages, but with a single directory per document. Makes for
- prettier URLs (no ``.html``) if served from a webserver.
-
- **singlehtml**
- Build a single HTML with the whole content.
-
- **htmlhelp**, **qthelp**, **devhelp**, **epub**
- Build HTML files with additional information for building a documentation
- collection in one of these formats.
-
- **applehelp**
- Build an Apple Help Book. Requires :program:`hiutil` and
- :program:`codesign`, which are not Open Source and presently only
- available on Mac OS X 10.6 and higher.
-
- **latex**
- Build LaTeX sources that can be compiled to a PDF document using
- :program:`pdflatex`.
-
- **man**
- Build manual pages in groff format for UNIX systems.
-
- **texinfo**
- Build Texinfo files that can be processed into Info files using
- :program:`makeinfo`.
-
- **text**
- Build plain text files.
-
- **gettext**
- Build gettext-style message catalogs (``.pot`` files).
-
- **doctest**
- Run all doctests in the documentation, if the :mod:`~sphinx.ext.doctest`
- extension is enabled.
-
- **linkcheck**
- Check the integrity of all external links.
+.. _make_mode:
- **xml**
- Build Docutils-native XML files.
+.. option:: -M buildername
- **pseudoxml**
- Build compact pretty-printed "pseudo-XML" files displaying the
- internal structure of the intermediate document trees.
+ Select a builder, using the *make-mode*.
+ See :doc:`/usage/builders/index` for a list of all of Sphinx's built-in builders.
+ Extensions can add their own builders.
- See :doc:`/usage/builders/index` for a list of all builders shipped with
- Sphinx. Extensions can add their own builders.
+ .. important::
+ Sphinx only recognizes the ``-M`` option if it is used first, along with
+ the source and output directories, before any other options are passed.
+ For example::
-.. _make_mode:
+ sphinx-build -M html ./source ./build -W --keep-going
-.. option:: -M buildername
+ The *make-mode* provides the same build functionality as
+ a default :ref:`Makefile or Make.bat <makefile_options>`,
+ and provides the following additional build pipelines:
- Alternative to :option:`-b`. Uses the Sphinx :program:`make_mode` module,
- which provides the same build functionality as a default :ref:`Makefile or
- Make.bat <makefile_options>`. In addition to all Sphinx
- :doc:`/usage/builders/index`, the following build pipelines are available:
-
- **latexpdf**
+ *latexpdf*
Build LaTeX files and run them through :program:`pdflatex`, or as per
:confval:`latex_engine` setting.
If :confval:`language` is set to ``'ja'``, will use automatically
the :program:`platex/dvipdfmx` latex to PDF pipeline.
- **info**
+ *info*
Build Texinfo files and run them through :program:`makeinfo`.
- .. important::
- Sphinx only recognizes the ``-M`` option if it is placed first.
+ .. note::
+
+ The default output directory locations when using *make-mode*
+ differ from the defaults when using :option:`-b`.
+
+ * doctrees are saved to ``<outputdir>/doctrees``
+ * output files are saved to ``<outputdir>/<builder name>``
.. versionadded:: 1.2.1
-.. option:: -a
+.. option:: -b buildername, --builder buildername
+
+ Selects a builder.
+
+ See :doc:`/usage/builders/index` for a list of all of Sphinx's built-in builders.
+ Extensions can add their own builders.
+
+ .. versionchanged:: 7.3
+ Add ``--builder`` long option.
+
+.. option:: -a, --write-all
If given, always write all output files. The default is to only write output
files for new and changed source files. (This may not apply to all
builders.)
-.. option:: -E
+ .. note:: This option does not re-read source files.
+ To read and re-process every file,
+ use :option:`--fresh-env` instead.
+
+ .. versionchanged:: 7.3
+ Add ``--write-all`` long option.
+
+.. option:: -E, --fresh-env
Don't use a saved :term:`environment` (the structure caching all
cross-references), but rebuild it completely. The default is to only read
and parse source files that are new or have changed since the last run.
-.. option:: -t tag
+ .. versionchanged:: 7.3
+ Add ``--fresh-env`` long option.
+
+.. option:: -t tag, --tag tag
Define the tag *tag*. This is relevant for :rst:dir:`only` directives that
only include their content if this tag is set.
.. versionadded:: 0.6
-.. option:: -d path
+ .. versionchanged:: 7.3
+ Add ``--tag`` long option.
+
+.. option:: -d path, --doctree-dir path
Since Sphinx has to read and parse all source files before it can write an
output file, the parsed source files are cached as "doctree pickles".
@@ -138,6 +118,9 @@ Options
the build directory; with this option you can select a different cache
directory (the doctrees can be shared between all builders).
+ .. versionchanged:: 7.3
+ Add ``--doctree-dir`` long option.
+
.. option:: -j N, --jobs N
Distribute the build over *N* processes in parallel, to make building on
@@ -154,7 +137,7 @@ Options
.. versionchanged:: 6.2
Add ``--jobs`` long option.
-.. option:: -c path
+.. option:: -c path, --config-dir path
Don't look for the :file:`conf.py` in the source directory, but use the given
configuration directory instead. Note that various other files and paths
@@ -164,13 +147,19 @@ Options
.. versionadded:: 0.3
-.. option:: -C
+ .. versionchanged:: 7.3
+ Add ``--config-dir`` long option.
- Don't look for a configuration file; only take options via the ``-D`` option.
+.. option:: -C, --isolated
+
+ Don't look for a configuration file; only take options via the :option:`--define` option.
.. versionadded:: 0.5
-.. option:: -D setting=value
+ .. versionchanged:: 7.3
+ Add ``--isolated`` long option.
+
+.. option:: -D setting=value, --define setting=value
Override a configuration value set in the :file:`conf.py` file. The value
must be a number, string, list or dictionary value.
@@ -189,18 +178,27 @@ Options
.. versionchanged:: 1.3
The value can now also be a list value.
-.. option:: -A name=value
+ .. versionchanged:: 7.3
+ Add ``--define`` long option.
+
+.. option:: -A name=value, --html-define name=value
Make the *name* assigned to *value* in the HTML templates.
.. versionadded:: 0.5
-.. option:: -n
+ .. versionchanged:: 7.3
+ Add ``--html-define`` long option.
+
+.. option:: -n, --nitpicky
Run in nit-picky mode. Currently, this generates warnings for all missing
references. See the config value :confval:`nitpick_ignore` for a way to
exclude some references as "known missing".
+ .. versionchanged:: 7.3
+ Add ``--nitpicky`` long option.
+
.. option:: -N, --no-color
Do not emit colored output.
@@ -214,32 +212,51 @@ Options
.. versionadded:: 1.6
-.. option:: -v
+.. option:: -v, --verbose
- Increase verbosity (loglevel). This option can be given up to three times
+ Increase verbosity (log-level). This option can be given up to three times
to get more debug logging output. It implies :option:`-T`.
.. versionadded:: 1.2
-.. option:: -q
+ .. versionchanged:: 7.3
+ Add ``--verbose`` long option.
+
+.. option:: -q, --quiet
Do not output anything on standard output, only write warnings and errors to
standard error.
-.. option:: -Q
+ .. versionchanged:: 7.3
+ Add ``--quiet`` long option.
+
+.. option:: -Q, --silent
Do not output anything on standard output, also suppress warnings. Only
errors are written to standard error.
-.. option:: -w file
+ .. versionchanged:: 7.3
+ Add ``--silent`` long option.
+
+.. option:: -w file, --warning-file file
Write warnings (and errors) to the given file, in addition to standard error.
-.. option:: -W
+ .. versionchanged:: 7.3
+
+ ANSI control sequences are stripped when writing to *file*.
+
+ .. versionchanged:: 7.3
+ Add ``--warning-file`` long option.
+
+.. option:: -W, --fail-on-warning
Turn warnings into errors. This means that the build stops at the first
warning and ``sphinx-build`` exits with exit status 1.
+ .. versionchanged:: 7.3
+ Add ``--fail-on-warning`` long option.
+
.. option:: --keep-going
With -W option, keep going processing when getting warnings to the end
@@ -247,7 +264,7 @@ Options
.. versionadded:: 1.8
-.. option:: -T
+.. option:: -T, --show-traceback
Display the full traceback when an unhandled exception occurs. Otherwise,
only a summary is displayed and the traceback information is saved to a file
@@ -255,11 +272,17 @@ Options
.. versionadded:: 1.2
-.. option:: -P
+ .. versionchanged:: 7.3
+ Add ``--show-traceback`` long option.
+
+.. option:: -P, --pdb
(Useful for debugging only.) Run the Python debugger, :mod:`pdb`, if an
unhandled exception occurs while building.
+ .. versionchanged:: 7.3
+ Add ``--pdb`` long option.
+
.. option:: -h, --help, --version
Display usage summary or Sphinx version.
diff --git a/doc/man/sphinx-quickstart.rst b/doc/man/sphinx-quickstart.rst
index d050a29..cc6673d 100644
--- a/doc/man/sphinx-quickstart.rst
+++ b/doc/man/sphinx-quickstart.rst
@@ -130,6 +130,9 @@ Options
.. versionchanged:: 1.5
make-mode is default.
+ .. versionchanged:: 7.3
+ Support for disabling the make-mode will be removed in Sphinx 8.
+
.. option:: --makefile, --no-makefile
Create (or not create) makefile.
diff --git a/doc/support.rst b/doc/support.rst
index b7c6f01..0d349a0 100644
--- a/doc/support.rst
+++ b/doc/support.rst
@@ -12,7 +12,7 @@ mailing list on Google Groups, come to the ``#sphinx-doc`` channel on
Examples of other projects using Sphinx can be found in the :doc:`examples page
<examples>`. A useful tutorial_ has been written by the matplotlib developers.
-.. _tutorial: http://matplotlib.sourceforge.net/sampledoc/
+.. _tutorial: https://matplotlib.sourceforge.net/sampledoc/
There is a translation team in Transifex_ of this documentation, thanks to the
Sphinx document translators.
diff --git a/doc/tutorial/automatic-doc-generation.rst b/doc/tutorial/automatic-doc-generation.rst
index b47673d..8d9c9c9 100644
--- a/doc/tutorial/automatic-doc-generation.rst
+++ b/doc/tutorial/automatic-doc-generation.rst
@@ -160,6 +160,6 @@ originally used the corresponding ``autodoc`` directive, in this case in the
.. note::
The generated files are based on `Jinja2
- templates <https://jinja2docs.readthedocs.io/>`_ that
+ templates <https://jinja.palletsprojects.com/>`_ that
:ref:`can be customized <autosummary-customizing-templates>`,
but that is out of scope for this tutorial.
diff --git a/doc/tutorial/deploying.rst b/doc/tutorial/deploying.rst
index e16abdf..6b7913f 100644
--- a/doc/tutorial/deploying.rst
+++ b/doc/tutorial/deploying.rst
@@ -109,16 +109,11 @@ The quickest way to upload an existing project to GitHub is to:
sources, complicating your workflow.
These steps do not require access to the command line or installing any
-additional software. To learn more, you can:
+additional software. To learn more, read `this quickstart tutorial`_ or
+consult the `official GitHub documentation`_
-- Follow `this interactive GitHub course`_ to learn more about how the GitHub
- interface works.
-- Read `this quickstart tutorial`_ to install extra software on your machine
- and have more flexibility. You can either use the Git command line, or the
- GitHub Desktop application.
-
-.. _this interactive GitHub course: https://lab.github.com/githubtraining/introduction-to-github
.. _this quickstart tutorial: https://docs.github.com/en/get-started/quickstart
+.. _official GitHub documentation: https://docs.github.com/en/get-started
GitLab
~~~~~~
@@ -192,11 +187,11 @@ contents:
permissions:
contents: write
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Build HTML
uses: ammaraskar/sphinx-action@master
- name: Upload artifacts
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: html-docs
path: docs/build/html/
diff --git a/doc/tutorial/describing-code.rst b/doc/tutorial/describing-code.rst
index 24fea38..16feb2a 100644
--- a/doc/tutorial/describing-code.rst
+++ b/doc/tutorial/describing-code.rst
@@ -8,7 +8,7 @@ will describe code objects instead.
Sphinx supports documenting code objects in several languages, namely Python,
C, C++, JavaScript, and reStructuredText. Each of them can be documented using
a series of directives and roles grouped by
-:doc:`domain </usage/restructuredtext/domains>`. For the remainder of the
+:doc:`domain </usage/domains/index>`. For the remainder of the
tutorial you will use the Python domain, but all the concepts seen in this
section apply for the other domains as well.
@@ -21,9 +21,9 @@ Documenting Python objects
~~~~~~~~~~~~~~~~~~~~~~~~~~
Sphinx offers several roles and directives to document Python objects,
-all grouped together in :ref:`the Python domain <python-domain>`. For example,
-you can use the :rst:dir:`py:function` directive to document a Python function,
-as follows:
+all grouped together in :doc:`the Python domain </usage/domains/python>`.
+For example, you can use the :rst:dir:`py:function` directive to document
+a Python function, as follows:
.. code-block:: rst
:caption: docs/source/usage.rst
@@ -228,7 +228,7 @@ for easy examination. It is now time to fix the function:
def get_random_ingredients(kind=None):
return ["shells", "gorgonzola", "parsley"]
-And finally, ``make test`` reports success!
+And finally, ``make doctest`` reports success!
For big projects though, this manual approach can become a bit tedious.
In the next section, you will see :doc:`how to automate the
@@ -246,7 +246,7 @@ C, C++, JavaScript, and reStructuredText. Third-party extensions may
define domains for more languages, such as
- `Fortran <https://sphinx-fortran.readthedocs.io>`_,
-- `Julia <http://bastikr.github.io/sphinx-julia>`_, or
+- `Julia <https://bastikr.github.io/sphinx-julia>`_, or
- `PHP <https://github.com/markstory/sphinxcontrib-phpdomain>`_.
For example, to document a C++ type definition, you would use the built-in
diff --git a/doc/tutorial/getting-started.rst b/doc/tutorial/getting-started.rst
index 5cf0b38..678f08d 100644
--- a/doc/tutorial/getting-started.rst
+++ b/doc/tutorial/getting-started.rst
@@ -104,7 +104,7 @@ the documentation as HTML for the first time. To do that, run this command:
.. code-block:: console
- (.venv) $ sphinx-build -b html docs/source/ docs/build/html
+ (.venv) $ sphinx-build -M html docs/source/ docs/build/
And finally, open ``docs/build/html/index.html`` in your browser. You should see
something like this:
diff --git a/doc/usage/advanced/intl.rst b/doc/usage/advanced/intl.rst
index ae6e7dc..e858c3c 100644
--- a/doc/usage/advanced/intl.rst
+++ b/doc/usage/advanced/intl.rst
@@ -27,7 +27,7 @@ Sphinx uses these facilities to translate whole documents.
Initially project maintainers have to collect all translatable strings (also
referred to as *messages*) to make them known to translators. Sphinx extracts
-these through invocation of ``sphinx-build -b gettext``.
+these through invocation of ``sphinx-build -M gettext``.
Every single element in the doctree will end up in a single message which
results in lists being equally split into different chunks while large
diff --git a/doc/usage/advanced/websupport/quickstart.rst b/doc/usage/advanced/websupport/quickstart.rst
index 1cdd23f..e7c2b51 100644
--- a/doc/usage/advanced/websupport/quickstart.rst
+++ b/doc/usage/advanced/websupport/quickstart.rst
@@ -137,7 +137,7 @@ add this data to the ``COMMENT_OPTIONS`` that are used in the template.
This only works if your documentation is served from your
document root. If it is served from another directory, you will
- need to prefix the url route with that directory, and give the `docroot`
+ need to prefix the url route with that directory, and give the *docroot*
keyword argument when creating the web support object::
support = WebSupport(..., docroot='docs')
@@ -150,7 +150,7 @@ Performing Searches
To use the search form built-in to the Sphinx sidebar, create a function to
handle requests to the URL 'search' relative to the documentation root. The
-user's search query will be in the GET parameters, with the key `q`. Then use
+user's search query will be in the GET parameters, with the key ``q``. Then use
the :meth:`~sphinxcontrib.websupport.WebSupport.get_search_results` method to
retrieve search results. In `Flask <https://flask.palletsprojects.com/>`_ that
would be like this::
diff --git a/doc/usage/advanced/websupport/searchadapters.rst b/doc/usage/advanced/websupport/searchadapters.rst
index 262d666..ad7a11c 100644
--- a/doc/usage/advanced/websupport/searchadapters.rst
+++ b/doc/usage/advanced/websupport/searchadapters.rst
@@ -7,7 +7,7 @@ Search Adapters
To create a custom search adapter you will need to subclass the
:class:`BaseSearch` class. Then create an instance of the new class and pass
-that as the `search` keyword argument when you create the :class:`~.WebSupport`
+that as the *search* keyword argument when you create the :class:`~.WebSupport`
object::
support = WebSupport(srcdir=srcdir,
diff --git a/doc/usage/advanced/websupport/storagebackends.rst b/doc/usage/advanced/websupport/storagebackends.rst
index ccb00b6..c50edf8 100644
--- a/doc/usage/advanced/websupport/storagebackends.rst
+++ b/doc/usage/advanced/websupport/storagebackends.rst
@@ -7,7 +7,7 @@ Storage Backends
To create a custom storage backend you will need to subclass the
:class:`StorageBackend` class. Then create an instance of the new class and
-pass that as the `storage` keyword argument when you create the
+pass that as the *storage* keyword argument when you create the
:class:`~.WebSupport` object::
support = WebSupport(srcdir=srcdir,
diff --git a/doc/usage/builders/index.rst b/doc/usage/builders/index.rst
index ce2c5dc..9c538ee 100644
--- a/doc/usage/builders/index.rst
+++ b/doc/usage/builders/index.rst
@@ -10,9 +10,62 @@ Builders
These are the built-in Sphinx builders. More builders can be added by
:doc:`extensions </usage/extensions/index>`.
-The builder's "name" must be given to the **-b** command-line option of
+The builder's "name" must be given to the **-M** or **-b** command-line options of
:program:`sphinx-build` to select a builder.
+The most common builders are:
+
+**html**
+ Build HTML pages. This is the default builder.
+
+**dirhtml**
+ Build HTML pages, but with a single directory per document. Makes for
+ prettier URLs (no ``.html``) if served from a webserver.
+
+**singlehtml**
+ Build a single HTML with the whole content.
+
+**htmlhelp**, **qthelp**, **devhelp**, **epub**
+ Build HTML files with additional information for building a documentation
+ collection in one of these formats.
+
+**applehelp**
+ Build an Apple Help Book. Requires :program:`hiutil` and
+ :program:`codesign`, which are not Open Source and presently only
+ available on Mac OS X 10.6 and higher.
+
+**latex**
+ Build LaTeX sources that can be compiled to a PDF document using
+ :program:`pdflatex`.
+
+**man**
+ Build manual pages in groff format for UNIX systems.
+
+**texinfo**
+ Build Texinfo files that can be processed into Info files using
+ :program:`makeinfo`.
+
+**text**
+ Build plain text files.
+
+**gettext**
+ Build gettext-style message catalogs (``.pot`` files).
+
+**doctest**
+ Run all doctests in the documentation, if the :mod:`~sphinx.ext.doctest`
+ extension is enabled.
+
+**linkcheck**
+ Check the integrity of all external links.
+
+**xml**
+ Build Docutils-native XML files.
+
+**pseudoxml**
+ Build compact pretty-printed "pseudo-XML" files displaying the
+ internal structure of the intermediate document trees.
+
+--------------
.. module:: sphinx.builders.html
.. class:: StandaloneHTMLBuilder
@@ -146,7 +199,7 @@ The builder's "name" must be given to the **-b** command-line option of
This builder produces the same output as the standalone HTML builder, but
also generates an *epub* file for ebook readers. See :ref:`epub-faq` for
details about it. For definition of the epub format, have a look at
- `<http://idpf.org/epub>`_ or `<https://en.wikipedia.org/wiki/EPUB>`_.
+ `<https://idpf.org/epub>`_ or `<https://en.wikipedia.org/wiki/EPUB>`_.
The builder creates *EPUB 3* files.
.. autoattribute:: name
@@ -300,8 +353,8 @@ name is ``rinoh``. Refer to the `rinohtype manual`_ for details.
.. class:: SerializingHTMLBuilder
This builder uses a module that implements the Python serialization API
- (`pickle`, `simplejson`, `phpserialize`, and others) to dump the generated
- HTML documentation. The pickle builder is a subclass of it.
+ (``pickle``, ``simplejson``, ``phpserialize``, and others) to dump the
+ generated HTML documentation. The pickle builder is a subclass of it.
A concrete subclass of this builder serializing to the `PHP serialization`_
format could look like this::
@@ -319,10 +372,10 @@ name is ``rinoh``. Refer to the `rinohtype manual`_ for details.
.. attribute:: implementation
- A module that implements `dump()`, `load()`, `dumps()` and `loads()`
+ A module that implements ``dump()``, ``load()``, ``dumps()`` and ``loads()``
functions that conform to the functions with the same names from the
pickle module. Known modules implementing this interface are
- `simplejson`, `phpserialize`, `plistlib`, and others.
+ ``simplejson``, ``phpserialize``, ``plistlib``, and others.
.. attribute:: out_suffix
@@ -400,9 +453,9 @@ name is ``rinoh``. Refer to the `rinohtype manual`_ for details.
.. class:: ChangesBuilder
This builder produces an HTML overview of all :rst:dir:`versionadded`,
- :rst:dir:`versionchanged` and :rst:dir:`deprecated` directives for the
- current :confval:`version`. This is useful to generate a ChangeLog file, for
- example.
+ :rst:dir:`versionchanged`, :rst:dir:`deprecated` and :rst:dir:`versionremoved`
+ directives for the current :confval:`version`. This is useful to generate a
+ changelog file, for example.
.. autoattribute:: name
diff --git a/doc/usage/configuration.rst b/doc/usage/configuration.rst
index d440132..a27107f 100644
--- a/doc/usage/configuration.rst
+++ b/doc/usage/configuration.rst
@@ -228,6 +228,7 @@ General configuration
are matched against the source file names relative to the source directory,
using slashes as directory separators on all platforms. The default is ``**``,
meaning that all files are recursively included from the source directory.
+ :confval:`exclude_patterns` has priority over :confval:`include_patterns`.
Example patterns:
@@ -292,7 +293,7 @@ General configuration
.. index:: default; domain
primary; domain
- The name of the default :doc:`domain </usage/restructuredtext/domains>`.
+ The name of the default :doc:`domain </usage/domains/index>`.
Can also be ``None`` to disable a default domain. The default is ``'py'``.
Those objects in other domains (whether the domain name is given explicitly,
or selected by a :rst:dir:`default-domain` directive) will have the domain
@@ -325,18 +326,26 @@ General configuration
.. versionadded:: 0.5
+.. confval:: show_warning_types
+
+ If ``True``, the type of each warning is added as a suffix to the warning message,
+ e.g., ``WARNING: [...] [index]`` or ``WARNING: [...] [toc.circular]``.
+ The default is ``False``.
+
+ .. versionadded:: 7.3.0
+
.. confval:: suppress_warnings
A list of warning types to suppress arbitrary warning messages.
- Sphinx supports following warning types:
+ Sphinx core supports following warning types:
* ``app.add_node``
* ``app.add_directive``
* ``app.add_role``
* ``app.add_generic_role``
* ``app.add_source_parser``
- * ``autosectionlabel.*``
+ * ``config.cache``
* ``download.not_readable``
* ``epub.unknown_project_files``
* ``epub.duplicated_toc_entry``
@@ -358,11 +367,18 @@ General configuration
* ``toc.not_readable``
* ``toc.secnum``
+ Extensions can also define their own warning types.
+ Those defined by the first-party ``sphinx.ext`` extensions are:
+
+ * ``autodoc``
+ * ``autodoc.import_object``
+ * ``autosectionlabel.<document name>``
+ * ``autosummary``
+ * ``intersphinx.external``
+
You can choose from these types. You can also give only the first
component to exclude all warnings attached to it.
- Now, this option should be considered *experimental*.
-
.. versionadded:: 1.4
.. versionchanged:: 1.5
@@ -379,7 +395,7 @@ General configuration
.. versionchanged:: 2.1
- Added ``autosectionlabel.*``
+ Added ``autosectionlabel.<document name>``
.. versionchanged:: 3.3.0
@@ -393,9 +409,13 @@ General configuration
Added ``i18n.inconsistent_references``
- .. versionadded:: 7.1
+ .. versionadded:: 7.1
- Added ``index`` warning type.
+ Added ``index`` warning type.
+
+ .. versionadded:: 7.3
+
+ Added ``config.cache`` warning type.
.. confval:: needs_sphinx
@@ -1178,7 +1198,7 @@ that use Sphinx's HTMLWriter class.
('print.css', {'media': 'print'})]
As a special attribute, *priority* can be set as an integer to load the CSS
- file earlier or lazier step. For more information, refer
+ file at an earlier or lazier step. For more information, refer
:meth:`.Sphinx.add_css_file()`.
.. versionadded:: 1.8
@@ -1200,9 +1220,9 @@ that use Sphinx's HTMLWriter class.
'https://example.com/scripts/custom.js',
('custom.js', {'async': 'async'})]
- As a special attribute, *priority* can be set as an integer to load the CSS
- file earlier or lazier step. For more information, refer
- :meth:`.Sphinx.add_css_file()`.
+ As a special attribute, *priority* can be set as an integer to load the
+ JavaScript file at an earlier or lazier step. For more information, refer
+ :meth:`.Sphinx.add_js_file()`.
.. versionadded:: 1.8
.. versionchanged:: 3.5
@@ -1591,7 +1611,41 @@ that use Sphinx's HTMLWriter class.
The name of a JavaScript file (relative to the configuration directory) that
implements a search results scorer. If empty, the default will be used.
- .. XXX describe interface for scorer here
+ The scorer must implement the following interface,
+ and may optionally define the ``score()`` function for more granular control.
+
+ .. code-block:: javascript
+
+ const Scorer = {
+ // Implement the following function to further tweak the score for each result
+ score: result => {
+ const [docName, title, anchor, descr, score, filename] = result
+
+ // ... calculate a new score ...
+ return score
+ },
+
+ // query matches the full name of an object
+ objNameMatch: 11,
+ // or matches in the last dotted part of the object name
+ objPartialMatch: 6,
+ // Additive scores depending on the priority of the object
+ objPrio: {
+ 0: 15, // used to be importantResults
+ 1: 5, // used to be objectResults
+ 2: -5, // used to be unimportantResults
+ },
+ // Used when the priority is not in the mapping.
+ objPrioDefault: 0,
+
+ // query found in title
+ title: 15,
+ partialTitle: 7,
+
+ // query found in terms
+ term: 5,
+ partialTerm: 2,
+ };
.. versionadded:: 1.2
@@ -1641,7 +1695,7 @@ Options for Single HTML output
.. confval:: singlehtml_sidebars
Custom sidebar templates, must be a dictionary that maps document names to
- template names. And it only allows a key named `'index'`. All other keys
+ template names. And it only allows a key named ``'index'``. All other keys
are ignored. For more information, refer to :confval:`html_sidebars`. By
default, it is same as :confval:`html_sidebars`.
@@ -1963,7 +2017,7 @@ the `Dublin Core metadata <https://dublincore.org/>`_.
Meta data for the guide element of :file:`content.opf`. This is a
sequence of tuples containing the *type*, the *uri* and the *title* of
the optional guide information. See the OPF documentation
- at `<http://idpf.org/epub>`_ for details. If possible, default entries
+ at `<https://idpf.org/epub>`_ for details. If possible, default entries
for the *cover* and *toc* types are automatically inserted. However,
the types can be explicitly overwritten if the default entries are not
appropriate. Example::
@@ -2366,7 +2420,7 @@ These options influence LaTeX output.
usage). This means that words with UTF-8 characters will get
ordered correctly for the :confval:`language`.
- __ http://xindy.sourceforge.net/
+ __ https://xindy.sourceforge.net/
- This option is ignored if :confval:`latex_engine` is ``'platex'``
(Japanese documents; :program:`mendex` replaces :program:`makeindex`
@@ -2742,7 +2796,7 @@ Options for the linkcheck builder
A list of regular expressions that match URIs that should not be checked
when doing a ``linkcheck`` build. Example::
- linkcheck_ignore = [r'http://localhost:\d+/']
+ linkcheck_ignore = [r'https://localhost:\d+/']
.. versionadded:: 1.1
@@ -2804,8 +2858,8 @@ Options for the linkcheck builder
.. confval:: linkcheck_timeout
- A timeout value, in seconds, for the linkcheck builder. The default is to
- use Python's global socket timeout.
+ The duration, in seconds, that the linkcheck builder will wait for a
+ response after each hyperlink request. Defaults to 30 seconds.
.. versionadded:: 1.1
@@ -2896,7 +2950,8 @@ Options for the linkcheck builder
Otherwise, ``linkcheck`` waits for a minute before to retry and keeps
doubling the wait time between attempts until it succeeds or exceeds the
- ``linkcheck_rate_limit_timeout``. By default, the timeout is 5 minutes.
+ ``linkcheck_rate_limit_timeout``. By default, the timeout is 300 seconds
+ and custom timeouts should be given in seconds.
.. _Retry-After: https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.3
@@ -2915,6 +2970,33 @@ Options for the linkcheck builder
.. versionadded:: 4.4
+.. confval:: linkcheck_allow_unauthorized
+
+ When a webserver responds with an HTTP 401 (unauthorized) response, the
+ current default behaviour of Sphinx is to treat the link as "working". To
+ change that behaviour, set this option to ``False``.
+
+ The default value for this option will be changed in Sphinx 8.0; from that
+ version onwards, HTTP 401 responses to checked hyperlinks will be treated
+ as "broken" by default.
+
+ .. versionadded:: 7.3
+
+.. confval:: linkcheck_report_timeouts_as_broken
+
+ When an HTTP response is not received from a webserver before the configured
+ :confval:`linkcheck_timeout` expires,
+ the current default behaviour of Sphinx is to treat the link as 'broken'.
+ To report timeouts using a distinct report code of ``timeout``,
+ set :confval:`linkcheck_report_timeouts_as_broken` to ``False``.
+
+ From Sphinx 8.0 onwards, timeouts that occur while checking hyperlinks
+ will be reported using the new 'timeout' status code.
+
+ .. xref RemovedInSphinx80Warning
+
+ .. versionadded:: 7.3
+
Options for the XML builder
---------------------------
@@ -3066,7 +3148,7 @@ Options for the Python domain
for the latter, the signature length ignores the length of
the type parameters list.
- For instance, with `python_maximum_signature_line_length = 20`,
+ For instance, with ``python_maximum_signature_line_length = 20``,
only the list of type parameters will be wrapped
while the arguments list will be rendered on a single line
diff --git a/doc/usage/domains/c.rst b/doc/usage/domains/c.rst
new file mode 100644
index 0000000..3c1a41d
--- /dev/null
+++ b/doc/usage/domains/c.rst
@@ -0,0 +1,367 @@
+.. highlight:: rst
+
+============
+The C Domain
+============
+
+.. versionadded:: 1.0
+
+The C domain (name **c**) is suited for documentation of C API.
+
+.. rst:directive:: .. c:member:: declaration
+ .. c:var:: declaration
+
+ Describes a C struct member or variable. Example signature::
+
+ .. c:member:: PyObject *PyTypeObject.tp_bases
+
+ The difference between the two directives is only cosmetic.
+
+.. rst:directive:: .. c:function:: function prototype
+
+ Describes a C function. The signature should be given as in C, e.g.::
+
+ .. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
+
+ Note that you don't have to backslash-escape asterisks in the signature, as
+ it is not parsed by the reST inliner.
+
+ In the description of a function you can use the following info fields
+ (see also :ref:`info-field-lists`).
+
+ * ``param``, ``parameter``, ``arg``, ``argument``,
+ Description of a parameter.
+ * ``type``: Type of a parameter,
+ written as if passed to the :rst:role:`c:expr` role.
+ * ``returns``, ``return``: Description of the return value.
+ * ``rtype``: Return type,
+ written as if passed to the :rst:role:`c:expr` role.
+ * ``retval``, ``retvals``: An alternative to ``returns`` for describing
+ the result of the function.
+
+ .. versionadded:: 4.3
+ The ``retval`` field type.
+
+ For example::
+
+ .. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
+
+ :param type: description of the first parameter.
+ :param nitems: description of the second parameter.
+ :returns: a result.
+ :retval NULL: under some conditions.
+ :retval NULL: under some other conditions as well.
+
+ which renders as
+
+ .. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
+
+ ..
+ ** for some editors (e.g., vim) to stop bold-highlighting the source
+
+ :no-contents-entry:
+ :no-index-entry:
+ :param type: description of the first parameter.
+ :param nitems: description of the second parameter.
+ :returns: a result.
+ :retval NULL: under some conditions.
+ :retval NULL: under some other conditions as well.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the function's parameters will be emitted on a single logical
+ line, overriding :confval:`c_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+
+.. rst:directive:: .. c:macro:: name
+ .. c:macro:: name(arg list)
+
+ Describes a C macro, i.e., a C-language ``#define``, without the replacement
+ text.
+
+ In the description of a macro you can use the same info fields as for the
+ :rst:dir:`c:function` directive.
+
+ .. versionadded:: 3.0
+ The function style variant.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the macro's parameters will be emitted on a single logical
+ line, overriding :confval:`c_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+.. rst:directive:: .. c:struct:: name
+
+ Describes a C struct.
+
+ .. versionadded:: 3.0
+
+.. rst:directive:: .. c:union:: name
+
+ Describes a C union.
+
+ .. versionadded:: 3.0
+
+.. rst:directive:: .. c:enum:: name
+
+ Describes a C enum.
+
+ .. versionadded:: 3.0
+
+.. rst:directive:: .. c:enumerator:: name
+
+ Describes a C enumerator.
+
+ .. versionadded:: 3.0
+
+.. rst:directive:: .. c:type:: typedef-like declaration
+ .. c:type:: name
+
+ Describes a C type, either as a typedef, or the alias for an unspecified
+ type.
+
+.. _c-roles:
+
+Cross-referencing C constructs
+------------------------------
+
+The following roles create cross-references to C-language constructs if they
+are defined in the documentation:
+
+.. rst:role:: c:member
+ c:data
+ c:var
+ c:func
+ c:macro
+ c:struct
+ c:union
+ c:enum
+ c:enumerator
+ c:type
+
+ Reference a C declaration, as defined above.
+ Note that :rst:role:`c:member`, :rst:role:`c:data`, and
+ :rst:role:`c:var` are equivalent.
+
+ .. versionadded:: 3.0
+ The var, struct, union, enum, and enumerator roles.
+
+
+Anonymous Entities
+------------------
+
+C supports anonymous structs, enums, and unions.
+For the sake of documentation they must be given some name that starts with
+``@``, e.g., ``@42`` or ``@data``.
+These names can also be used in cross-references,
+though nested symbols will be found even when omitted.
+The ``@...`` name will always be rendered as **[anonymous]** (possibly as a
+link).
+
+Example::
+
+ .. c:struct:: Data
+
+ .. c:union:: @data
+
+ .. c:var:: int a
+
+ .. c:var:: double b
+
+ Explicit ref: :c:var:`Data.@data.a`. Short-hand ref: :c:var:`Data.a`.
+
+This will be rendered as:
+
+.. c:struct:: Data
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. c:union:: @data
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. c:var:: int a
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. c:var:: double b
+ :no-contents-entry:
+ :no-index-entry:
+
+Explicit ref: :c:var:`Data.@data.a`. Short-hand ref: :c:var:`Data.a`.
+
+.. versionadded:: 3.0
+
+
+Aliasing Declarations
+---------------------
+
+.. c:namespace-push:: @alias
+
+Sometimes it may be helpful list declarations elsewhere than their main
+documentation, e.g., when creating a synopsis of an interface.
+The following directive can be used for this purpose.
+
+.. rst:directive:: .. c:alias:: name
+
+ Insert one or more alias declarations. Each entity can be specified
+ as they can in the :rst:role:`c:any` role.
+
+ For example::
+
+ .. c:var:: int data
+ .. c:function:: int f(double k)
+
+ .. c:alias:: data
+ f
+
+ becomes
+
+ .. c:var:: int data
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. c:function:: int f(double k)
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. c:alias:: data
+ f
+
+ .. versionadded:: 3.2
+
+
+ .. rubric:: Options
+
+ .. rst:directive:option:: maxdepth: int
+
+ Insert nested declarations as well, up to the total depth given.
+ Use 0 for infinite depth and 1 for just the mentioned declaration.
+ Defaults to 1.
+
+ .. versionadded:: 3.3
+
+ .. rst:directive:option:: noroot
+
+ Skip the mentioned declarations and only render nested declarations.
+ Requires ``maxdepth`` either 0 or at least 2.
+
+ .. versionadded:: 3.5
+
+
+.. c:namespace-pop::
+
+
+Inline Expressions and Types
+----------------------------
+
+.. rst:role:: c:expr
+ c:texpr
+
+ Insert a C expression or type either as inline code (``cpp:expr``)
+ or inline text (``cpp:texpr``). For example::
+
+ .. c:var:: int a = 42
+
+ .. c:function:: int f(int i)
+
+ An expression: :c:expr:`a * f(a)` (or as text: :c:texpr:`a * f(a)`).
+
+ A type: :c:expr:`const Data*`
+ (or as text :c:texpr:`const Data*`).
+
+ will be rendered as follows:
+
+ .. c:var:: int a = 42
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. c:function:: int f(int i)
+ :no-contents-entry:
+ :no-index-entry:
+
+ An expression: :c:expr:`a * f(a)` (or as text: :c:texpr:`a * f(a)`).
+
+ A type: :c:expr:`const Data*`
+ (or as text :c:texpr:`const Data*`).
+
+ .. versionadded:: 3.0
+
+
+Namespacing
+-----------
+
+.. versionadded:: 3.1
+
+The C language it self does not support namespacing, but it can sometimes be
+useful to emulate it in documentation, e.g., to show alternate declarations.
+The feature may also be used to document members of structs/unions/enums
+separate from their parent declaration.
+
+The current scope can be changed using three namespace directives. They manage
+a stack declarations where ``c:namespace`` resets the stack and changes a given
+scope.
+
+The ``c:namespace-push`` directive changes the scope to a given inner scope
+of the current one.
+
+The ``c:namespace-pop`` directive undoes the most recent
+``c:namespace-push`` directive.
+
+.. rst:directive:: .. c:namespace:: scope specification
+
+ Changes the current scope for the subsequent objects to the given scope, and
+ resets the namespace directive stack. Note that nested scopes can be
+ specified by separating with a dot, e.g.::
+
+ .. c:namespace:: Namespace1.Namespace2.SomeStruct.AnInnerStruct
+
+ All subsequent objects will be defined as if their name were declared with
+ the scope prepended. The subsequent cross-references will be searched for
+ starting in the current scope.
+
+ Using ``NULL`` or ``0`` as the scope will change to global scope.
+
+.. rst:directive:: .. c:namespace-push:: scope specification
+
+ Change the scope relatively to the current scope. For example, after::
+
+ .. c:namespace:: A.B
+
+ .. c:namespace-push:: C.D
+
+ the current scope will be ``A.B.C.D``.
+
+.. rst:directive:: .. c:namespace-pop::
+
+ Undo the previous ``c:namespace-push`` directive (*not* just pop a scope).
+ For example, after::
+
+ .. c:namespace:: A.B
+
+ .. c:namespace-push:: C.D
+
+ .. c:namespace-pop::
+
+ the current scope will be ``A.B`` (*not* ``A.B.C``).
+
+ If no previous ``c:namespace-push`` directive has been used, but only a
+ ``c:namespace`` directive, then the current scope will be reset to global
+ scope. That is, ``.. c:namespace:: A.B`` is equivalent to::
+
+ .. c:namespace:: NULL
+
+ .. c:namespace-push:: A.B
+
+Configuration Variables
+-----------------------
+
+See :ref:`c-config`.
diff --git a/doc/usage/domains/cpp.rst b/doc/usage/domains/cpp.rst
new file mode 100644
index 0000000..6c9372b
--- /dev/null
+++ b/doc/usage/domains/cpp.rst
@@ -0,0 +1,760 @@
+.. highlight:: rst
+
+==============
+The C++ Domain
+==============
+
+.. versionadded:: 1.0
+
+The C++ domain (name **cpp**) supports documenting C++ projects.
+
+Directives for Declaring Entities
+---------------------------------
+
+The following directives are available. All declarations can start with a
+visibility statement (``public``, ``private`` or ``protected``).
+
+.. rst:directive:: .. cpp:class:: class specifier
+ .. cpp:struct:: class specifier
+
+ Describe a class/struct, possibly with specification of inheritance, e.g.,::
+
+ .. cpp:class:: MyClass : public MyBase, MyOtherBase
+
+ The difference between :rst:dir:`cpp:class` and :rst:dir:`cpp:struct` is
+ only cosmetic: the prefix rendered in the output, and the specifier shown
+ in the index.
+
+ The class can be directly declared inside a nested scope, e.g.,::
+
+ .. cpp:class:: OuterScope::MyClass : public MyBase, MyOtherBase
+
+ A class template can be declared::
+
+ .. cpp:class:: template<typename T, std::size_t N> std::array
+
+ or with a line break::
+
+ .. cpp:class:: template<typename T, std::size_t N> \
+ std::array
+
+ Full and partial template specialisations can be declared::
+
+ .. cpp:class:: template<> \
+ std::array<bool, 256>
+
+ .. cpp:class:: template<typename T> \
+ std::array<T, 42>
+
+ .. versionadded:: 2.0
+ The :rst:dir:`cpp:struct` directive.
+
+.. rst:directive:: .. cpp:function:: (member) function prototype
+
+ Describe a function or member function, e.g.,::
+
+ .. cpp:function:: bool myMethod(int arg1, std::string arg2)
+
+ A function with parameters and types.
+
+ .. cpp:function:: bool myMethod(int, double)
+
+ A function with unnamed parameters.
+
+ .. cpp:function:: const T &MyClass::operator[](std::size_t i) const
+
+ An overload for the indexing operator.
+
+ .. cpp:function:: operator bool() const
+
+ A casting operator.
+
+ .. cpp:function:: constexpr void foo(std::string &bar[2]) noexcept
+
+ A constexpr function.
+
+ .. cpp:function:: MyClass::MyClass(const MyClass&) = default
+
+ A copy constructor with default implementation.
+
+ Function templates can also be described::
+
+ .. cpp:function:: template<typename U> \
+ void print(U &&u)
+
+ and function template specialisations::
+
+ .. cpp:function:: template<> \
+ void print(int i)
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the function's parameters will be emitted on a single logical
+ line, overriding :confval:`cpp_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+.. rst:directive:: .. cpp:member:: (member) variable declaration
+ .. cpp:var:: (member) variable declaration
+
+ Describe a variable or member variable, e.g.,::
+
+ .. cpp:member:: std::string MyClass::myMember
+
+ .. cpp:var:: std::string MyClass::myOtherMember[N][M]
+
+ .. cpp:member:: int a = 42
+
+ Variable templates can also be described::
+
+ .. cpp:member:: template<class T> \
+ constexpr T pi = T(3.1415926535897932385)
+
+.. rst:directive:: .. cpp:type:: typedef declaration
+ .. cpp:type:: name
+ .. cpp:type:: type alias declaration
+
+ Describe a type as in a typedef declaration, a type alias declaration, or
+ simply the name of a type with unspecified type, e.g.,::
+
+ .. cpp:type:: std::vector<int> MyList
+
+ A typedef-like declaration of a type.
+
+ .. cpp:type:: MyContainer::const_iterator
+
+ Declaration of a type alias with unspecified type.
+
+ .. cpp:type:: MyType = std::unordered_map<int, std::string>
+
+ Declaration of a type alias.
+
+ A type alias can also be templated::
+
+ .. cpp:type:: template<typename T> \
+ MyContainer = std::vector<T>
+
+ The example are rendered as follows.
+
+ .. cpp:type:: std::vector<int> MyList
+ :no-contents-entry:
+ :no-index-entry:
+
+ A typedef-like declaration of a type.
+
+ .. cpp:type:: MyContainer::const_iterator
+ :no-contents-entry:
+ :no-index-entry:
+
+ Declaration of a type alias with unspecified type.
+
+ .. cpp:type:: MyType = std::unordered_map<int, std::string>
+ :no-contents-entry:
+ :no-index-entry:
+
+ Declaration of a type alias.
+
+ .. cpp:type:: template<typename T> \
+ MyContainer = std::vector<T>
+ :no-contents-entry:
+ :no-index-entry:
+
+.. rst:directive:: .. cpp:enum:: unscoped enum declaration
+ .. cpp:enum-struct:: scoped enum declaration
+ .. cpp:enum-class:: scoped enum declaration
+
+ Describe a (scoped) enum, possibly with the underlying type specified. Any
+ enumerators declared inside an unscoped enum will be declared both in the
+ enum scope and in the parent scope. Examples::
+
+ .. cpp:enum:: MyEnum
+
+ An unscoped enum.
+
+ .. cpp:enum:: MySpecificEnum : long
+
+ An unscoped enum with specified underlying type.
+
+ .. cpp:enum-class:: MyScopedEnum
+
+ A scoped enum.
+
+ .. cpp:enum-struct:: protected MyScopedVisibilityEnum : std::underlying_type<MySpecificEnum>::type
+
+ A scoped enum with non-default visibility, and with a specified
+ underlying type.
+
+.. rst:directive:: .. cpp:enumerator:: name
+ .. cpp:enumerator:: name = constant
+
+ Describe an enumerator, optionally with its value defined, e.g.,::
+
+ .. cpp:enumerator:: MyEnum::myEnumerator
+
+ .. cpp:enumerator:: MyEnum::myOtherEnumerator = 42
+
+.. rst:directive:: .. cpp:union:: name
+
+ Describe a union.
+
+ .. versionadded:: 1.8
+
+.. rst:directive:: .. cpp:concept:: template-parameter-list name
+
+ .. warning:: The support for concepts is experimental. It is based on the
+ current draft standard and the Concepts Technical Specification.
+ The features may change as they evolve.
+
+ Describe a concept. It must have exactly 1 template parameter list. The name
+ may be a nested name. Example::
+
+ .. cpp:concept:: template<typename It> std::Iterator
+
+ Proxy to an element of a notional sequence that can be compared,
+ indirected, or incremented.
+
+ **Notation**
+
+ .. cpp:var:: It r
+
+ An lvalue.
+
+ **Valid Expressions**
+
+ - :cpp:expr:`*r`, when :cpp:expr:`r` is dereferenceable.
+ - :cpp:expr:`++r`, with return type :cpp:expr:`It&`, when
+ :cpp:expr:`r` is incrementable.
+
+ This will render as follows:
+
+ .. cpp:concept:: template<typename It> std::Iterator
+ :no-contents-entry:
+ :no-index-entry:
+
+ Proxy to an element of a notional sequence that can be compared,
+ indirected, or incremented.
+
+ **Notation**
+
+ .. cpp:var:: It r
+
+ An lvalue.
+
+ **Valid Expressions**
+
+ - :cpp:expr:`*r`, when :cpp:expr:`r` is dereferenceable.
+ - :cpp:expr:`++r`, with return type :cpp:expr:`It&`, when :cpp:expr:`r`
+ is incrementable.
+
+ .. versionadded:: 1.5
+
+
+Options
+~~~~~~~
+
+Some directives support options:
+
+- ``:no-index-entry:`` and ``:no-contents-entry:``, see :ref:`basic-domain-markup`.
+- ``:tparam-line-spec:``, for templated declarations.
+ If specified, each template parameter will be rendered on a separate line.
+
+ .. versionadded:: 1.6
+
+Anonymous Entities
+------------------
+
+C++ supports anonymous namespaces, classes, enums, and unions.
+For the sake of documentation they must be given some name that starts with
+``@``, e.g., ``@42`` or ``@data``.
+These names can also be used in cross-references and (type) expressions,
+though nested symbols will be found even when omitted.
+The ``@...`` name will always be rendered as **[anonymous]** (possibly as a
+link).
+
+Example::
+
+ .. cpp:class:: Data
+
+ .. cpp:union:: @data
+
+ .. cpp:var:: int a
+
+ .. cpp:var:: double b
+
+ Explicit ref: :cpp:var:`Data::@data::a`. Short-hand ref: :cpp:var:`Data::a`.
+
+This will be rendered as:
+
+.. cpp:class:: Data
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:union:: @data
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:var:: int a
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:var:: double b
+ :no-contents-entry:
+ :no-index-entry:
+
+Explicit ref: :cpp:var:`Data::@data::a`. Short-hand ref: :cpp:var:`Data::a`.
+
+.. versionadded:: 1.8
+
+
+Aliasing Declarations
+---------------------
+
+Sometimes it may be helpful list declarations elsewhere than their main
+documentation, e.g., when creating a synopsis of a class interface.
+The following directive can be used for this purpose.
+
+.. rst:directive:: .. cpp:alias:: name or function signature
+
+ Insert one or more alias declarations. Each entity can be specified
+ as they can in the :rst:role:`cpp:any` role.
+ If the name of a function is given (as opposed to the complete signature),
+ then all overloads of the function will be listed.
+
+ For example::
+
+ .. cpp:alias:: Data::a
+ overload_example::C::f
+
+ becomes
+
+ .. cpp:alias:: Data::a
+ overload_example::C::f
+
+ whereas::
+
+ .. cpp:alias:: void overload_example::C::f(double d) const
+ void overload_example::C::f(double d)
+
+ becomes
+
+ .. cpp:alias:: void overload_example::C::f(double d) const
+ void overload_example::C::f(double d)
+
+ .. versionadded:: 2.0
+
+
+ .. rubric:: Options
+
+ .. rst:directive:option:: maxdepth: int
+
+ Insert nested declarations as well, up to the total depth given.
+ Use 0 for infinite depth and 1 for just the mentioned declaration.
+ Defaults to 1.
+
+ .. versionadded:: 3.5
+
+ .. rst:directive:option:: noroot
+
+ Skip the mentioned declarations and only render nested declarations.
+ Requires ``maxdepth`` either 0 or at least 2.
+
+ .. versionadded:: 3.5
+
+
+Constrained Templates
+---------------------
+
+.. warning:: The support for concepts is experimental. It is based on the
+ current draft standard and the Concepts Technical Specification.
+ The features may change as they evolve.
+
+.. note:: Sphinx does not currently support ``requires`` clauses.
+
+Placeholders
+~~~~~~~~~~~~
+
+Declarations may use the name of a concept to introduce constrained template
+parameters, or the keyword ``auto`` to introduce unconstrained template
+parameters::
+
+ .. cpp:function:: void f(auto &&arg)
+
+ A function template with a single unconstrained template parameter.
+
+ .. cpp:function:: void f(std::Iterator it)
+
+ A function template with a single template parameter, constrained by the
+ Iterator concept.
+
+Template Introductions
+~~~~~~~~~~~~~~~~~~~~~~
+
+Simple constrained function or class templates can be declared with a `template
+introduction` instead of a template parameter list::
+
+ .. cpp:function:: std::Iterator{It} void advance(It &it)
+
+ A function template with a template parameter constrained to be an
+ Iterator.
+
+ .. cpp:class:: std::LessThanComparable{T} MySortedContainer
+
+ A class template with a template parameter constrained to be
+ LessThanComparable.
+
+They are rendered as follows.
+
+.. cpp:function:: std::Iterator{It} void advance(It &it)
+ :no-contents-entry:
+ :no-index-entry:
+
+ A function template with a template parameter constrained to be an Iterator.
+
+.. cpp:class:: std::LessThanComparable{T} MySortedContainer
+ :no-contents-entry:
+ :no-index-entry:
+
+ A class template with a template parameter constrained to be
+ LessThanComparable.
+
+Note however that no checking is performed with respect to parameter
+compatibility. E.g., ``Iterator{A, B, C}`` will be accepted as an introduction
+even though it would not be valid C++.
+
+Inline Expressions and Types
+----------------------------
+
+.. rst:role:: cpp:expr
+ cpp:texpr
+
+ Insert a C++ expression or type either as inline code (``cpp:expr``)
+ or inline text (``cpp:texpr``). For example::
+
+ .. cpp:var:: int a = 42
+
+ .. cpp:function:: int f(int i)
+
+ An expression: :cpp:expr:`a * f(a)` (or as text: :cpp:texpr:`a * f(a)`).
+
+ A type: :cpp:expr:`const MySortedContainer<int>&`
+ (or as text :cpp:texpr:`const MySortedContainer<int>&`).
+
+ will be rendered as follows:
+
+ .. cpp:var:: int a = 42
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:function:: int f(int i)
+ :no-contents-entry:
+ :no-index-entry:
+
+ An expression: :cpp:expr:`a * f(a)` (or as text: :cpp:texpr:`a * f(a)`).
+
+ A type: :cpp:expr:`const MySortedContainer<int>&`
+ (or as text :cpp:texpr:`const MySortedContainer<int>&`).
+
+ .. versionadded:: 1.7
+ The :rst:role:`cpp:expr` role.
+
+ .. versionadded:: 1.8
+ The :rst:role:`cpp:texpr` role.
+
+Namespacing
+-----------
+
+Declarations in the C++ domain are as default placed in global scope. The
+current scope can be changed using three namespace directives. They manage a
+stack declarations where ``cpp:namespace`` resets the stack and changes a given
+scope.
+
+The ``cpp:namespace-push`` directive changes the scope to a given inner scope
+of the current one.
+
+The ``cpp:namespace-pop`` directive undoes the most recent
+``cpp:namespace-push`` directive.
+
+.. rst:directive:: .. cpp:namespace:: scope specification
+
+ Changes the current scope for the subsequent objects to the given scope, and
+ resets the namespace directive stack. Note that the namespace does not need
+ to correspond to C++ namespaces, but can end in names of classes, e.g.,::
+
+ .. cpp:namespace:: Namespace1::Namespace2::SomeClass::AnInnerClass
+
+ All subsequent objects will be defined as if their name were declared with
+ the scope prepended. The subsequent cross-references will be searched for
+ starting in the current scope.
+
+ Using ``NULL``, ``0``, or ``nullptr`` as the scope will change to global
+ scope.
+
+ A namespace declaration can also be templated, e.g.,::
+
+ .. cpp:class:: template<typename T> \
+ std::vector
+
+ .. cpp:namespace:: template<typename T> std::vector
+
+ .. cpp:function:: std::size_t size() const
+
+ declares ``size`` as a member function of the class template
+ ``std::vector``. Equivalently this could have been declared using::
+
+ .. cpp:class:: template<typename T> \
+ std::vector
+
+ .. cpp:function:: std::size_t size() const
+
+ or::
+
+ .. cpp:class:: template<typename T> \
+ std::vector
+
+.. rst:directive:: .. cpp:namespace-push:: scope specification
+
+ Change the scope relatively to the current scope. For example, after::
+
+ .. cpp:namespace:: A::B
+
+ .. cpp:namespace-push:: C::D
+
+ the current scope will be ``A::B::C::D``.
+
+ .. versionadded:: 1.4
+
+.. rst:directive:: .. cpp:namespace-pop::
+
+ Undo the previous ``cpp:namespace-push`` directive (*not* just pop a scope).
+ For example, after::
+
+ .. cpp:namespace:: A::B
+
+ .. cpp:namespace-push:: C::D
+
+ .. cpp:namespace-pop::
+
+ the current scope will be ``A::B`` (*not* ``A::B::C``).
+
+ If no previous ``cpp:namespace-push`` directive has been used, but only a
+ ``cpp:namespace`` directive, then the current scope will be reset to global
+ scope. That is, ``.. cpp:namespace:: A::B`` is equivalent to::
+
+ .. cpp:namespace:: nullptr
+
+ .. cpp:namespace-push:: A::B
+
+ .. versionadded:: 1.4
+
+Info field lists
+----------------
+
+All the C++ directives for declaring entities support the following
+info fields (see also :ref:`info-field-lists`):
+
+* ``tparam``: Description of a template parameter.
+
+The :rst:dir:`cpp:function` directive additionally supports the
+following fields:
+
+* ``param``, ``parameter``, ``arg``, ``argument``: Description of a parameter.
+* ``returns``, ``return``: Description of a return value.
+* ``retval``, ``retvals``: An alternative to ``returns`` for describing
+ the result of the function.
+* ``throws``, ``throw``, ``exception``: Description of a possibly thrown exception.
+
+.. versionadded:: 4.3
+ The ``retval`` field type.
+
+.. _cpp-roles:
+
+Cross-referencing
+-----------------
+
+These roles link to the given declaration types:
+
+.. rst:role:: cpp:any
+ cpp:class
+ cpp:struct
+ cpp:func
+ cpp:member
+ cpp:var
+ cpp:type
+ cpp:concept
+ cpp:enum
+ cpp:enumerator
+
+ Reference a C++ declaration by name (see below for details). The name must
+ be properly qualified relative to the position of the link.
+
+ .. versionadded:: 2.0
+ The :rst:role:`cpp:struct` role as alias for the :rst:role:`cpp:class`
+ role.
+
+.. admonition:: Note on References with Templates Parameters/Arguments
+
+ These roles follow the Sphinx :ref:`xref-syntax` rules. This means care must
+ be taken when referencing a (partial) template specialization, e.g. if the
+ link looks like this: ``:cpp:class:`MyClass<int>```.
+ This is interpreted as a link to ``int`` with a title of ``MyClass``.
+ In this case, escape the opening angle bracket with a backslash,
+ like this: ``:cpp:class:`MyClass\<int>```.
+
+ When a custom title is not needed it may be useful to use the roles for
+ inline expressions, :rst:role:`cpp:expr` and :rst:role:`cpp:texpr`, where
+ angle brackets do not need escaping.
+
+Declarations without template parameters and template arguments
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For linking to non-templated declarations the name must be a nested name, e.g.,
+``f`` or ``MyClass::f``.
+
+
+Overloaded (member) functions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When a (member) function is referenced using just its name, the reference
+will point to an arbitrary matching overload.
+The :rst:role:`cpp:any` and :rst:role:`cpp:func` roles use an alternative
+format, which simply is a complete function declaration.
+This will resolve to the exact matching overload.
+As example, consider the following class declaration:
+
+.. cpp:namespace-push:: overload_example
+.. cpp:class:: C
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:function:: void f(double d) const
+ :no-contents-entry:
+ :no-index-entry:
+ .. cpp:function:: void f(double d)
+ :no-contents-entry:
+ :no-index-entry:
+ .. cpp:function:: void f(int i)
+ :no-contents-entry:
+ :no-index-entry:
+ .. cpp:function:: void f()
+ :no-contents-entry:
+ :no-index-entry:
+
+References using the :rst:role:`cpp:func` role:
+
+- Arbitrary overload: ``C::f``, :cpp:func:`C::f`
+- Also arbitrary overload: ``C::f()``, :cpp:func:`C::f()`
+- Specific overload: ``void C::f()``, :cpp:func:`void C::f()`
+- Specific overload: ``void C::f(int)``, :cpp:func:`void C::f(int)`
+- Specific overload: ``void C::f(double)``, :cpp:func:`void C::f(double)`
+- Specific overload: ``void C::f(double) const``,
+ :cpp:func:`void C::f(double) const`
+
+Note that the :confval:`add_function_parentheses` configuration variable
+does not influence specific overload references.
+
+.. cpp:namespace-pop::
+
+
+Templated declarations
+~~~~~~~~~~~~~~~~~~~~~~
+
+Assume the following declarations.
+
+.. cpp:class:: Wrapper
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:class:: template<typename TOuter> \
+ Outer
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:class:: template<typename TInner> \
+ Inner
+ :no-contents-entry:
+ :no-index-entry:
+
+In general the reference must include the template parameter declarations,
+and template arguments for the prefix of qualified names. For example:
+
+- ``template\<typename TOuter> Wrapper::Outer``
+ (:cpp:class:`template\<typename TOuter> Wrapper::Outer`)
+- ``template\<typename TOuter> template\<typename TInner> Wrapper::Outer<TOuter>::Inner``
+ (:cpp:class:`template\<typename TOuter> template\<typename TInner> Wrapper::Outer<TOuter>::Inner`)
+
+Currently the lookup only succeed if the template parameter identifiers are
+equal strings. That is, ``template\<typename UOuter> Wrapper::Outer`` will not
+work.
+
+As a shorthand notation, if a template parameter list is omitted,
+then the lookup will assume either a primary template or a non-template,
+but not a partial template specialisation.
+This means the following references work as well:
+
+- ``Wrapper::Outer``
+ (:cpp:class:`Wrapper::Outer`)
+- ``Wrapper::Outer::Inner``
+ (:cpp:class:`Wrapper::Outer::Inner`)
+- ``template\<typename TInner> Wrapper::Outer::Inner``
+ (:cpp:class:`template\<typename TInner> Wrapper::Outer::Inner`)
+
+(Full) Template Specialisations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Assume the following declarations.
+
+.. cpp:class:: template<typename TOuter> \
+ Outer
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:class:: template<typename TInner> \
+ Inner
+ :no-contents-entry:
+ :no-index-entry:
+
+.. cpp:class:: template<> \
+ Outer<int>
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:class:: template<typename TInner> \
+ Inner
+ :no-contents-entry:
+ :no-index-entry:
+
+ .. cpp:class:: template<> \
+ Inner<bool>
+ :no-contents-entry:
+ :no-index-entry:
+
+In general the reference must include a template parameter list for each
+template argument list. The full specialisation above can therefore be
+referenced with ``template\<> Outer\<int>`` (:cpp:class:`template\<>
+Outer\<int>`) and ``template\<> template\<> Outer\<int>::Inner\<bool>``
+(:cpp:class:`template\<> template\<> Outer\<int>::Inner\<bool>`). As a
+shorthand the empty template parameter list can be omitted, e.g.,
+``Outer\<int>`` (:cpp:class:`Outer\<int>`) and ``Outer\<int>::Inner\<bool>``
+(:cpp:class:`Outer\<int>::Inner\<bool>`).
+
+Partial Template Specialisations
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Assume the following declaration.
+
+.. cpp:class:: template<typename T> \
+ Outer<T*>
+ :no-contents-entry:
+ :no-index-entry:
+
+References to partial specialisations must always include the template
+parameter lists, e.g., ``template\<typename T> Outer\<T*>``
+(:cpp:class:`template\<typename T> Outer\<T*>`). Currently the lookup only
+succeed if the template parameter identifiers are equal strings.
+
+Configuration Variables
+-----------------------
+
+See :ref:`cpp-config`.
diff --git a/doc/usage/domains/index.rst b/doc/usage/domains/index.rst
new file mode 100644
index 0000000..b5d43ce
--- /dev/null
+++ b/doc/usage/domains/index.rst
@@ -0,0 +1,208 @@
+.. highlight:: rst
+
+=======
+Domains
+=======
+
+.. versionadded:: 1.0
+
+Originally, Sphinx was conceived for a single project, the documentation of the
+Python language. Shortly afterwards, it was made available for everyone as a
+documentation tool, but the documentation of Python modules remained deeply
+built in -- the most fundamental directives, like ``function``, were designed
+for Python objects. Since Sphinx has become somewhat popular, interest
+developed in using it for many different purposes: C/C++ projects, JavaScript,
+or even reStructuredText markup (like in this documentation).
+
+While this was always possible, it is now much easier to easily support
+documentation of projects using different programming languages or even ones
+not supported by the main Sphinx distribution, by providing a **domain** for
+every such purpose.
+
+A domain is a collection of markup (reStructuredText :term:`directive`\ s and
+:term:`role`\ s) to describe and link to :term:`object`\ s belonging together,
+e.g. elements of a programming language. Directive and role names in a domain
+have names like ``domain:name``, e.g. ``py:function``. Domains can also
+provide custom indices (like the Python Module Index).
+
+Having domains means that there are no naming problems when one set of
+documentation wants to refer to e.g. C++ and Python classes. It also means
+that extensions that support the documentation of whole new languages are much
+easier to write.
+
+This section describes what the domains that are included with Sphinx provide.
+The domain API is documented as well, in the section :ref:`domain-api`.
+
+
+.. _basic-domain-markup:
+
+Basic Markup
+------------
+
+Most domains provide a number of :dfn:`object description directives`, used to
+describe specific objects provided by modules. Each directive requires one or
+more signatures to provide basic information about what is being described, and
+the content should be the description.
+
+A domain will typically keep an internal index of all entities to aid
+cross-referencing.
+Typically it will also add entries in the shown general index.
+If you want to suppress the addition of an entry in the shown index, you can
+give the directive option flag ``:no-index-entry:``.
+If you want to exclude the object description from the table of contents, you
+can give the directive option flag ``:no-contents-entry:``.
+If you want to typeset an object description, without even making it available
+for cross-referencing, you can give the directive option flag ``:no-index:``
+(which implies ``:no-index-entry:``).
+If you do not want to typeset anything, you can give the directive option flag
+``:no-typesetting:``. This can for example be used to create only a target and
+index entry for later reference.
+Though, note that not every directive in every domain may support these
+options.
+
+.. versionadded:: 3.2
+ The directive option ``noindexentry`` in the Python, C, C++, and Javascript
+ domains.
+
+.. versionadded:: 5.2.3
+ The directive option ``:nocontentsentry:`` in the Python, C, C++, Javascript,
+ and reStructuredText domains.
+
+.. versionadded:: 7.2
+ The directive option ``no-typesetting`` in the Python, C, C++, Javascript,
+ and reStructuredText domains.
+
+.. versionchanged:: 7.2
+
+ * The directive option ``:noindex:`` was renamed
+ to ``:no-index:``.
+ * The directive option ``:noindexentry:`` was renamed
+ to ``:no-index-entry:``.
+ * The directive option ``:nocontentsentry:`` was renamed
+ to ``:no-contents-entry:``.
+
+ The previous names are retained as aliases,
+ but will be deprecated and removed
+ in a future version of Sphinx.
+
+An example using a Python domain directive::
+
+ .. py:function:: spam(eggs)
+ ham(eggs)
+
+ Spam or ham the foo.
+
+This describes the two Python functions ``spam`` and ``ham``. (Note that when
+signatures become too long, you can break them if you add a backslash to lines
+that are continued in the next line. Example::
+
+ .. py:function:: filterwarnings(action, message='', category=Warning, \
+ module='', lineno=0, append=False)
+ :no-index:
+
+(This example also shows how to use the ``:no-index:`` flag.)
+
+The domains also provide roles that link back to these object descriptions.
+For example, to link to one of the functions described in the example above,
+you could say ::
+
+ The function :py:func:`spam` does a similar thing.
+
+As you can see, both directive and role names contain the domain name and the
+directive name.
+
+The directive option ``:no-typesetting:`` can be used to create a target
+(and index entry) which can later be referenced
+by the roles provided by the domain.
+This is particularly useful for literate programming:
+
+.. code-block:: rst
+
+ .. py:function:: spam(eggs)
+ :no-typesetting:
+
+ .. code::
+
+ def spam(eggs):
+ pass
+
+ The function :py:func:`spam` does nothing.
+
+.. rubric:: Default Domain
+
+For documentation describing objects from solely one domain, authors will not
+have to state again its name at each directive, role, etc... after
+having specified a default. This can be done either via the config
+value :confval:`primary_domain` or via this directive:
+
+.. rst:directive:: .. default-domain:: name
+
+ Select a new default domain. While the :confval:`primary_domain` selects a
+ global default, this only has an effect within the same file.
+
+If no other default is selected, the Python domain (named ``py``) is the
+default one, mostly for compatibility with documentation written for older
+versions of Sphinx.
+
+Directives and roles that belong to the default domain can be mentioned without
+giving the domain name, i.e. ::
+
+ .. function:: pyfunc()
+
+ Describes a Python function.
+
+ Reference to :func:`pyfunc`.
+
+Cross-referencing syntax
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+For cross-reference roles provided by domains, the same facilities exist as for
+general cross-references. See :ref:`xref-syntax`.
+
+In short:
+
+* You may supply an explicit title and reference target: ``:role:`title
+ <target>``` will refer to *target*, but the link text will be *title*.
+
+* If you prefix the content with ``!``, no reference/hyperlink will be created.
+
+* If you prefix the content with ``~``, the link text will only be the last
+ component of the target. For example, ``:py:meth:`~Queue.Queue.get``` will
+ refer to ``Queue.Queue.get`` but only display ``get`` as the link text.
+
+Built-in domains
+----------------
+
+The following domains are included within Sphinx:
+
+.. toctree::
+ :maxdepth: 1
+
+ standard
+ c
+ cpp
+ javascript
+ mathematics
+ python
+ restructuredtext
+
+More domains
+------------
+
+There are several third-party domains available as extensions, including:
+
+* `Ada <https://pypi.org/project/sphinxcontrib-adadomain/>`__
+* `Chapel <https://pypi.org/project/sphinxcontrib-chapeldomain/>`__
+* `CoffeeScript <https://pypi.org/project/sphinxcontrib-coffee/>`__
+* `Common Lisp <https://pypi.org/project/sphinxcontrib-cldomain/>`__
+* `dqn <https://pypi.org/project/sphinxcontrib-dqndomain/>`__
+* `Erlang <https://pypi.org/project/sphinxcontrib-erlangdomain/>`__
+* `Go <https://pypi.org/project/sphinxcontrib-golangdomain/>`__
+* `HTTP <https://pypi.org/project/sphinxcontrib-httpdomain/>`__
+* `Jinja <https://pypi.org/project/sphinxcontrib-jinjadomain/>`__
+* `Lasso <https://pypi.org/project/sphinxcontrib-lassodomain/>`__
+* `MATLAB <https://pypi.org/project/sphinxcontrib-matlabdomain/>`__
+* `Operation <https://pypi.org/project/sphinxcontrib-operationdomain/>`__
+* `PHP <https://pypi.org/project/sphinxcontrib-phpdomain/>`__
+* `Ruby <https://pypi.org/project/sphinxcontrib-rubydomain/>`__
+* `Scala <https://pypi.org/project/sphinxcontrib-scaladomain/>`__
diff --git a/doc/usage/domains/javascript.rst b/doc/usage/domains/javascript.rst
new file mode 100644
index 0000000..630b52e
--- /dev/null
+++ b/doc/usage/domains/javascript.rst
@@ -0,0 +1,132 @@
+.. highlight:: rst
+
+=====================
+The JavaScript Domain
+=====================
+
+.. versionadded:: 1.0
+
+The JavaScript domain (name **js**) provides the following directives:
+
+.. rst:directive:: .. js:module:: name
+
+ This directive sets the module name for object declarations that follow
+ after. The module name is used in the global module index and in cross
+ references. This directive does not create an object heading like
+ :rst:dir:`py:class` would, for example.
+
+ By default, this directive will create a linkable entity and will cause an
+ entry in the global module index, unless the ``no-index`` option is
+ specified. If this option is specified, the directive will only update the
+ current module name.
+
+ .. versionadded:: 1.6
+ .. versionchanged:: 5.2
+
+ Module directives support body content.
+
+.. rst:directive:: .. js:function:: name(signature)
+
+ Describes a JavaScript function or method. If you want to describe
+ arguments as optional use square brackets as :ref:`documented <signatures>`
+ for Python signatures.
+
+ You can use fields to give more details about arguments and their expected
+ types, errors which may be thrown by the function, and the value being
+ returned::
+
+ .. js:function:: $.getJSON(href, callback[, errback])
+
+ :param string href: An URI to the location of the resource.
+ :param callback: Gets called with the object.
+ :param errback:
+ Gets called in case the request fails. And a lot of other
+ text so we need multiple lines.
+ :throws SomeError: For whatever reason in that case.
+ :returns: Something.
+
+ This is rendered as:
+
+ .. js:function:: $.getJSON(href, callback[, errback])
+ :no-contents-entry:
+ :no-index-entry:
+
+ :param string href: An URI to the location of the resource.
+ :param callback: Gets called with the object.
+ :param errback:
+ Gets called in case the request fails. And a lot of other
+ text so we need multiple lines.
+ :throws SomeError: For whatever reason in that case.
+ :returns: Something.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the function's parameters will be emitted on a single logical
+ line, overriding :confval:`javascript_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+.. rst:directive:: .. js:method:: name(signature)
+
+ This directive is an alias for :rst:dir:`js:function`, however it describes
+ a function that is implemented as a method on a class object.
+
+ .. versionadded:: 1.6
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the function's parameters will be emitted on a single logical
+ line, overriding :confval:`javascript_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+.. rst:directive:: .. js:class:: name
+
+ Describes a constructor that creates an object. This is basically like a
+ function but will show up with a `class` prefix::
+
+ .. js:class:: MyAnimal(name[, age])
+
+ :param string name: The name of the animal
+ :param number age: an optional age for the animal
+
+ This is rendered as:
+
+ .. js:class:: MyAnimal(name[, age])
+ :no-contents-entry:
+ :no-index-entry:
+
+ :param string name: The name of the animal
+ :param number age: an optional age for the animal
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the function's parameters will be emitted on a single logical
+ line, overriding :confval:`javascript_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+.. rst:directive:: .. js:data:: name
+
+ Describes a global variable or constant.
+
+.. rst:directive:: .. js:attribute:: object.name
+
+ Describes the attribute *name* of *object*.
+
+.. _js-roles:
+
+These roles are provided to refer to the described objects:
+
+.. rst:role:: js:mod
+ js:func
+ js:meth
+ js:class
+ js:data
+ js:attr
diff --git a/doc/usage/domains/mathematics.rst b/doc/usage/domains/mathematics.rst
new file mode 100644
index 0000000..9f02c6d
--- /dev/null
+++ b/doc/usage/domains/mathematics.rst
@@ -0,0 +1,22 @@
+.. highlight:: rst
+
+======================
+The Mathematics Domain
+======================
+
+.. versionadded:: 1.8
+
+The math domain (name **math**) provides the following roles:
+
+.. rst:role:: math:numref
+
+ Role for cross-referencing equations defined by :rst:dir:`math` directive
+ via their label. Example::
+
+ .. math:: e^{i\pi} + 1 = 0
+ :label: euler
+
+ Euler's identity, equation :math:numref:`euler`, was elected one of the
+ most beautiful mathematical formulas.
+
+ .. versionadded:: 1.8
diff --git a/doc/usage/domains/python.rst b/doc/usage/domains/python.rst
new file mode 100644
index 0000000..96982f1
--- /dev/null
+++ b/doc/usage/domains/python.rst
@@ -0,0 +1,688 @@
+.. highlight:: rst
+
+=================
+The Python Domain
+=================
+
+.. versionadded:: 1.0
+
+The Python domain (name **py**) provides the following directives for module
+declarations:
+
+.. rst:directive:: .. py:module:: name
+
+ This directive marks the beginning of the description of a module (or package
+ submodule, in which case the name should be fully qualified, including the
+ package name). A description of the module such as the docstring can be
+ placed in the body of the directive.
+
+ This directive will also cause an entry in the global module index.
+
+ .. versionchanged:: 5.2
+
+ Module directives support body content.
+
+ .. rubric:: options
+
+ .. rst:directive:option:: platform: platforms
+ :type: comma separated list
+
+ Indicate platforms which the module is available (if it is available on
+ all platforms, the option should be omitted). The keys are short
+ identifiers; examples that are in use include "IRIX", "Mac", "Windows"
+ and "Unix". It is important to use a key which has already been used when
+ applicable.
+
+ .. rst:directive:option:: synopsis: purpose
+ :type: text
+
+ Consist of one sentence describing the module's purpose -- it is currently
+ only used in the Global Module Index.
+
+ .. rst:directive:option:: deprecated
+ :type: no argument
+
+ Mark a module as deprecated; it will be designated as such in various
+ locations then.
+
+
+.. rst:directive:: .. py:currentmodule:: name
+
+ This directive tells Sphinx that the classes, functions etc. documented from
+ here are in the given module (like :rst:dir:`py:module`), but it will not
+ create index entries, an entry in the Global Module Index, or a link target
+ for :rst:role:`py:mod`. This is helpful in situations where documentation
+ for things in a module is spread over multiple files or sections -- one
+ location has the :rst:dir:`py:module` directive, the others only
+ :rst:dir:`py:currentmodule`.
+
+The following directives are provided for module and class contents:
+
+.. rst:directive:: .. py:function:: name(parameters)
+ .. py:function:: name[type parameters](parameters)
+
+ Describes a module-level function.
+ The signature should include the parameters,
+ together with optional type parameters,
+ as given in the Python function definition, see :ref:`signatures`.
+ For example::
+
+ .. py:function:: Timer.repeat(repeat=3, number=1_000_000)
+ .. py:function:: add[T](a: T, b: T) -> T
+
+ For methods you should use :rst:dir:`py:method`.
+
+ The description normally includes information about the parameters required
+ and how they are used (especially whether mutable objects passed as
+ parameters are modified), side effects, and possible exceptions.
+
+ This information can (in any ``py`` directive) optionally be given in a
+ structured form, see :ref:`info-field-lists`.
+
+ .. rubric:: options
+
+ .. rst:directive:option:: async
+ :type: no value
+
+ Indicate the function is an async function.
+
+ .. versionadded:: 2.1
+
+ .. rst:directive:option:: canonical
+ :type: full qualified name including module name
+
+ Describe the location where the object is defined if the object is
+ imported from other modules
+
+ .. versionadded:: 4.0
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the function's arguments will be emitted on a single logical
+ line, overriding :confval:`python_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+ .. rst:directive:option:: single-line-type-parameter-list
+ :type: no value
+
+ Ensure that the function's type parameters are emitted on a single
+ logical line, overriding :confval:`python_maximum_signature_line_length`
+ and :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+
+.. rst:directive:: .. py:data:: name
+
+ Describes global data in a module, including both variables and values used
+ as "defined constants." Class and object attributes are not documented
+ using this environment.
+
+ .. rubric:: options
+
+ .. rst:directive:option:: type: type of the variable
+ :type: text
+
+ .. versionadded:: 2.4
+
+ .. rst:directive:option:: value: initial value of the variable
+ :type: text
+
+ .. versionadded:: 2.4
+
+ .. rst:directive:option:: canonical
+ :type: full qualified name including module name
+
+ Describe the location where the object is defined if the object is
+ imported from other modules
+
+ .. versionadded:: 4.0
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+.. rst:directive:: .. py:exception:: name
+ .. py:exception:: name(parameters)
+ .. py:exception:: name[type parameters](parameters)
+
+ Describes an exception class.
+ The signature can, but need not include parentheses with constructor arguments,
+ or may optionally include type parameters (see :pep:`695`).
+
+ .. rubric:: options
+
+ .. rst:directive:option:: final
+ :type: no value
+
+ Indicate the class is a final class.
+
+ .. versionadded:: 3.1
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ See :rst:dir:`py:class:single-line-parameter-list`.
+
+ .. versionadded:: 7.1
+
+ .. rst:directive:option:: single-line-type-parameter-list
+ :type: no value
+
+ See :rst:dir:`py:class:single-line-type-parameter-list`.
+
+ .. versionadded:: 7.1
+
+.. rst:directive:: .. py:class:: name
+ .. py:class:: name(parameters)
+ .. py:class:: name[type parameters](parameters)
+
+ Describes a class.
+ The signature can optionally include type parameters (see :pep:`695`)
+ or parentheses with parameters which will be shown as the constructor arguments.
+ See also :ref:`signatures`.
+
+ Methods and attributes belonging to the class should be placed in this
+ directive's body. If they are placed outside, the supplied name should
+ contain the class name so that cross-references still work. Example::
+
+ .. py:class:: Foo
+
+ .. py:method:: quux()
+
+ -- or --
+
+ .. py:class:: Bar
+
+ .. py:method:: Bar.quux()
+
+ The first way is the preferred one.
+
+ .. rubric:: options
+
+ .. rst:directive:option:: canonical
+ :type: full qualified name including module name
+
+ Describe the location where the object is defined if the object is
+ imported from other modules
+
+ .. versionadded:: 4.0
+
+ .. rst:directive:option:: final
+ :type: no value
+
+ Indicate the class is a final class.
+
+ .. versionadded:: 3.1
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the class constructor's arguments will be emitted on a single
+ logical line, overriding :confval:`python_maximum_signature_line_length`
+ and :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+ .. rst:directive:option:: single-line-type-parameter-list
+ :type: no value
+
+ Ensure that the class type parameters are emitted on a single logical
+ line, overriding :confval:`python_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+.. rst:directive:: .. py:attribute:: name
+
+ Describes an object data attribute. The description should include
+ information about the type of the data to be expected and whether it may be
+ changed directly.
+
+ .. rubric:: options
+
+ .. rst:directive:option:: type: type of the attribute
+ :type: text
+
+ .. versionadded:: 2.4
+
+ .. rst:directive:option:: value: initial value of the attribute
+ :type: text
+
+ .. versionadded:: 2.4
+
+ .. rst:directive:option:: canonical
+ :type: full qualified name including module name
+
+ Describe the location where the object is defined if the object is
+ imported from other modules
+
+ .. versionadded:: 4.0
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+.. rst:directive:: .. py:property:: name
+
+ Describes an object property.
+
+ .. versionadded:: 4.0
+
+ .. rubric:: options
+
+ .. rst:directive:option:: abstractmethod
+ :type: no value
+
+ Indicate the property is abstract.
+
+ .. rst:directive:option:: classmethod
+ :type: no value
+
+ Indicate the property is a classmethod.
+
+ .. versionadded:: 4.2
+
+ .. rst:directive:option:: type: type of the property
+ :type: text
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+.. rst:directive:: .. py:method:: name(parameters)
+ .. py:method:: name[type parameters](parameters)
+
+ Describes an object method. The parameters should not include the ``self``
+ parameter. The description should include similar information to that
+ described for ``function``. See also :ref:`signatures` and
+ :ref:`info-field-lists`.
+
+ .. rubric:: options
+
+ .. rst:directive:option:: abstractmethod
+ :type: no value
+
+ Indicate the method is an abstract method.
+
+ .. versionadded:: 2.1
+
+ .. rst:directive:option:: async
+ :type: no value
+
+ Indicate the method is an async method.
+
+ .. versionadded:: 2.1
+
+ .. rst:directive:option:: canonical
+ :type: full qualified name including module name
+
+ Describe the location where the object is defined if the object is
+ imported from other modules
+
+ .. versionadded:: 4.0
+
+ .. rst:directive:option:: classmethod
+ :type: no value
+
+ Indicate the method is a class method.
+
+ .. versionadded:: 2.1
+
+ .. rst:directive:option:: final
+ :type: no value
+
+ Indicate the method is a final method.
+
+ .. versionadded:: 3.1
+
+ .. rst::directive:option:: module
+ :type: text
+
+ Describe the location where the object is defined. The default value is
+ the module specified by :rst:dir:`py:currentmodule`.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the method's arguments will be emitted on a single logical
+ line, overriding :confval:`python_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+ .. rst:directive:option:: single-line-type-parameter-list
+ :type: no value
+
+ Ensure that the method's type parameters are emitted on a single logical
+ line, overriding :confval:`python_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.2
+
+ .. rst:directive:option:: staticmethod
+ :type: no value
+
+ Indicate the method is a static method.
+
+ .. versionadded:: 2.1
+
+
+.. rst:directive:: .. py:staticmethod:: name(parameters)
+ .. py:staticmethod:: name[type parameters](parameters)
+
+ Like :rst:dir:`py:method`, but indicates that the method is a static method.
+
+ .. versionadded:: 0.4
+
+.. rst:directive:: .. py:classmethod:: name(parameters)
+ .. py:classmethod:: name[type parameters](parameters)
+
+ Like :rst:dir:`py:method`, but indicates that the method is a class method.
+
+ .. versionadded:: 0.6
+
+.. rst:directive:: .. py:decorator:: name
+ .. py:decorator:: name(parameters)
+ .. py:decorator:: name[type parameters](parameters)
+
+ Describes a decorator function. The signature should represent the usage as
+ a decorator. For example, given the functions
+
+ .. code-block:: python
+
+ def removename(func):
+ func.__name__ = ''
+ return func
+
+ def setnewname(name):
+ def decorator(func):
+ func.__name__ = name
+ return func
+ return decorator
+
+ the descriptions should look like this::
+
+ .. py:decorator:: removename
+
+ Remove name of the decorated function.
+
+ .. py:decorator:: setnewname(name)
+
+ Set name of the decorated function to *name*.
+
+ (as opposed to ``.. py:decorator:: removename(func)``.)
+
+ There is no ``py:deco`` role to link to a decorator that is marked up with
+ this directive; rather, use the :rst:role:`py:func` role.
+
+ .. rst:directive:option:: single-line-parameter-list
+ :type: no value
+
+ Ensures that the decorator's arguments will be emitted on a single logical
+ line, overriding :confval:`python_maximum_signature_line_length` and
+ :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.1
+
+ .. rst:directive:option:: single-line-type-parameter-list
+ :type: no value
+
+ Ensure that the decorator's type parameters are emitted on a single
+ logical line, overriding :confval:`python_maximum_signature_line_length`
+ and :confval:`maximum_signature_line_length`.
+
+ .. versionadded:: 7.2
+
+.. rst:directive:: .. py:decoratormethod:: name
+ .. py:decoratormethod:: name(signature)
+ .. py:decoratormethod:: name[type parameters](signature)
+
+ Same as :rst:dir:`py:decorator`, but for decorators that are methods.
+
+ Refer to a decorator method using the :rst:role:`py:meth` role.
+
+.. _signatures:
+
+Python Signatures
+-----------------
+
+Signatures of functions, methods and class constructors can be given like they
+would be written in Python.
+
+Default values for optional arguments can be given (but if they contain commas,
+they will confuse the signature parser). Python 3-style argument annotations
+can also be given as well as return type annotations::
+
+ .. py:function:: compile(source : string, filename, symbol='file') -> ast object
+
+For functions with optional parameters that don't have default values
+(typically functions implemented in C extension modules without keyword
+argument support), you can use brackets to specify the optional parts:
+
+.. py:function:: compile(source[, filename[, symbol]])
+ :no-contents-entry:
+ :no-index-entry:
+
+It is customary to put the opening bracket before the comma.
+
+Python 3.12 introduced *type parameters*, which are type variables
+declared directly within the class or function definition:
+
+.. code:: python
+
+ class AnimalList[AnimalT](list[AnimalT]):
+ ...
+
+ def add[T](a: T, b: T) -> T:
+ return a + b
+
+The corresponding reStructuredText documentation would be:
+
+.. code:: rst
+
+ .. py:class:: AnimalList[AnimalT]
+
+ .. py:function:: add[T](a: T, b: T) -> T
+
+See :pep:`695` and :pep:`696` for details and the full specification.
+
+.. _info-field-lists:
+
+Info field lists
+----------------
+
+.. versionadded:: 0.4
+.. versionchanged:: 3.0
+
+ meta fields are added.
+
+Inside Python object description directives, reST field lists with these fields
+are recognized and formatted nicely:
+
+* ``param``, ``parameter``, ``arg``, ``argument``, ``key``, ``keyword``:
+ Description of a parameter.
+* ``type``: Type of a parameter. Creates a link if possible.
+* ``raises``, ``raise``, ``except``, ``exception``: That (and when) a specific
+ exception is raised.
+* ``var``, ``ivar``, ``cvar``: Description of a variable.
+* ``vartype``: Type of a variable. Creates a link if possible.
+* ``returns``, ``return``: Description of the return value.
+* ``rtype``: Return type. Creates a link if possible.
+* ``meta``: Add metadata to description of the python object. The metadata will
+ not be shown on output document. For example, ``:meta private:`` indicates
+ the python object is private member. It is used in
+ :py:mod:`sphinx.ext.autodoc` for filtering members.
+
+.. note::
+
+ In current release, all ``var``, ``ivar`` and ``cvar`` are represented as
+ "Variable". There is no difference at all.
+
+The field names must consist of one of these keywords and an argument (except
+for ``returns`` and ``rtype``, which do not need an argument). This is best
+explained by an example::
+
+ .. py:function:: send_message(sender, recipient, message_body, [priority=1])
+
+ Send a message to a recipient
+
+ :param str sender: The person sending the message
+ :param str recipient: The recipient of the message
+ :param str message_body: The body of the message
+ :param priority: The priority of the message, can be a number 1-5
+ :type priority: integer or None
+ :return: the message id
+ :rtype: int
+ :raises ValueError: if the message_body exceeds 160 characters
+ :raises TypeError: if the message_body is not a basestring
+
+This will render like this:
+
+.. py:function:: send_message(sender, recipient, message_body, [priority=1])
+ :no-contents-entry:
+ :no-index-entry:
+
+ Send a message to a recipient
+
+ :param str sender: The person sending the message
+ :param str recipient: The recipient of the message
+ :param str message_body: The body of the message
+ :param priority: The priority of the message, can be a number 1-5
+ :type priority: int or None
+ :return: the message id
+ :rtype: int
+ :raises ValueError: if the message_body exceeds 160 characters
+ :raises TypeError: if the message_body is not a basestring
+
+It is also possible to combine parameter type and description, if the type is a
+single word, like this::
+
+ :param int priority: The priority of the message, can be a number 1-5
+
+.. versionadded:: 1.5
+
+Container types such as lists and dictionaries can be linked automatically
+using the following syntax::
+
+ :type priorities: list(int)
+ :type priorities: list[int]
+ :type mapping: dict(str, int)
+ :type mapping: dict[str, int]
+ :type point: tuple(float, float)
+ :type point: tuple[float, float]
+
+Multiple types in a type field will be linked automatically if separated by the
+word "or"::
+
+ :type an_arg: int or None
+ :vartype a_var: str or int
+ :rtype: float or str
+
+.. _python-roles:
+
+Cross-referencing Python objects
+--------------------------------
+
+The following roles refer to objects in modules and are possibly hyperlinked if
+a matching identifier is found:
+
+.. rst:role:: py:mod
+
+ Reference a module; a dotted name may be used. This should also be used for
+ package names.
+
+.. rst:role:: py:func
+
+ Reference a Python function; dotted names may be used. The role text needs
+ not include trailing parentheses to enhance readability; they will be added
+ automatically by Sphinx if the :confval:`add_function_parentheses` config
+ value is ``True`` (the default).
+
+.. rst:role:: py:data
+
+ Reference a module-level variable.
+
+.. rst:role:: py:const
+
+ Reference a "defined" constant. This may be a Python variable that is not
+ intended to be changed.
+
+.. rst:role:: py:class
+
+ Reference a class; a dotted name may be used.
+
+.. rst:role:: py:meth
+
+ Reference a method of an object. The role text can include the type name
+ and the method name; if it occurs within the description of a type, the type
+ name can be omitted. A dotted name may be used.
+
+.. rst:role:: py:attr
+
+ Reference a data attribute of an object.
+
+ .. note:: The role is also able to refer to property.
+
+.. rst:role:: py:exc
+
+ Reference an exception. A dotted name may be used.
+
+.. rst:role:: py:obj
+
+ Reference an object of unspecified type. Useful e.g. as the
+ :confval:`default_role`.
+
+ .. versionadded:: 0.4
+
+The name enclosed in this markup can include a module name and/or a class name.
+For example, ``:py:func:`filter``` could refer to a function named ``filter``
+in the current module, or the built-in function of that name. In contrast,
+``:py:func:`foo.filter``` clearly refers to the ``filter`` function in the
+``foo`` module.
+
+Normally, names in these roles are searched first without any further
+qualification, then with the current module name prepended, then with the
+current module and class name (if any) prepended. If you prefix the name with
+a dot, this order is reversed. For example, in the documentation of Python's
+:mod:`codecs` module, ``:py:func:`open``` always refers to the built-in
+function, while ``:py:func:`.open``` refers to :func:`codecs.open`.
+
+A similar heuristic is used to determine whether the name is an attribute of
+the currently documented class.
+
+Also, if the name is prefixed with a dot, and no exact match is found, the
+target is taken as a suffix and all object names with that suffix are searched.
+For example, ``:py:meth:`.TarFile.close``` references the
+``tarfile.TarFile.close()`` function, even if the current module is not
+``tarfile``. Since this can get ambiguous, if there is more than one possible
+match, you will get a warning from Sphinx.
+
+Note that you can combine the ``~`` and ``.`` prefixes:
+``:py:meth:`~.TarFile.close``` will reference the ``tarfile.TarFile.close()``
+method, but the visible link caption will only be ``close()``.
diff --git a/doc/usage/domains/restructuredtext.rst b/doc/usage/domains/restructuredtext.rst
new file mode 100644
index 0000000..3a936a6
--- /dev/null
+++ b/doc/usage/domains/restructuredtext.rst
@@ -0,0 +1,99 @@
+.. highlight:: rst
+
+===========================
+The reStructuredText Domain
+===========================
+
+.. versionadded:: 1.0
+
+The reStructuredText domain (name **rst**) provides the following directives:
+
+.. rst:directive:: .. rst:directive:: name
+
+ Describes a reST directive. The *name* can be a single directive name or
+ actual directive syntax (`..` prefix and `::` suffix) with arguments that
+ will be rendered differently. For example::
+
+ .. rst:directive:: foo
+
+ Foo description.
+
+ .. rst:directive:: .. bar:: baz
+
+ Bar description.
+
+ will be rendered as:
+
+ .. rst:directive:: foo
+ :no-contents-entry:
+ :no-index-entry:
+
+ Foo description.
+
+ .. rst:directive:: .. bar:: baz
+ :no-contents-entry:
+ :no-index-entry:
+
+ Bar description.
+
+.. rst:directive:: .. rst:directive:option:: name
+
+ Describes an option for reST directive. The *name* can be a single option
+ name or option name with arguments which separated with colon (``:``).
+ For example::
+
+ .. rst:directive:: toctree
+
+ .. rst:directive:option:: caption: caption of ToC
+
+ .. rst:directive:option:: glob
+
+ will be rendered as:
+
+ .. rst:directive:: toctree
+ :no-index:
+
+ .. rst:directive:option:: caption: caption of ToC
+ :no-index:
+
+ .. rst:directive:option:: glob
+ :no-index:
+
+ .. rubric:: options
+
+ .. rst:directive:option:: type: description of argument
+ :type: text
+
+ Describe the type of option value.
+
+ For example::
+
+ .. rst:directive:: toctree
+
+ .. rst:directive:option:: maxdepth
+ :type: integer or no value
+
+ .. versionadded:: 2.1
+
+.. rst:directive:: .. rst:role:: name
+
+ Describes a reST role. For example::
+
+ .. rst:role:: foo
+
+ Foo description.
+
+ will be rendered as:
+
+ .. rst:role:: foo
+ :no-contents-entry:
+ :no-index-entry:
+
+ Foo description.
+
+.. _rst-roles:
+
+These roles are provided to refer to the described objects:
+
+.. rst:role:: rst:dir
+ rst:role
diff --git a/doc/usage/domains/standard.rst b/doc/usage/domains/standard.rst
new file mode 100644
index 0000000..59b7e72
--- /dev/null
+++ b/doc/usage/domains/standard.rst
@@ -0,0 +1,95 @@
+.. highlight:: rst
+
+===================
+The Standard Domain
+===================
+
+.. versionadded:: 1.0
+
+The so-called "standard" domain collects all markup that doesn't warrant a
+domain of its own. Its directives and roles are not prefixed with a domain
+name.
+
+The standard domain is also where custom object descriptions, added using the
+:func:`~sphinx.application.Sphinx.add_object_type` API, are placed.
+
+There is a set of directives allowing documenting command-line programs:
+
+.. rst:directive:: .. option:: name args, name args, ...
+
+ Describes a command line argument or switch. Option argument names should
+ be enclosed in angle brackets. Examples::
+
+ .. option:: dest_dir
+
+ Destination directory.
+
+ .. option:: -m <module>, --module <module>
+
+ Run a module as a script.
+
+ The directive will create cross-reference targets for the given options,
+ referenceable by :rst:role:`option` (in the example case, you'd use something
+ like ``:option:`dest_dir```, ``:option:`-m```, or ``:option:`--module```).
+
+ .. versionchanged:: 5.3
+
+ One can cross-reference including an option value: ``:option:`--module=foobar```,
+ ,``:option:`--module[=foobar]``` or ``:option:`--module foobar```.
+
+ Use :confval:`option_emphasise_placeholders` for parsing of
+ "variable part" of a literal text (similarly to the :rst:role:`samp` role).
+
+ ``cmdoption`` directive is a deprecated alias for the ``option`` directive.
+
+.. rst:directive:: .. envvar:: name
+
+ Describes an environment variable that the documented code or program uses
+ or defines. Referenceable by :rst:role:`envvar`.
+
+.. rst:directive:: .. program:: name
+
+ Like :rst:dir:`py:currentmodule`, this directive produces no output.
+ Instead, it serves to notify Sphinx that all following :rst:dir:`option`
+ directives document options for the program called *name*.
+
+ If you use :rst:dir:`program`, you have to qualify the references in your
+ :rst:role:`option` roles by the program name, so if you have the following
+ situation ::
+
+ .. program:: rm
+
+ .. option:: -r
+
+ Work recursively.
+
+ .. program:: svn
+
+ .. option:: -r <revision>
+
+ Specify the revision to work upon.
+
+ then ``:option:`rm -r``` would refer to the first option, while
+ ``:option:`svn -r``` would refer to the second one.
+
+ If ``None`` is passed to the argument, the directive will reset the
+ current program name.
+
+ The program name may contain spaces (in case you want to document
+ subcommands like ``svn add`` and ``svn commit`` separately).
+
+ .. versionadded:: 0.5
+
+There is also a very generic object description directive, which is not tied to
+any domain:
+
+.. rst:directive:: .. describe:: text
+ .. object:: text
+
+ This directive produces the same formatting as the specific ones provided by
+ domains, but does not create index entries or cross-referencing targets.
+ Example::
+
+ .. describe:: PAPER
+
+ You can set this variable to select a paper size.
diff --git a/doc/usage/extensions/autodoc.rst b/doc/usage/extensions/autodoc.rst
index 1498ae9..c920de8 100644
--- a/doc/usage/extensions/autodoc.rst
+++ b/doc/usage/extensions/autodoc.rst
@@ -40,7 +40,7 @@ you can also enable the :mod:`napoleon <sphinx.ext.napoleon>` extension.
:mod:`napoleon <sphinx.ext.napoleon>` is a preprocessor that converts your
docstrings to correct reStructuredText before :mod:`autodoc` processes them.
-.. _Google: https://github.com/google/styleguide/blob/gh-pages/pyguide.md#38-comments-and-docstrings
+.. _Google: https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings
.. _NumPy: https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard
diff --git a/doc/usage/extensions/coverage.rst b/doc/usage/extensions/coverage.rst
index 1390ebf..b9c493b 100644
--- a/doc/usage/extensions/coverage.rst
+++ b/doc/usage/extensions/coverage.rst
@@ -9,7 +9,7 @@ This extension features one additional builder, the :class:`CoverageBuilder`.
.. class:: CoverageBuilder
To use this builder, activate the coverage extension in your configuration
- file and give ``-b coverage`` on the command line.
+ file and give ``-M coverage`` on the command line.
.. todo:: Write this section.
@@ -62,7 +62,7 @@ should check:
.. confval:: coverage_statistics_to_report
- Print a tabluar report of the coverage statistics to the coverage report.
+ Print a tabular report of the coverage statistics to the coverage report.
``True`` by default.
Example output:
@@ -81,7 +81,7 @@ should check:
.. confval:: coverage_statistics_to_stdout
- Print a tabluar report of the coverage statistics to standard output.
+ Print a tabular report of the coverage statistics to standard output.
``False`` by default.
Example output:
diff --git a/doc/usage/extensions/example_google.py b/doc/usage/extensions/example_google.py
index 434fa3b..7cd24d1 100644
--- a/doc/usage/extensions/example_google.py
+++ b/doc/usage/extensions/example_google.py
@@ -290,6 +290,7 @@ class ExampleClass:
def _private_without_docstring(self):
pass
+
class ExamplePEP526Class:
"""The summary line for a class docstring should fit on one line.
diff --git a/doc/usage/extensions/example_numpy.py b/doc/usage/extensions/example_numpy.py
index 2346b1e..d258ca3 100644
--- a/doc/usage/extensions/example_numpy.py
+++ b/doc/usage/extensions/example_numpy.py
@@ -266,7 +266,7 @@ class ExampleClass:
self.attr3 = param3 #: Doc comment *inline* with attribute
#: list(str): Doc comment *before* attribute, with type specified
- self.attr4 = ["attr4"]
+ self.attr4 = ['attr4']
self.attr5 = None
"""str: Docstring *after* attribute, with type specified."""
@@ -274,7 +274,7 @@ class ExampleClass:
@property
def readonly_property(self):
"""str: Properties should be documented in their getter method."""
- return "readonly_property"
+ return 'readonly_property'
@property
def readwrite_property(self):
@@ -284,7 +284,7 @@ class ExampleClass:
If the setter method contains notable behavior, it should be
mentioned here.
"""
- return ["readwrite_property"]
+ return ['readwrite_property']
@readwrite_property.setter
def readwrite_property(self, value):
diff --git a/doc/usage/extensions/graphviz.rst b/doc/usage/extensions/graphviz.rst
index c134f6d..231bd36 100644
--- a/doc/usage/extensions/graphviz.rst
+++ b/doc/usage/extensions/graphviz.rst
@@ -211,7 +211,7 @@ There are also these config values:
:program:`sphinx-build` command line via the :option:`-D <sphinx-build -D>`
option should be preferable, like this::
- sphinx-build -b html -D graphviz_dot=C:\graphviz\bin\dot.exe . _build/html
+ sphinx-build -M html -D graphviz_dot=C:\graphviz\bin\dot.exe . _build
.. confval:: graphviz_dot_args
diff --git a/doc/usage/extensions/intersphinx.rst b/doc/usage/extensions/intersphinx.rst
index 5aaaf9f..e81719f 100644
--- a/doc/usage/extensions/intersphinx.rst
+++ b/doc/usage/extensions/intersphinx.rst
@@ -218,6 +218,7 @@ The Intersphinx extension provides the following role.
e.g., ``:external:py:class:`zipfile.ZipFile```, or
- ``:external:reftype:`target```,
e.g., ``:external:doc:`installation```.
+ With this shorthand, the domain is assumed to be ``std``.
If you would like to constrain the lookup to a specific external project,
then the key of the project, as specified in :confval:`intersphinx_mapping`,
diff --git a/doc/usage/extensions/math.rst b/doc/usage/extensions/math.rst
index df4fc6b..251d721 100644
--- a/doc/usage/extensions/math.rst
+++ b/doc/usage/extensions/math.rst
@@ -75,7 +75,7 @@ are built:
:program:`sphinx-build` command line via the :option:`-D <sphinx-build -D>`
option should be preferable, like this::
- sphinx-build -b html -D imgmath_latex=C:\tex\latex.exe . _build/html
+ sphinx-build -M html -D imgmath_latex=C:\tex\latex.exe . _build
This value should only contain the path to the latex executable, not further
arguments; use :confval:`imgmath_latex_args` for that purpose.
@@ -316,5 +316,5 @@ package jsMath_. It provides this config value:
.. _dvisvgm: https://dvisvgm.de/
.. _dvisvgm FAQ: https://dvisvgm.de/FAQ
.. _MathJax: https://www.mathjax.org/
-.. _jsMath: http://www.math.union.edu/~dpvc/jsmath/
+.. _jsMath: https://www.math.union.edu/~dpvc/jsmath/
.. _LaTeX preview package: https://www.gnu.org/software/auctex/preview-latex.html
diff --git a/doc/usage/extensions/napoleon.rst b/doc/usage/extensions/napoleon.rst
index d2391da..4b077de 100644
--- a/doc/usage/extensions/napoleon.rst
+++ b/doc/usage/extensions/napoleon.rst
@@ -63,14 +63,14 @@ Getting Started
~~~~~~~~~~~~~~~
1. After :doc:`setting up Sphinx </usage/quickstart>` to build your docs,
- enable napoleon in the Sphinx `conf.py` file::
+ enable napoleon in the Sphinx ``conf.py`` file::
# conf.py
# Add napoleon to the extensions list
extensions = ['sphinx.ext.napoleon']
-2. Use `sphinx-apidoc` to build your API documentation::
+2. Use ``sphinx-apidoc`` to build your API documentation::
$ sphinx-apidoc -f -o docs/source projectdir
@@ -271,8 +271,8 @@ Configuration
-------------
Listed below are all the settings used by napoleon and their default
-values. These settings can be changed in the Sphinx `conf.py` file. Make
-sure that "sphinx.ext.napoleon" is enabled in `conf.py`::
+values. These settings can be changed in the Sphinx ``conf.py`` file. Make
+sure that "sphinx.ext.napoleon" is enabled in ``conf.py``::
# conf.py
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index fd8cdd8..167c7aa 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -12,8 +12,10 @@ looking for guidance on extending Sphinx, refer to :doc:`/development/index`.
restructuredtext/index
markdown
+ referencing
configuration
builders/index
+ domains/index
extensions/index
theming
advanced/intl
diff --git a/doc/usage/installation.rst b/doc/usage/installation.rst
index e85603e..13dc6a9 100644
--- a/doc/usage/installation.rst
+++ b/doc/usage/installation.rst
@@ -64,7 +64,7 @@ a Python distribution such as `Anaconda`__.
__ https://brew.sh/
__ https://www.macports.org/
-__ https://www.anaconda.com/download/#macos
+__ https://www.anaconda.com/download
Homebrew
~~~~~~~~
@@ -199,9 +199,7 @@ use the following command.
$ python -m venv .venv
-You can read more about them in the `Python Packaging User Guide`_.
-
-.. _Python Packaging User Guide: https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment
+.. seealso:: :mod:`venv` -- creating virtual environments
.. warning::
diff --git a/doc/usage/quickstart.rst b/doc/usage/quickstart.rst
index 0773f60..fcbfa80 100644
--- a/doc/usage/quickstart.rst
+++ b/doc/usage/quickstart.rst
@@ -18,7 +18,7 @@ its :doc:`significant extensibility capabilities </development/index>`.
The goal of this document is to give you a quick taste of what Sphinx is and
how you might use it. When you're done here, you can check out the
:doc:`installation guide </usage/installation>` followed by the intro to the
-default markup format used by Sphinx, :doc:`reStucturedText
+default markup format used by Sphinx, :doc:`reStructuredText
</usage/restructuredtext/index>`.
For a great "introduction" to writing docs in general -- the whys and hows, see
@@ -130,11 +130,11 @@ docs. A build is started with the :program:`sphinx-build` program:
.. code-block:: console
- $ sphinx-build -b html sourcedir builddir
+ $ sphinx-build -M html sourcedir outputdir
-where *sourcedir* is the :term:`source directory`, and *builddir* is the
+where *sourcedir* is the :term:`source directory`, and *outputdir* is the
directory in which you want to place the built documentation.
-The :option:`-b <sphinx-build -b>` option selects a builder; in this example
+The :option:`-M <sphinx-build -M>` option selects a builder; in this example
Sphinx will build HTML files.
|more| Refer to the :doc:`sphinx-build man page </man/sphinx-build>` for all
@@ -220,7 +220,7 @@ Each domain will have special rules for how the signatures can look like, and
make the formatted output look pretty, or add specific features like links to
parameter types, e.g. in the C/C++ domains.
-|more| See :doc:`/usage/restructuredtext/domains` for all the available domains
+|more| See :doc:`/usage/domains/index` for all the available domains
and their directives/roles.
diff --git a/doc/usage/referencing.rst b/doc/usage/referencing.rst
new file mode 100644
index 0000000..c2ad715
--- /dev/null
+++ b/doc/usage/referencing.rst
@@ -0,0 +1,258 @@
+.. _xref-syntax:
+
+========================
+Cross-referencing syntax
+========================
+
+Cross-references are generated by many semantic interpreted text roles.
+Basically, you only need to write ``:role:`target```, and a link will be
+created to the item named *target* of the type indicated by *role*. The link's
+text will be the same as *target*.
+
+There are some additional facilities, however, that make cross-referencing
+roles more versatile:
+
+* You may supply an explicit title and reference target, like in reST direct
+ hyperlinks: ``:role:`title <target>``` will refer to *target*, but the link
+ text will be *title*.
+
+* If you prefix the content with ``!``, no reference/hyperlink will be created.
+
+* If you prefix the content with ``~``, the link text will only be the last
+ component of the target. For example, ``:py:meth:`~Queue.Queue.get``` will
+ refer to ``Queue.Queue.get`` but only display ``get`` as the link text. This
+ does not work with all cross-reference roles, but is domain specific.
+
+ In HTML output, the link's ``title`` attribute (that is e.g. shown as a
+ tool-tip on mouse-hover) will always be the full target name.
+
+
+.. _any-role:
+
+Cross-referencing anything
+--------------------------
+
+.. rst:role:: any
+
+ .. versionadded:: 1.3
+
+ This convenience role tries to do its best to find a valid target for its
+ reference text.
+
+ * First, it tries standard cross-reference targets that would be referenced
+ by :rst:role:`doc`, :rst:role:`ref` or :rst:role:`option`.
+
+ Custom objects added to the standard domain by extensions (see
+ :meth:`.Sphinx.add_object_type`) are also searched.
+
+ * Then, it looks for objects (targets) in all loaded domains. It is up to
+ the domains how specific a match must be. For example, in the Python
+ domain a reference of ``:any:`Builder``` would match the
+ ``sphinx.builders.Builder`` class.
+
+ If none or multiple targets are found, a warning will be emitted. In the
+ case of multiple targets, you can change "any" to a specific role.
+
+ This role is a good candidate for setting :confval:`default_role`. If you
+ do, you can write cross-references without a lot of markup overhead. For
+ example, in this Python function documentation::
+
+ .. function:: install()
+
+ This function installs a `handler` for every signal known by the
+ `signal` module. See the section `about-signals` for more information.
+
+ there could be references to a glossary term (usually ``:term:`handler```), a
+ Python module (usually ``:py:mod:`signal``` or ``:mod:`signal```) and a
+ section (usually ``:ref:`about-signals```).
+
+ The :rst:role:`any` role also works together with the
+ :mod:`~sphinx.ext.intersphinx` extension: when no local cross-reference is
+ found, all object types of intersphinx inventories are also searched.
+
+Cross-referencing objects
+-------------------------
+
+These roles are described with their respective domains:
+
+* :ref:`Python <python-roles>`
+* :ref:`C <c-roles>`
+* :ref:`C++ <cpp-roles>`
+* :ref:`JavaScript <js-roles>`
+* :ref:`ReST <rst-roles>`
+
+
+.. _ref-role:
+
+Cross-referencing arbitrary locations
+-------------------------------------
+
+.. rst:role:: ref
+
+ To support cross-referencing to arbitrary locations in any document, the
+ standard reST labels are used. For this to work label names must be unique
+ throughout the entire documentation. There are two ways in which you can
+ refer to labels:
+
+ * If you place a label directly before a section title, you can reference to
+ it with ``:ref:`label-name```. For example::
+
+ .. _my-reference-label:
+
+ Section to cross-reference
+ --------------------------
+
+ This is the text of the section.
+
+ It refers to the section itself, see :ref:`my-reference-label`.
+
+ The ``:ref:`` role would then generate a link to the section, with the
+ link title being "Section to cross-reference". This works just as well
+ when section and reference are in different source files.
+
+ Automatic labels also work with figures. For example::
+
+ .. _my-figure:
+
+ .. figure:: whatever
+
+ Figure caption
+
+ In this case, a reference ``:ref:`my-figure``` would insert a reference
+ to the figure with link text "Figure caption".
+
+ The same works for tables that are given an explicit caption using the
+ :dudir:`table` directive.
+
+ * Labels that aren't placed before a section title can still be referenced,
+ but you must give the link an explicit title, using this syntax:
+ ``:ref:`Link title <label-name>```.
+
+ .. note::
+
+ Reference labels must start with an underscore. When referencing a label,
+ the underscore must be omitted (see examples above).
+
+ Using :rst:role:`ref` is advised over standard reStructuredText links to
+ sections (like ```Section title`_``) because it works across files, when
+ section headings are changed, will raise warnings if incorrect, and works
+ for all builders that support cross-references.
+
+
+Cross-referencing documents
+---------------------------
+
+.. versionadded:: 0.6
+
+There is also a way to directly link to documents:
+
+.. rst:role:: doc
+
+ Link to the specified document; the document name can be specified in
+ absolute or relative fashion. For example, if the reference
+ ``:doc:`parrot``` occurs in the document ``sketches/index``, then the link
+ refers to ``sketches/parrot``. If the reference is ``:doc:`/people``` or
+ ``:doc:`../people```, the link refers to ``people``.
+
+ If no explicit link text is given (like usual: ``:doc:`Monty Python members
+ </people>```), the link caption will be the title of the given document.
+
+
+Referencing downloadable files
+------------------------------
+
+.. versionadded:: 0.6
+
+.. rst:role:: download
+
+ This role lets you link to files within your source tree that are not reST
+ documents that can be viewed, but files that can be downloaded.
+
+ When you use this role, the referenced file is automatically marked for
+ inclusion in the output when building (obviously, for HTML output only).
+ All downloadable files are put into a ``_downloads/<unique hash>/``
+ subdirectory of the output directory; duplicate filenames are handled.
+
+ An example::
+
+ See :download:`this example script <../example.py>`.
+
+ The given filename is usually relative to the directory the current source
+ file is contained in, but if it absolute (starting with ``/``), it is taken
+ as relative to the top source directory.
+
+ The ``example.py`` file will be copied to the output directory, and a
+ suitable link generated to it.
+
+ Not to show unavailable download links, you should wrap whole paragraphs that
+ have this role::
+
+ .. only:: builder_html
+
+ See :download:`this example script <../example.py>`.
+
+Cross-referencing figures by figure number
+------------------------------------------
+
+.. versionadded:: 1.3
+
+.. versionchanged:: 1.5
+ :rst:role:`numref` role can also refer sections.
+ And :rst:role:`numref` allows ``{name}`` for the link text.
+
+.. rst:role:: numref
+
+ Link to the specified figures, tables, code-blocks and sections; the standard
+ reST labels are used. When you use this role, it will insert a reference to
+ the figure with link text by its figure number like "Fig. 1.1".
+
+ If an explicit link text is given (as usual: ``:numref:`Image of Sphinx (Fig.
+ %s) <my-figure>```), the link caption will serve as title of the reference.
+ As placeholders, `%s` and `{number}` get replaced by the figure
+ number and `{name}` by the figure caption.
+ If no explicit link text is given, the :confval:`numfig_format` setting is
+ used as fall-back default.
+
+ If :confval:`numfig` is ``False``, figures are not numbered,
+ so this role inserts not a reference but the label or the link text.
+
+Cross-referencing other items of interest
+-----------------------------------------
+
+The following roles do possibly create a cross-reference, but do not refer to
+objects:
+
+.. rst:role:: envvar
+
+ An environment variable. Index entries are generated. Also generates a link
+ to the matching :rst:dir:`envvar` directive, if it exists.
+
+.. rst:role:: token
+
+ The name of a grammar token (used to create links between
+ :rst:dir:`productionlist` directives).
+
+.. rst:role:: keyword
+
+ The name of a keyword in Python. This creates a link to a reference label
+ with that name, if it exists.
+
+.. rst:role:: option
+
+ A command-line option to an executable program. This generates a link to
+ a :rst:dir:`option` directive, if it exists.
+
+
+The following role creates a cross-reference to a term in a
+:ref:`glossary <glossary-directive>`:
+
+.. rst:role:: term
+
+ Reference to a term in a glossary. A glossary is created using the
+ ``glossary`` directive containing a definition list with terms and
+ definitions. It does not have to be in the same file as the ``term`` markup,
+ for example the Python docs have one global glossary in the ``glossary.rst``
+ file.
+
+ If you use a term that's not explained in a glossary, you'll get a warning
+ during build.
diff --git a/doc/usage/restructuredtext/basics.rst b/doc/usage/restructuredtext/basics.rst
index cc3c615..7aab544 100644
--- a/doc/usage/restructuredtext/basics.rst
+++ b/doc/usage/restructuredtext/basics.rst
@@ -289,7 +289,7 @@ information.
Roles
-----
-A role or "custom interpreted text role" (:duref:`ref <roles>`) is an inline
+A role or "custom interpreted text role" (:dupage:`ref <roles>`) is an inline
piece of explicit markup. It signifies that the enclosed text should be
interpreted in a specific way. Sphinx uses this to provide semantic markup and
cross-referencing of identifiers, as described in the appropriate section. The
diff --git a/doc/usage/restructuredtext/directives.rst b/doc/usage/restructuredtext/directives.rst
index 1fd5b66..ff42524 100644
--- a/doc/usage/restructuredtext/directives.rst
+++ b/doc/usage/restructuredtext/directives.rst
@@ -9,7 +9,7 @@ of explicit markup. While Docutils provides a number of directives, Sphinx
provides many more and uses directives as one of the primary extension
mechanisms.
-See :doc:`/usage/restructuredtext/domains` for roles added by domains.
+See :doc:`/usage/domains/index` for roles added by domains.
.. seealso::
@@ -323,6 +323,18 @@ units as well as normal text.
.. deprecated:: 3.1
Use :func:`spam` instead.
+.. rst:directive:: .. versionremoved:: version
+
+ Similar to :rst:dir:`versionadded`, but describes when the feature was removed.
+ An explanation may be provided to inform the reader what to use instead,
+ or why the feature was removed.
+ Example::
+
+ .. versionremoved:: 4.0
+ The :func:`spam` function is more flexible, and should be used instead.
+
+ .. versionadded:: 7.3
+
.. rst:directive:: seealso
Many sections include a list of references to module documentation or
@@ -341,7 +353,7 @@ units as well as normal text.
Module :py:mod:`zipfile`
Documentation of the :py:mod:`zipfile` standard module.
- `GNU tar manual, Basic Tar Format <http://link>`_
+ `GNU tar manual, Basic Tar Format <https://link>`_
Documentation for tar archive files, including GNU tar extensions.
There's also a "short form" allowed that looks like this::
@@ -544,9 +556,9 @@ __ https://pygments.org/docs/lexers
def some_function():
interesting = False
- print 'This line is highlighted.'
- print 'This one is not...'
- print '...but this one is.'
+ print('This line is highlighted.')
+ print('This one is not...')
+ print('...but this one is.')
.. versionadded:: 1.1
.. versionchanged:: 1.6.6
@@ -576,7 +588,7 @@ __ https://pygments.org/docs/lexers
:caption: this.py
:name: this-py
- print 'Explicit is better than implicit.'
+ print('Explicit is better than implicit.')
In order to cross-reference a code-block using either the
:rst:role:`ref` or the :rst:role:`numref` role, it is necessary
@@ -881,7 +893,7 @@ Index-generating markup
Sphinx automatically creates index entries from all object descriptions (like
functions, classes or attributes) like discussed in
-:doc:`/usage/restructuredtext/domains`.
+:doc:`/usage/domains/index`.
However, there is also explicit markup available, to make the index more
comprehensive and enable index entries in documents where information is not
@@ -1042,7 +1054,7 @@ Including content based on tags
Undefined tags are false, defined tags (via the ``-t`` command-line option or
within :file:`conf.py`, see :ref:`here <conf-tags>`) are true. Boolean
- expressions, also using parentheses (like ``html and (latex or draft)``) are
+ expressions, also using parentheses (like ``(latex or html) and draft``) are
supported.
The *format* and the *name* of the current builder (``html``, ``latex`` or
diff --git a/doc/usage/restructuredtext/domains.rst b/doc/usage/restructuredtext/domains.rst
index 729e651..3d9bd49 100644
--- a/doc/usage/restructuredtext/domains.rst
+++ b/doc/usage/restructuredtext/domains.rst
@@ -1,2303 +1,278 @@
-.. highlight:: rst
+==============
+MOVED: Domains
+==============
-=======
-Domains
-=======
-
-.. versionadded:: 1.0
-
-Originally, Sphinx was conceived for a single project, the documentation of the
-Python language. Shortly afterwards, it was made available for everyone as a
-documentation tool, but the documentation of Python modules remained deeply
-built in -- the most fundamental directives, like ``function``, were designed
-for Python objects. Since Sphinx has become somewhat popular, interest
-developed in using it for many different purposes: C/C++ projects, JavaScript,
-or even reStructuredText markup (like in this documentation).
-
-While this was always possible, it is now much easier to easily support
-documentation of projects using different programming languages or even ones
-not supported by the main Sphinx distribution, by providing a **domain** for
-every such purpose.
-
-A domain is a collection of markup (reStructuredText :term:`directive`\ s and
-:term:`role`\ s) to describe and link to :term:`object`\ s belonging together,
-e.g. elements of a programming language. Directive and role names in a domain
-have names like ``domain:name``, e.g. ``py:function``. Domains can also
-provide custom indices (like the Python Module Index).
-
-Having domains means that there are no naming problems when one set of
-documentation wants to refer to e.g. C++ and Python classes. It also means
-that extensions that support the documentation of whole new languages are much
-easier to write.
-
-This section describes what the domains that are included with Sphinx provide.
-The domain API is documented as well, in the section :ref:`domain-api`.
-
-
-.. _basic-domain-markup:
-
-Basic Markup
-------------
-
-Most domains provide a number of :dfn:`object description directives`, used to
-describe specific objects provided by modules. Each directive requires one or
-more signatures to provide basic information about what is being described, and
-the content should be the description.
-
-A domain will typically keep an internal index of all entities to aid
-cross-referencing.
-Typically it will also add entries in the shown general index.
-If you want to suppress the addition of an entry in the shown index, you can
-give the directive option flag ``:no-index-entry:``.
-If you want to exclude the object description from the table of contents, you
-can give the directive option flag ``:no-contents-entry:``.
-If you want to typeset an object description, without even making it available
-for cross-referencing, you can give the directive option flag ``:no-index:``
-(which implies ``:no-index-entry:``).
-If you do not want to typeset anything, you can give the directive option flag
-``:no-typesetting:``. This can for example be used to create only a target and
-index entry for later reference.
-Though, note that not every directive in every domain may support these
-options.
-
-.. versionadded:: 3.2
- The directive option ``noindexentry`` in the Python, C, C++, and Javascript
- domains.
-
-.. versionadded:: 5.2.3
- The directive option ``:nocontentsentry:`` in the Python, C, C++, Javascript,
- and reStructuredText domains.
-
-.. versionadded:: 7.2
- The directive option ``no-typesetting`` in the Python, C, C++, Javascript,
- and reStructuredText domains.
-
-.. versionchanged:: 7.2
-
- * The directive option ``:noindex:`` was renamed
- to ``:no-index:``.
- * The directive option ``:noindexentry:`` was renamed
- to ``:no-index-entry:``.
- * The directive option ``:nocontentsentry:`` was renamed
- to ``:no-contents-entry:``.
-
- The previous names are retained as aliases,
- but will be deprecated and removed
- in a future version of Sphinx.
-
-An example using a Python domain directive::
-
- .. py:function:: spam(eggs)
- ham(eggs)
-
- Spam or ham the foo.
-
-This describes the two Python functions ``spam`` and ``ham``. (Note that when
-signatures become too long, you can break them if you add a backslash to lines
-that are continued in the next line. Example::
-
- .. py:function:: filterwarnings(action, message='', category=Warning, \
- module='', lineno=0, append=False)
- :no-index:
-
-(This example also shows how to use the ``:no-index:`` flag.)
-
-The domains also provide roles that link back to these object descriptions.
-For example, to link to one of the functions described in the example above,
-you could say ::
-
- The function :py:func:`spam` does a similar thing.
-
-As you can see, both directive and role names contain the domain name and the
-directive name.
-
-The directive option ``:no-typesetting:`` can be used to create a target
-(and index entry) which can later be referenced
-by the roles provided by the domain.
-This is particularly useful for literate programming:
-
-.. code-block:: rst
-
- .. py:function:: spam(eggs)
- :no-typesetting:
-
- .. code::
-
- def spam(eggs):
- pass
-
- The function :py:func:`spam` does nothing.
-
-.. rubric:: Default Domain
-
-For documentation describing objects from solely one domain, authors will not
-have to state again its name at each directive, role, etc... after
-having specified a default. This can be done either via the config
-value :confval:`primary_domain` or via this directive:
-
-.. rst:directive:: .. default-domain:: name
-
- Select a new default domain. While the :confval:`primary_domain` selects a
- global default, this only has an effect within the same file.
-
-If no other default is selected, the Python domain (named ``py``) is the
-default one, mostly for compatibility with documentation written for older
-versions of Sphinx.
-
-Directives and roles that belong to the default domain can be mentioned without
-giving the domain name, i.e. ::
-
- .. function:: pyfunc()
-
- Describes a Python function.
-
- Reference to :func:`pyfunc`.
-
-Cross-referencing syntax
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-For cross-reference roles provided by domains, the same facilities exist as for
-general cross-references. See :ref:`xref-syntax`.
-
-In short:
-
-* You may supply an explicit title and reference target: ``:role:`title
- <target>``` will refer to *target*, but the link text will be *title*.
-
-* If you prefix the content with ``!``, no reference/hyperlink will be created.
-
-* If you prefix the content with ``~``, the link text will only be the last
- component of the target. For example, ``:py:meth:`~Queue.Queue.get``` will
- refer to ``Queue.Queue.get`` but only display ``get`` as the link text.
-
-.. _python-domain:
-
-The Python Domain
------------------
-
-The Python domain (name **py**) provides the following directives for module
-declarations:
-
-.. rst:directive:: .. py:module:: name
-
- This directive marks the beginning of the description of a module (or package
- submodule, in which case the name should be fully qualified, including the
- package name). A description of the module such as the docstring can be
- placed in the body of the directive.
-
- This directive will also cause an entry in the global module index.
-
- .. versionchanged:: 5.2
-
- Module directives support body content.
-
- .. rubric:: options
-
- .. rst:directive:option:: platform: platforms
- :type: comma separated list
-
- Indicate platforms which the module is available (if it is available on
- all platforms, the option should be omitted). The keys are short
- identifiers; examples that are in use include "IRIX", "Mac", "Windows"
- and "Unix". It is important to use a key which has already been used when
- applicable.
-
- .. rst:directive:option:: synopsis: purpose
- :type: text
-
- Consist of one sentence describing the module's purpose -- it is currently
- only used in the Global Module Index.
-
- .. rst:directive:option:: deprecated
- :type: no argument
-
- Mark a module as deprecated; it will be designated as such in various
- locations then.
-
-
-
-.. rst:directive:: .. py:currentmodule:: name
-
- This directive tells Sphinx that the classes, functions etc. documented from
- here are in the given module (like :rst:dir:`py:module`), but it will not
- create index entries, an entry in the Global Module Index, or a link target
- for :rst:role:`py:mod`. This is helpful in situations where documentation
- for things in a module is spread over multiple files or sections -- one
- location has the :rst:dir:`py:module` directive, the others only
- :rst:dir:`py:currentmodule`.
-
-The following directives are provided for module and class contents:
-
-.. rst:directive:: .. py:function:: name(parameters)
- .. py:function:: name[type parameters](parameters)
-
- Describes a module-level function.
- The signature should include the parameters,
- together with optional type parameters,
- as given in the Python function definition, see :ref:`signatures`.
- For example::
-
- .. py:function:: Timer.repeat(repeat=3, number=1_000_000)
- .. py:function:: add[T](a: T, b: T) -> T
-
- For methods you should use :rst:dir:`py:method`.
-
- The description normally includes information about the parameters required
- and how they are used (especially whether mutable objects passed as
- parameters are modified), side effects, and possible exceptions.
-
- This information can (in any ``py`` directive) optionally be given in a
- structured form, see :ref:`info-field-lists`.
-
- .. rubric:: options
-
- .. rst:directive:option:: async
- :type: no value
-
- Indicate the function is an async function.
-
- .. versionadded:: 2.1
-
- .. rst:directive:option:: canonical
- :type: full qualified name including module name
-
- Describe the location where the object is defined if the object is
- imported from other modules
-
- .. versionadded:: 4.0
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the function's arguments will be emitted on a single logical
- line, overriding :confval:`python_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
- .. rst:directive:option:: single-line-type-parameter-list
- :type: no value
-
- Ensure that the function's type parameters are emitted on a single
- logical line, overriding :confval:`python_maximum_signature_line_length`
- and :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-
-.. rst:directive:: .. py:data:: name
-
- Describes global data in a module, including both variables and values used
- as "defined constants." Class and object attributes are not documented
- using this environment.
-
- .. rubric:: options
-
- .. rst:directive:option:: type: type of the variable
- :type: text
-
- .. versionadded:: 2.4
-
- .. rst:directive:option:: value: initial value of the variable
- :type: text
-
- .. versionadded:: 2.4
-
- .. rst:directive:option:: canonical
- :type: full qualified name including module name
-
- Describe the location where the object is defined if the object is
- imported from other modules
-
- .. versionadded:: 4.0
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
-.. rst:directive:: .. py:exception:: name
- .. py:exception:: name(parameters)
- .. py:exception:: name[type parmeters](parameters)
-
- Describes an exception class.
- The signature can, but need not include parentheses with constructor arguments,
- or may optionally include type parameters (see :pep:`695`).
-
- .. rubric:: options
-
- .. rst:directive:option:: final
- :type: no value
-
- Indicate the class is a final class.
-
- .. versionadded:: 3.1
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- See :rst:dir:`py:class:single-line-parameter-list`.
-
- .. versionadded:: 7.1
-
- .. rst:directive:option:: single-line-type-parameter-list
- :type: no value
-
- See :rst:dir:`py:class:single-line-type-parameter-list`.
-
- .. versionadded:: 7.1
-
-.. rst:directive:: .. py:class:: name
- .. py:class:: name(parameters)
- .. py:class:: name[type parmeters](parameters)
-
- Describes a class.
- The signature can optionally include type parameters (see :pep:`695`)
- or parentheses with parameters which will be shown as the constructor arguments.
- See also :ref:`signatures`.
-
- Methods and attributes belonging to the class should be placed in this
- directive's body. If they are placed outside, the supplied name should
- contain the class name so that cross-references still work. Example::
-
- .. py:class:: Foo
-
- .. py:method:: quux()
-
- -- or --
-
- .. py:class:: Bar
-
- .. py:method:: Bar.quux()
-
- The first way is the preferred one.
-
- .. rubric:: options
-
- .. rst:directive:option:: canonical
- :type: full qualified name including module name
-
- Describe the location where the object is defined if the object is
- imported from other modules
-
- .. versionadded:: 4.0
-
- .. rst:directive:option:: final
- :type: no value
-
- Indicate the class is a final class.
-
- .. versionadded:: 3.1
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the class constructor's arguments will be emitted on a single
- logical line, overriding :confval:`python_maximum_signature_line_length`
- and :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
- .. rst:directive:option:: single-line-type-parameter-list
- :type: no value
-
- Ensure that the class type parameters are emitted on a single logical
- line, overriding :confval:`python_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
-.. rst:directive:: .. py:attribute:: name
-
- Describes an object data attribute. The description should include
- information about the type of the data to be expected and whether it may be
- changed directly.
-
- .. rubric:: options
-
- .. rst:directive:option:: type: type of the attribute
- :type: text
-
- .. versionadded:: 2.4
-
- .. rst:directive:option:: value: initial value of the attribute
- :type: text
-
- .. versionadded:: 2.4
-
- .. rst:directive:option:: canonical
- :type: full qualified name including module name
-
- Describe the location where the object is defined if the object is
- imported from other modules
-
- .. versionadded:: 4.0
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
-.. rst:directive:: .. py:property:: name
-
- Describes an object property.
-
- .. versionadded:: 4.0
-
- .. rubric:: options
-
- .. rst:directive:option:: abstractmethod
- :type: no value
-
- Indicate the property is abstract.
-
- .. rst:directive:option:: classmethod
- :type: no value
-
- Indicate the property is a classmethod.
-
- .. versionaddedd: 4.2
-
- .. rst:directive:option:: type: type of the property
- :type: text
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
-.. rst:directive:: .. py:method:: name(parameters)
- .. py:method:: name[type parameters](parameters)
-
- Describes an object method. The parameters should not include the ``self``
- parameter. The description should include similar information to that
- described for ``function``. See also :ref:`signatures` and
- :ref:`info-field-lists`.
-
- .. rubric:: options
-
- .. rst:directive:option:: abstractmethod
- :type: no value
-
- Indicate the method is an abstract method.
-
- .. versionadded:: 2.1
-
- .. rst:directive:option:: async
- :type: no value
-
- Indicate the method is an async method.
-
- .. versionadded:: 2.1
-
- .. rst:directive:option:: canonical
- :type: full qualified name including module name
-
- Describe the location where the object is defined if the object is
- imported from other modules
-
- .. versionadded:: 4.0
-
- .. rst:directive:option:: classmethod
- :type: no value
-
- Indicate the method is a class method.
-
- .. versionadded:: 2.1
-
- .. rst:directive:option:: final
- :type: no value
-
- Indicate the class is a final method.
-
- .. versionadded:: 3.1
-
- .. rst::directive:option:: module
- :type: text
-
- Describe the location where the object is defined. The default value is
- the module specified by :rst:dir:`py:currentmodule`.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the method's arguments will be emitted on a single logical
- line, overriding :confval:`python_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
- .. rst:directive:option:: single-line-type-parameter-list
- :type: no value
-
- Ensure that the method's type parameters are emitted on a single logical
- line, overriding :confval:`python_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.2
-
- .. rst:directive:option:: staticmethod
- :type: no value
-
- Indicate the method is a static method.
-
- .. versionadded:: 2.1
-
-
-.. rst:directive:: .. py:staticmethod:: name(parameters)
- .. py:staticmethod:: name[type parameters](parameters)
-
- Like :rst:dir:`py:method`, but indicates that the method is a static method.
-
- .. versionadded:: 0.4
-
-.. rst:directive:: .. py:classmethod:: name(parameters)
- .. py:classmethod:: name[type parameters](parameters)
-
- Like :rst:dir:`py:method`, but indicates that the method is a class method.
-
- .. versionadded:: 0.6
-
-.. rst:directive:: .. py:decorator:: name
- .. py:decorator:: name(parameters)
- .. py:decorator:: name[type parameters](parameters)
-
- Describes a decorator function. The signature should represent the usage as
- a decorator. For example, given the functions
-
- .. code-block:: python
-
- def removename(func):
- func.__name__ = ''
- return func
-
- def setnewname(name):
- def decorator(func):
- func.__name__ = name
- return func
- return decorator
-
- the descriptions should look like this::
-
- .. py:decorator:: removename
-
- Remove name of the decorated function.
-
- .. py:decorator:: setnewname(name)
-
- Set name of the decorated function to *name*.
-
- (as opposed to ``.. py:decorator:: removename(func)``.)
-
- There is no ``py:deco`` role to link to a decorator that is marked up with
- this directive; rather, use the :rst:role:`py:func` role.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the decorator's arguments will be emitted on a single logical
- line, overriding :confval:`python_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
- .. rst:directive:option:: single-line-type-parameter-list
- :type: no value
-
- Ensure that the decorator's type parameters are emitted on a single
- logical line, overriding :confval:`python_maximum_signature_line_length`
- and :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.2
-
-.. rst:directive:: .. py:decoratormethod:: name
- .. py:decoratormethod:: name(signature)
- .. py:decoratormethod:: name[type parameters](signature)
-
- Same as :rst:dir:`py:decorator`, but for decorators that are methods.
-
- Refer to a decorator method using the :rst:role:`py:meth` role.
-
-.. _signatures:
-
-Python Signatures
-~~~~~~~~~~~~~~~~~
-
-Signatures of functions, methods and class constructors can be given like they
-would be written in Python.
-
-Default values for optional arguments can be given (but if they contain commas,
-they will confuse the signature parser). Python 3-style argument annotations
-can also be given as well as return type annotations::
-
- .. py:function:: compile(source : string, filename, symbol='file') -> ast object
-
-For functions with optional parameters that don't have default values
-(typically functions implemented in C extension modules without keyword
-argument support), you can use brackets to specify the optional parts:
-
-.. py:function:: compile(source[, filename[, symbol]])
- :no-index:
-
-It is customary to put the opening bracket before the comma.
-
-Python 3.12 introduced *type parameters*, which are type variables
-declared directly within the class or function definition:
-
-.. code:: python
-
- class AnimalList[AnimalT](list[AnimalT]):
- ...
-
- def add[T](a: T, b: T) -> T:
- return a + b
-
-The corresponding reStructuredText documentation would be:
-
-.. code:: rst
-
- .. py:class:: AnimalList[AnimalT]
-
- .. py:function:: add[T](a: T, b: T) -> T
-
-See :pep:`695` and :pep:`696` for details and the full specification.
-
-.. _info-field-lists:
-
-Info field lists
-~~~~~~~~~~~~~~~~
-
-.. versionadded:: 0.4
-.. versionchanged:: 3.0
-
- meta fields are added.
-
-Inside Python object description directives, reST field lists with these fields
-are recognized and formatted nicely:
-
-* ``param``, ``parameter``, ``arg``, ``argument``, ``key``, ``keyword``:
- Description of a parameter.
-* ``type``: Type of a parameter. Creates a link if possible.
-* ``raises``, ``raise``, ``except``, ``exception``: That (and when) a specific
- exception is raised.
-* ``var``, ``ivar``, ``cvar``: Description of a variable.
-* ``vartype``: Type of a variable. Creates a link if possible.
-* ``returns``, ``return``: Description of the return value.
-* ``rtype``: Return type. Creates a link if possible.
-* ``meta``: Add metadata to description of the python object. The metadata will
- not be shown on output document. For example, ``:meta private:`` indicates
- the python object is private member. It is used in
- :py:mod:`sphinx.ext.autodoc` for filtering members.
-
-.. note::
-
- In current release, all ``var``, ``ivar`` and ``cvar`` are represented as
- "Variable". There is no difference at all.
-
-The field names must consist of one of these keywords and an argument (except
-for ``returns`` and ``rtype``, which do not need an argument). This is best
-explained by an example::
-
- .. py:function:: send_message(sender, recipient, message_body, [priority=1])
-
- Send a message to a recipient
-
- :param str sender: The person sending the message
- :param str recipient: The recipient of the message
- :param str message_body: The body of the message
- :param priority: The priority of the message, can be a number 1-5
- :type priority: integer or None
- :return: the message id
- :rtype: int
- :raises ValueError: if the message_body exceeds 160 characters
- :raises TypeError: if the message_body is not a basestring
-
-This will render like this:
-
-.. py:function:: send_message(sender, recipient, message_body, [priority=1])
- :no-index:
-
- Send a message to a recipient
-
- :param str sender: The person sending the message
- :param str recipient: The recipient of the message
- :param str message_body: The body of the message
- :param priority: The priority of the message, can be a number 1-5
- :type priority: int or None
- :return: the message id
- :rtype: int
- :raises ValueError: if the message_body exceeds 160 characters
- :raises TypeError: if the message_body is not a basestring
-
-It is also possible to combine parameter type and description, if the type is a
-single word, like this::
-
- :param int priority: The priority of the message, can be a number 1-5
-
-.. versionadded:: 1.5
-
-Container types such as lists and dictionaries can be linked automatically
-using the following syntax::
-
- :type priorities: list(int)
- :type priorities: list[int]
- :type mapping: dict(str, int)
- :type mapping: dict[str, int]
- :type point: tuple(float, float)
- :type point: tuple[float, float]
-
-Multiple types in a type field will be linked automatically if separated by the
-word "or"::
-
- :type an_arg: int or None
- :vartype a_var: str or int
- :rtype: float or str
-
-.. _python-roles:
-
-Cross-referencing Python objects
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The following roles refer to objects in modules and are possibly hyperlinked if
-a matching identifier is found:
-
-.. rst:role:: py:mod
-
- Reference a module; a dotted name may be used. This should also be used for
- package names.
-
-.. rst:role:: py:func
-
- Reference a Python function; dotted names may be used. The role text needs
- not include trailing parentheses to enhance readability; they will be added
- automatically by Sphinx if the :confval:`add_function_parentheses` config
- value is ``True`` (the default).
-
-.. rst:role:: py:data
-
- Reference a module-level variable.
-
-.. rst:role:: py:const
-
- Reference a "defined" constant. This may be a Python variable that is not
- intended to be changed.
-
-.. rst:role:: py:class
-
- Reference a class; a dotted name may be used.
-
-.. rst:role:: py:meth
-
- Reference a method of an object. The role text can include the type name
- and the method name; if it occurs within the description of a type, the type
- name can be omitted. A dotted name may be used.
-
-.. rst:role:: py:attr
-
- Reference a data attribute of an object.
-
- .. note:: The role is also able to refer to property.
-
-.. rst:role:: py:exc
-
- Reference an exception. A dotted name may be used.
-
-.. rst:role:: py:obj
-
- Reference an object of unspecified type. Useful e.g. as the
- :confval:`default_role`.
-
- .. versionadded:: 0.4
-
-The name enclosed in this markup can include a module name and/or a class name.
-For example, ``:py:func:`filter``` could refer to a function named ``filter``
-in the current module, or the built-in function of that name. In contrast,
-``:py:func:`foo.filter``` clearly refers to the ``filter`` function in the
-``foo`` module.
-
-Normally, names in these roles are searched first without any further
-qualification, then with the current module name prepended, then with the
-current module and class name (if any) prepended. If you prefix the name with
-a dot, this order is reversed. For example, in the documentation of Python's
-:mod:`codecs` module, ``:py:func:`open``` always refers to the built-in
-function, while ``:py:func:`.open``` refers to :func:`codecs.open`.
-
-A similar heuristic is used to determine whether the name is an attribute of
-the currently documented class.
-
-Also, if the name is prefixed with a dot, and no exact match is found, the
-target is taken as a suffix and all object names with that suffix are searched.
-For example, ``:py:meth:`.TarFile.close``` references the
-``tarfile.TarFile.close()`` function, even if the current module is not
-``tarfile``. Since this can get ambiguous, if there is more than one possible
-match, you will get a warning from Sphinx.
-
-Note that you can combine the ``~`` and ``.`` prefixes:
-``:py:meth:`~.TarFile.close``` will reference the ``tarfile.TarFile.close()``
-method, but the visible link caption will only be ``close()``.
-
-
-.. _c-domain:
-
-The C Domain
-------------
-
-The C domain (name **c**) is suited for documentation of C API.
-
-.. rst:directive:: .. c:member:: declaration
- .. c:var:: declaration
-
- Describes a C struct member or variable. Example signature::
-
- .. c:member:: PyObject *PyTypeObject.tp_bases
-
- The difference between the two directives is only cosmetic.
-
-.. rst:directive:: .. c:function:: function prototype
-
- Describes a C function. The signature should be given as in C, e.g.::
-
- .. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
-
- Note that you don't have to backslash-escape asterisks in the signature, as
- it is not parsed by the reST inliner.
-
- In the description of a function you can use the following info fields
- (see also :ref:`info-field-lists`).
-
- * ``param``, ``parameter``, ``arg``, ``argument``,
- Description of a parameter.
- * ``type``: Type of a parameter,
- written as if passed to the :rst:role:`c:expr` role.
- * ``returns``, ``return``: Description of the return value.
- * ``rtype``: Return type,
- written as if passed to the :rst:role:`c:expr` role.
- * ``retval``, ``retvals``: An alternative to ``returns`` for describing
- the result of the function.
-
- .. versionadded:: 4.3
- The ``retval`` field type.
-
- For example::
-
- .. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
-
- :param type: description of the first parameter.
- :param nitems: description of the second parameter.
- :returns: a result.
- :retval NULL: under some conditions.
- :retval NULL: under some other conditions as well.
-
- which renders as
-
- .. c:function:: PyObject *PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
-
- ..
- ** for some editors (e.g., vim) to stop bold-highlighting the source
-
- :param type: description of the first parameter.
- :param nitems: description of the second parameter.
- :returns: a result.
- :retval NULL: under some conditions.
- :retval NULL: under some other conditions as well.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the function's parameters will be emitted on a single logical
- line, overriding :confval:`c_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-
-.. rst:directive:: .. c:macro:: name
- .. c:macro:: name(arg list)
-
- Describes a C macro, i.e., a C-language ``#define``, without the replacement
- text.
-
- In the description of a macro you can use the same info fields as for the
- :rst:dir:`c:function` directive.
-
- .. versionadded:: 3.0
- The function style variant.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the macro's parameters will be emitted on a single logical
- line, overriding :confval:`c_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-.. rst:directive:: .. c:struct:: name
-
- Describes a C struct.
-
- .. versionadded:: 3.0
-
-.. rst:directive:: .. c:union:: name
-
- Describes a C union.
-
- .. versionadded:: 3.0
-
-.. rst:directive:: .. c:enum:: name
-
- Describes a C enum.
-
- .. versionadded:: 3.0
-
-.. rst:directive:: .. c:enumerator:: name
-
- Describes a C enumerator.
-
- .. versionadded:: 3.0
-
-.. rst:directive:: .. c:type:: typedef-like declaration
- .. c:type:: name
-
- Describes a C type, either as a typedef, or the alias for an unspecified
- type.
-
-.. _c-roles:
-
-Cross-referencing C constructs
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The following roles create cross-references to C-language constructs if they
-are defined in the documentation:
-
-.. rst:role:: c:member
- c:data
- c:var
- c:func
- c:macro
- c:struct
- c:union
- c:enum
- c:enumerator
- c:type
-
- Reference a C declaration, as defined above.
- Note that :rst:role:`c:member`, :rst:role:`c:data`, and
- :rst:role:`c:var` are equivalent.
-
- .. versionadded:: 3.0
- The var, struct, union, enum, and enumerator roles.
-
-
-Anonymous Entities
-~~~~~~~~~~~~~~~~~~
-
-C supports anonymous structs, enums, and unions.
-For the sake of documentation they must be given some name that starts with
-``@``, e.g., ``@42`` or ``@data``.
-These names can also be used in cross-references,
-though nested symbols will be found even when omitted.
-The ``@...`` name will always be rendered as **[anonymous]** (possibly as a
-link).
-
-Example::
-
- .. c:struct:: Data
-
- .. c:union:: @data
-
- .. c:var:: int a
-
- .. c:var:: double b
-
- Explicit ref: :c:var:`Data.@data.a`. Short-hand ref: :c:var:`Data.a`.
-
-This will be rendered as:
-
-.. c:struct:: Data
- :no-contents-entry:
- :no-index-entry:
-
- .. c:union:: @data
- :no-contents-entry:
- :no-index-entry:
-
- .. c:var:: int a
- :no-contents-entry:
- :no-index-entry:
-
- .. c:var:: double b
- :no-contents-entry:
- :no-index-entry:
-
-Explicit ref: :c:var:`Data.@data.a`. Short-hand ref: :c:var:`Data.a`.
-
-.. versionadded:: 3.0
-
-
-Aliasing Declarations
-~~~~~~~~~~~~~~~~~~~~~
-
-.. c:namespace-push:: @alias
-
-Sometimes it may be helpful list declarations elsewhere than their main
-documentation, e.g., when creating a synopsis of an interface.
-The following directive can be used for this purpose.
-
-.. rst:directive:: .. c:alias:: name
-
- Insert one or more alias declarations. Each entity can be specified
- as they can in the :rst:role:`c:any` role.
-
- For example::
-
- .. c:var:: int data
- .. c:function:: int f(double k)
-
- .. c:alias:: data
- f
-
- becomes
-
- .. c:var:: int data
- .. c:function:: int f(double k)
-
- .. c:alias:: data
- f
-
- .. versionadded:: 3.2
-
-
- .. rubric:: Options
-
- .. rst:directive:option:: maxdepth: int
-
- Insert nested declarations as well, up to the total depth given.
- Use 0 for infinite depth and 1 for just the mentioned declaration.
- Defaults to 1.
-
- .. versionadded:: 3.3
-
- .. rst:directive:option:: noroot
-
- Skip the mentioned declarations and only render nested declarations.
- Requires ``maxdepth`` either 0 or at least 2.
-
- .. versionadded:: 3.5
-
-
-.. c:namespace-pop::
-
-
-Inline Expressions and Types
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. rst:role:: c:expr
- c:texpr
-
- Insert a C expression or type either as inline code (``cpp:expr``)
- or inline text (``cpp:texpr``). For example::
-
- .. c:var:: int a = 42
-
- .. c:function:: int f(int i)
-
- An expression: :c:expr:`a * f(a)` (or as text: :c:texpr:`a * f(a)`).
-
- A type: :c:expr:`const Data*`
- (or as text :c:texpr:`const Data*`).
-
- will be rendered as follows:
-
- .. c:var:: int a = 42
- :no-contents-entry:
- :no-index-entry:
-
- .. c:function:: int f(int i)
- :no-contents-entry:
- :no-index-entry:
-
- An expression: :c:expr:`a * f(a)` (or as text: :c:texpr:`a * f(a)`).
-
- A type: :c:expr:`const Data*`
- (or as text :c:texpr:`const Data*`).
-
- .. versionadded:: 3.0
-
-
-Namespacing
-~~~~~~~~~~~
-
-.. versionadded:: 3.1
-
-The C language it self does not support namespacing, but it can sometimes be
-useful to emulate it in documentation, e.g., to show alternate declarations.
-The feature may also be used to document members of structs/unions/enums
-separate from their parent declaration.
-
-The current scope can be changed using three namespace directives. They manage
-a stack declarations where ``c:namespace`` resets the stack and changes a given
-scope.
-
-The ``c:namespace-push`` directive changes the scope to a given inner scope
-of the current one.
-
-The ``c:namespace-pop`` directive undoes the most recent
-``c:namespace-push`` directive.
-
-.. rst:directive:: .. c:namespace:: scope specification
-
- Changes the current scope for the subsequent objects to the given scope, and
- resets the namespace directive stack. Note that nested scopes can be
- specified by separating with a dot, e.g.::
-
- .. c:namespace:: Namespace1.Namespace2.SomeStruct.AnInnerStruct
-
- All subsequent objects will be defined as if their name were declared with
- the scope prepended. The subsequent cross-references will be searched for
- starting in the current scope.
-
- Using ``NULL`` or ``0`` as the scope will change to global scope.
-
-.. rst:directive:: .. c:namespace-push:: scope specification
-
- Change the scope relatively to the current scope. For example, after::
-
- .. c:namespace:: A.B
-
- .. c:namespace-push:: C.D
-
- the current scope will be ``A.B.C.D``.
-
-.. rst:directive:: .. c:namespace-pop::
-
- Undo the previous ``c:namespace-push`` directive (*not* just pop a scope).
- For example, after::
-
- .. c:namespace:: A.B
-
- .. c:namespace-push:: C.D
-
- .. c:namespace-pop::
-
- the current scope will be ``A.B`` (*not* ``A.B.C``).
-
- If no previous ``c:namespace-push`` directive has been used, but only a
- ``c:namespace`` directive, then the current scope will be reset to global
- scope. That is, ``.. c:namespace:: A.B`` is equivalent to::
-
- .. c:namespace:: NULL
-
- .. c:namespace-push:: A.B
-
-Configuration Variables
-~~~~~~~~~~~~~~~~~~~~~~~
-
-See :ref:`c-config`.
-
-
-.. _cpp-domain:
-
-The C++ Domain
---------------
-
-The C++ domain (name **cpp**) supports documenting C++ projects.
-
-Directives for Declaring Entities
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The following directives are available. All declarations can start with a
-visibility statement (``public``, ``private`` or ``protected``).
-
-.. rst:directive:: .. cpp:class:: class specifier
- .. cpp:struct:: class specifier
-
- Describe a class/struct, possibly with specification of inheritance, e.g.,::
-
- .. cpp:class:: MyClass : public MyBase, MyOtherBase
-
- The difference between :rst:dir:`cpp:class` and :rst:dir:`cpp:struct` is
- only cosmetic: the prefix rendered in the output, and the specifier shown
- in the index.
-
- The class can be directly declared inside a nested scope, e.g.,::
-
- .. cpp:class:: OuterScope::MyClass : public MyBase, MyOtherBase
-
- A class template can be declared::
-
- .. cpp:class:: template<typename T, std::size_t N> std::array
-
- or with a line break::
-
- .. cpp:class:: template<typename T, std::size_t N> \
- std::array
-
- Full and partial template specialisations can be declared::
-
- .. cpp:class:: template<> \
- std::array<bool, 256>
-
- .. cpp:class:: template<typename T> \
- std::array<T, 42>
-
- .. versionadded:: 2.0
- The :rst:dir:`cpp:struct` directive.
-
-.. rst:directive:: .. cpp:function:: (member) function prototype
-
- Describe a function or member function, e.g.,::
-
- .. cpp:function:: bool myMethod(int arg1, std::string arg2)
-
- A function with parameters and types.
-
- .. cpp:function:: bool myMethod(int, double)
-
- A function with unnamed parameters.
-
- .. cpp:function:: const T &MyClass::operator[](std::size_t i) const
-
- An overload for the indexing operator.
-
- .. cpp:function:: operator bool() const
-
- A casting operator.
-
- .. cpp:function:: constexpr void foo(std::string &bar[2]) noexcept
-
- A constexpr function.
-
- .. cpp:function:: MyClass::MyClass(const MyClass&) = default
-
- A copy constructor with default implementation.
-
- Function templates can also be described::
-
- .. cpp:function:: template<typename U> \
- void print(U &&u)
-
- and function template specialisations::
-
- .. cpp:function:: template<> \
- void print(int i)
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the function's parameters will be emitted on a single logical
- line, overriding :confval:`cpp_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-.. rst:directive:: .. cpp:member:: (member) variable declaration
- .. cpp:var:: (member) variable declaration
-
- Describe a variable or member variable, e.g.,::
-
- .. cpp:member:: std::string MyClass::myMember
-
- .. cpp:var:: std::string MyClass::myOtherMember[N][M]
-
- .. cpp:member:: int a = 42
-
- Variable templates can also be described::
-
- .. cpp:member:: template<class T> \
- constexpr T pi = T(3.1415926535897932385)
-
-.. rst:directive:: .. cpp:type:: typedef declaration
- .. cpp:type:: name
- .. cpp:type:: type alias declaration
-
- Describe a type as in a typedef declaration, a type alias declaration, or
- simply the name of a type with unspecified type, e.g.,::
-
- .. cpp:type:: std::vector<int> MyList
-
- A typedef-like declaration of a type.
-
- .. cpp:type:: MyContainer::const_iterator
-
- Declaration of a type alias with unspecified type.
-
- .. cpp:type:: MyType = std::unordered_map<int, std::string>
-
- Declaration of a type alias.
-
- A type alias can also be templated::
-
- .. cpp:type:: template<typename T> \
- MyContainer = std::vector<T>
-
- The example are rendered as follows.
-
- .. cpp:type:: std::vector<int> MyList
- :no-contents-entry:
- :no-index-entry:
-
- A typedef-like declaration of a type.
-
- .. cpp:type:: MyContainer::const_iterator
- :no-contents-entry:
- :no-index-entry:
-
- Declaration of a type alias with unspecified type.
-
- .. cpp:type:: MyType = std::unordered_map<int, std::string>
- :no-contents-entry:
- :no-index-entry:
-
- Declaration of a type alias.
-
- .. cpp:type:: template<typename T> \
- MyContainer = std::vector<T>
- :no-contents-entry:
- :no-index-entry:
-
-.. rst:directive:: .. cpp:enum:: unscoped enum declaration
- .. cpp:enum-struct:: scoped enum declaration
- .. cpp:enum-class:: scoped enum declaration
-
- Describe a (scoped) enum, possibly with the underlying type specified. Any
- enumerators declared inside an unscoped enum will be declared both in the
- enum scope and in the parent scope. Examples::
-
- .. cpp:enum:: MyEnum
-
- An unscoped enum.
-
- .. cpp:enum:: MySpecificEnum : long
-
- An unscoped enum with specified underlying type.
-
- .. cpp:enum-class:: MyScopedEnum
-
- A scoped enum.
-
- .. cpp:enum-struct:: protected MyScopedVisibilityEnum : std::underlying_type<MySpecificEnum>::type
-
- A scoped enum with non-default visibility, and with a specified
- underlying type.
-
-.. rst:directive:: .. cpp:enumerator:: name
- .. cpp:enumerator:: name = constant
-
- Describe an enumerator, optionally with its value defined, e.g.,::
-
- .. cpp:enumerator:: MyEnum::myEnumerator
-
- .. cpp:enumerator:: MyEnum::myOtherEnumerator = 42
-
-.. rst:directive:: .. cpp:union:: name
-
- Describe a union.
-
- .. versionadded:: 1.8
-
-.. rst:directive:: .. cpp:concept:: template-parameter-list name
-
- .. warning:: The support for concepts is experimental. It is based on the
- current draft standard and the Concepts Technical Specification.
- The features may change as they evolve.
-
- Describe a concept. It must have exactly 1 template parameter list. The name
- may be a nested name. Example::
-
- .. cpp:concept:: template<typename It> std::Iterator
-
- Proxy to an element of a notional sequence that can be compared,
- indirected, or incremented.
-
- **Notation**
-
- .. cpp:var:: It r
-
- An lvalue.
-
- **Valid Expressions**
-
- - :cpp:expr:`*r`, when :cpp:expr:`r` is dereferenceable.
- - :cpp:expr:`++r`, with return type :cpp:expr:`It&`, when
- :cpp:expr:`r` is incrementable.
-
- This will render as follows:
-
- .. cpp:concept:: template<typename It> std::Iterator
-
- Proxy to an element of a notional sequence that can be compared,
- indirected, or incremented.
-
- **Notation**
-
- .. cpp:var:: It r
-
- An lvalue.
-
- **Valid Expressions**
-
- - :cpp:expr:`*r`, when :cpp:expr:`r` is dereferenceable.
- - :cpp:expr:`++r`, with return type :cpp:expr:`It&`, when :cpp:expr:`r`
- is incrementable.
-
- .. versionadded:: 1.5
-
-
-Options
-^^^^^^^
-
-Some directives support options:
-
-- ``:no-index-entry:`` and ``:no-contents-entry:``, see :ref:`basic-domain-markup`.
-- ``:tparam-line-spec:``, for templated declarations.
- If specified, each template parameter will be rendered on a separate line.
-
- .. versionadded:: 1.6
-
-Anonymous Entities
-~~~~~~~~~~~~~~~~~~
-
-C++ supports anonymous namespaces, classes, enums, and unions.
-For the sake of documentation they must be given some name that starts with
-``@``, e.g., ``@42`` or ``@data``.
-These names can also be used in cross-references and (type) expressions,
-though nested symbols will be found even when omitted.
-The ``@...`` name will always be rendered as **[anonymous]** (possibly as a
-link).
-
-Example::
-
- .. cpp:class:: Data
-
- .. cpp:union:: @data
-
- .. cpp:var:: int a
-
- .. cpp:var:: double b
-
- Explicit ref: :cpp:var:`Data::@data::a`. Short-hand ref: :cpp:var:`Data::a`.
-
-This will be rendered as:
-
-.. cpp:class:: Data
- :no-contents-entry:
- :no-index-entry:
-
- .. cpp:union:: @data
- :no-contents-entry:
- :no-index-entry:
-
- .. cpp:var:: int a
- :no-contents-entry:
- :no-index-entry:
-
- .. cpp:var:: double b
- :no-contents-entry:
- :no-index-entry:
-
-Explicit ref: :cpp:var:`Data::@data::a`. Short-hand ref: :cpp:var:`Data::a`.
-
-.. versionadded:: 1.8
-
-
-Aliasing Declarations
-~~~~~~~~~~~~~~~~~~~~~
-
-Sometimes it may be helpful list declarations elsewhere than their main
-documentation, e.g., when creating a synopsis of a class interface.
-The following directive can be used for this purpose.
-
-.. rst:directive:: .. cpp:alias:: name or function signature
-
- Insert one or more alias declarations. Each entity can be specified
- as they can in the :rst:role:`cpp:any` role.
- If the name of a function is given (as opposed to the complete signature),
- then all overloads of the function will be listed.
-
- For example::
-
- .. cpp:alias:: Data::a
- overload_example::C::f
-
- becomes
-
- .. cpp:alias:: Data::a
- overload_example::C::f
-
- whereas::
-
- .. cpp:alias:: void overload_example::C::f(double d) const
- void overload_example::C::f(double d)
-
- becomes
-
- .. cpp:alias:: void overload_example::C::f(double d) const
- void overload_example::C::f(double d)
-
- .. versionadded:: 2.0
-
-
- .. rubric:: Options
-
- .. rst:directive:option:: maxdepth: int
-
- Insert nested declarations as well, up to the total depth given.
- Use 0 for infinite depth and 1 for just the mentioned declaration.
- Defaults to 1.
-
- .. versionadded:: 3.5
-
- .. rst:directive:option:: noroot
-
- Skip the mentioned declarations and only render nested declarations.
- Requires ``maxdepth`` either 0 or at least 2.
-
- .. versionadded:: 3.5
-
-
-Constrained Templates
-~~~~~~~~~~~~~~~~~~~~~
-
-.. warning:: The support for concepts is experimental. It is based on the
- current draft standard and the Concepts Technical Specification.
- The features may change as they evolve.
-
-.. note:: Sphinx does not currently support ``requires`` clauses.
-
-Placeholders
-^^^^^^^^^^^^
-
-Declarations may use the name of a concept to introduce constrained template
-parameters, or the keyword ``auto`` to introduce unconstrained template
-parameters::
-
- .. cpp:function:: void f(auto &&arg)
-
- A function template with a single unconstrained template parameter.
-
- .. cpp:function:: void f(std::Iterator it)
-
- A function template with a single template parameter, constrained by the
- Iterator concept.
-
-Template Introductions
-^^^^^^^^^^^^^^^^^^^^^^
-
-Simple constrained function or class templates can be declared with a `template
-introduction` instead of a template parameter list::
-
- .. cpp:function:: std::Iterator{It} void advance(It &it)
-
- A function template with a template parameter constrained to be an
- Iterator.
-
- .. cpp:class:: std::LessThanComparable{T} MySortedContainer
-
- A class template with a template parameter constrained to be
- LessThanComparable.
-
-They are rendered as follows.
-
-.. cpp:function:: std::Iterator{It} void advance(It &it)
- :no-contents-entry:
- :no-index-entry:
-
- A function template with a template parameter constrained to be an Iterator.
-
-.. cpp:class:: std::LessThanComparable{T} MySortedContainer
- :no-contents-entry:
- :no-index-entry:
-
- A class template with a template parameter constrained to be
- LessThanComparable.
-
-Note however that no checking is performed with respect to parameter
-compatibility. E.g., ``Iterator{A, B, C}`` will be accepted as an introduction
-even though it would not be valid C++.
-
-Inline Expressions and Types
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. rst:role:: cpp:expr
- cpp:texpr
-
- Insert a C++ expression or type either as inline code (``cpp:expr``)
- or inline text (``cpp:texpr``). For example::
-
- .. cpp:var:: int a = 42
-
- .. cpp:function:: int f(int i)
-
- An expression: :cpp:expr:`a * f(a)` (or as text: :cpp:texpr:`a * f(a)`).
-
- A type: :cpp:expr:`const MySortedContainer<int>&`
- (or as text :cpp:texpr:`const MySortedContainer<int>&`).
-
- will be rendered as follows:
-
- .. cpp:var:: int a = 42
- :no-contents-entry:
- :no-index-entry:
-
- .. cpp:function:: int f(int i)
- :no-contents-entry:
- :no-index-entry:
-
- An expression: :cpp:expr:`a * f(a)` (or as text: :cpp:texpr:`a * f(a)`).
-
- A type: :cpp:expr:`const MySortedContainer<int>&`
- (or as text :cpp:texpr:`const MySortedContainer<int>&`).
-
- .. versionadded:: 1.7
- The :rst:role:`cpp:expr` role.
-
- .. versionadded:: 1.8
- The :rst:role:`cpp:texpr` role.
-
-Namespacing
-~~~~~~~~~~~
-
-Declarations in the C++ domain are as default placed in global scope. The
-current scope can be changed using three namespace directives. They manage a
-stack declarations where ``cpp:namespace`` resets the stack and changes a given
-scope.
-
-The ``cpp:namespace-push`` directive changes the scope to a given inner scope
-of the current one.
-
-The ``cpp:namespace-pop`` directive undoes the most recent
-``cpp:namespace-push`` directive.
-
-.. rst:directive:: .. cpp:namespace:: scope specification
-
- Changes the current scope for the subsequent objects to the given scope, and
- resets the namespace directive stack. Note that the namespace does not need
- to correspond to C++ namespaces, but can end in names of classes, e.g.,::
-
- .. cpp:namespace:: Namespace1::Namespace2::SomeClass::AnInnerClass
-
- All subsequent objects will be defined as if their name were declared with
- the scope prepended. The subsequent cross-references will be searched for
- starting in the current scope.
-
- Using ``NULL``, ``0``, or ``nullptr`` as the scope will change to global
- scope.
-
- A namespace declaration can also be templated, e.g.,::
-
- .. cpp:class:: template<typename T> \
- std::vector
-
- .. cpp:namespace:: template<typename T> std::vector
-
- .. cpp:function:: std::size_t size() const
-
- declares ``size`` as a member function of the class template
- ``std::vector``. Equivalently this could have been declared using::
-
- .. cpp:class:: template<typename T> \
- std::vector
-
- .. cpp:function:: std::size_t size() const
-
- or::
-
- .. cpp:class:: template<typename T> \
- std::vector
-
-.. rst:directive:: .. cpp:namespace-push:: scope specification
-
- Change the scope relatively to the current scope. For example, after::
-
- .. cpp:namespace:: A::B
-
- .. cpp:namespace-push:: C::D
-
- the current scope will be ``A::B::C::D``.
-
- .. versionadded:: 1.4
-
-.. rst:directive:: .. cpp:namespace-pop::
-
- Undo the previous ``cpp:namespace-push`` directive (*not* just pop a scope).
- For example, after::
-
- .. cpp:namespace:: A::B
-
- .. cpp:namespace-push:: C::D
-
- .. cpp:namespace-pop::
-
- the current scope will be ``A::B`` (*not* ``A::B::C``).
-
- If no previous ``cpp:namespace-push`` directive has been used, but only a
- ``cpp:namespace`` directive, then the current scope will be reset to global
- scope. That is, ``.. cpp:namespace:: A::B`` is equivalent to::
-
- .. cpp:namespace:: nullptr
-
- .. cpp:namespace-push:: A::B
-
- .. versionadded:: 1.4
-
-Info field lists
-~~~~~~~~~~~~~~~~~
-
-All the C++ directives for declaring entities support the following
-info fields (see also :ref:`info-field-lists`):
-
-* ``tparam``: Description of a template parameter.
-
-The :rst:dir:`cpp:function` directive additionally supports the
-following fields:
-
-* ``param``, ``parameter``, ``arg``, ``argument``: Description of a parameter.
-* ``returns``, ``return``: Description of a return value.
-* ``retval``, ``retvals``: An alternative to ``returns`` for describing
- the result of the function.
-* `throws`, `throw`, `exception`: Description of a possibly thrown exception.
-
-.. versionadded:: 4.3
- The ``retval`` field type.
-
-.. _cpp-roles:
-
-Cross-referencing
-~~~~~~~~~~~~~~~~~
-
-These roles link to the given declaration types:
-
-.. rst:role:: cpp:any
- cpp:class
- cpp:struct
- cpp:func
- cpp:member
- cpp:var
- cpp:type
- cpp:concept
- cpp:enum
- cpp:enumerator
-
- Reference a C++ declaration by name (see below for details). The name must
- be properly qualified relative to the position of the link.
-
- .. versionadded:: 2.0
- The :rst:role:`cpp:struct` role as alias for the :rst:role:`cpp:class`
- role.
-
-.. admonition:: Note on References with Templates Parameters/Arguments
-
- These roles follow the Sphinx :ref:`xref-syntax` rules. This means care must
- be taken when referencing a (partial) template specialization, e.g. if the
- link looks like this: ``:cpp:class:`MyClass<int>```.
- This is interpreted as a link to ``int`` with a title of ``MyClass``.
- In this case, escape the opening angle bracket with a backslash,
- like this: ``:cpp:class:`MyClass\<int>```.
-
- When a custom title is not needed it may be useful to use the roles for
- inline expressions, :rst:role:`cpp:expr` and :rst:role:`cpp:texpr`, where
- angle brackets do not need escaping.
-
-Declarations without template parameters and template arguments
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-For linking to non-templated declarations the name must be a nested name, e.g.,
-``f`` or ``MyClass::f``.
-
-
-Overloaded (member) functions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When a (member) function is referenced using just its name, the reference
-will point to an arbitrary matching overload.
-The :rst:role:`cpp:any` and :rst:role:`cpp:func` roles use an alternative
-format, which simply is a complete function declaration.
-This will resolve to the exact matching overload.
-As example, consider the following class declaration:
-
-.. cpp:namespace-push:: overload_example
-.. cpp:class:: C
-
- .. cpp:function:: void f(double d) const
- .. cpp:function:: void f(double d)
- .. cpp:function:: void f(int i)
- .. cpp:function:: void f()
-
-References using the :rst:role:`cpp:func` role:
-
-- Arbitrary overload: ``C::f``, :cpp:func:`C::f`
-- Also arbitrary overload: ``C::f()``, :cpp:func:`C::f()`
-- Specific overload: ``void C::f()``, :cpp:func:`void C::f()`
-- Specific overload: ``void C::f(int)``, :cpp:func:`void C::f(int)`
-- Specific overload: ``void C::f(double)``, :cpp:func:`void C::f(double)`
-- Specific overload: ``void C::f(double) const``,
- :cpp:func:`void C::f(double) const`
-
-Note that the :confval:`add_function_parentheses` configuration variable
-does not influence specific overload references.
-
-.. cpp:namespace-pop::
-
-
-Templated declarations
-^^^^^^^^^^^^^^^^^^^^^^
-
-Assume the following declarations.
-
-.. cpp:class:: Wrapper
-
- .. cpp:class:: template<typename TOuter> \
- Outer
-
- .. cpp:class:: template<typename TInner> \
- Inner
-
-In general the reference must include the template parameter declarations,
-and template arguments for the prefix of qualified names. For example:
-
-- ``template\<typename TOuter> Wrapper::Outer``
- (:cpp:class:`template\<typename TOuter> Wrapper::Outer`)
-- ``template\<typename TOuter> template\<typename TInner> Wrapper::Outer<TOuter>::Inner``
- (:cpp:class:`template\<typename TOuter> template\<typename TInner> Wrapper::Outer<TOuter>::Inner`)
-
-Currently the lookup only succeed if the template parameter identifiers are
-equal strings. That is, ``template\<typename UOuter> Wrapper::Outer`` will not
-work.
-
-As a shorthand notation, if a template parameter list is omitted,
-then the lookup will assume either a primary template or a non-template,
-but not a partial template specialisation.
-This means the following references work as well:
-
-- ``Wrapper::Outer``
- (:cpp:class:`Wrapper::Outer`)
-- ``Wrapper::Outer::Inner``
- (:cpp:class:`Wrapper::Outer::Inner`)
-- ``template\<typename TInner> Wrapper::Outer::Inner``
- (:cpp:class:`template\<typename TInner> Wrapper::Outer::Inner`)
-
-(Full) Template Specialisations
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Assume the following declarations.
-
-.. cpp:class:: template<typename TOuter> \
- Outer
-
- .. cpp:class:: template<typename TInner> \
- Inner
-
-.. cpp:class:: template<> \
- Outer<int>
-
- .. cpp:class:: template<typename TInner> \
- Inner
-
- .. cpp:class:: template<> \
- Inner<bool>
-
-In general the reference must include a template parameter list for each
-template argument list. The full specialisation above can therefore be
-referenced with ``template\<> Outer\<int>`` (:cpp:class:`template\<>
-Outer\<int>`) and ``template\<> template\<> Outer\<int>::Inner\<bool>``
-(:cpp:class:`template\<> template\<> Outer\<int>::Inner\<bool>`). As a
-shorthand the empty template parameter list can be omitted, e.g.,
-``Outer\<int>`` (:cpp:class:`Outer\<int>`) and ``Outer\<int>::Inner\<bool>``
-(:cpp:class:`Outer\<int>::Inner\<bool>`).
-
-Partial Template Specialisations
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Assume the following declaration.
-
-.. cpp:class:: template<typename T> \
- Outer<T*>
-
-References to partial specialisations must always include the template
-parameter lists, e.g., ``template\<typename T> Outer\<T*>``
-(:cpp:class:`template\<typename T> Outer\<T*>`). Currently the lookup only
-succeed if the template parameter identifiers are equal strings.
-
-Configuration Variables
-~~~~~~~~~~~~~~~~~~~~~~~
-
-See :ref:`cpp-config`.
-
-.. _domains-std:
-
-The Standard Domain
+MOVED: Basic Markup
-------------------
-The so-called "standard" domain collects all markup that doesn't warrant a
-domain of its own. Its directives and roles are not prefixed with a domain
-name.
-
-The standard domain is also where custom object descriptions, added using the
-:func:`~sphinx.application.Sphinx.add_object_type` API, are placed.
-
-There is a set of directives allowing documenting command-line programs:
-
-.. rst:directive:: .. option:: name args, name args, ...
-
- Describes a command line argument or switch. Option argument names should
- be enclosed in angle brackets. Examples::
-
- .. option:: dest_dir
-
- Destination directory.
-
- .. option:: -m <module>, --module <module>
-
- Run a module as a script.
-
- The directive will create cross-reference targets for the given options,
- referenceable by :rst:role:`option` (in the example case, you'd use something
- like ``:option:`dest_dir```, ``:option:`-m```, or ``:option:`--module```).
-
- .. versionchanged:: 5.3
-
- One can cross-reference including an option value: ``:option:`--module=foobar```,
- ,``:option:`--module[=foobar]``` or ``:option:`--module foobar```.
-
- Use :confval:`option_emphasise_placeholders` for parsing of
- "variable part" of a literal text (similarly to the :rst:role:`samp` role).
-
- ``cmdoption`` directive is a deprecated alias for the ``option`` directive.
-
-.. rst:directive:: .. envvar:: name
-
- Describes an environment variable that the documented code or program uses
- or defines. Referenceable by :rst:role:`envvar`.
-
-.. rst:directive:: .. program:: name
-
- Like :rst:dir:`py:currentmodule`, this directive produces no output.
- Instead, it serves to notify Sphinx that all following :rst:dir:`option`
- directives document options for the program called *name*.
-
- If you use :rst:dir:`program`, you have to qualify the references in your
- :rst:role:`option` roles by the program name, so if you have the following
- situation ::
-
- .. program:: rm
-
- .. option:: -r
-
- Work recursively.
-
- .. program:: svn
-
- .. option:: -r <revision>
-
- Specify the revision to work upon.
-
- then ``:option:`rm -r``` would refer to the first option, while
- ``:option:`svn -r``` would refer to the second one.
-
- If ``None`` is passed to the argument, the directive will reset the
- current program name.
-
- The program name may contain spaces (in case you want to document
- subcommands like ``svn add`` and ``svn commit`` separately).
-
- .. versionadded:: 0.5
-
-There is also a very generic object description directive, which is not tied to
-any domain:
-
-.. rst:directive:: .. describe:: text
- .. object:: text
-
- This directive produces the same formatting as the specific ones provided by
- domains, but does not create index entries or cross-referencing targets.
- Example::
-
- .. describe:: PAPER
-
- You can set this variable to select a paper size.
-
-
-The JavaScript Domain
----------------------
-
-The JavaScript domain (name **js**) provides the following directives:
-
-.. rst:directive:: .. js:module:: name
-
- This directive sets the module name for object declarations that follow
- after. The module name is used in the global module index and in cross
- references. This directive does not create an object heading like
- :rst:dir:`py:class` would, for example.
-
- By default, this directive will create a linkable entity and will cause an
- entry in the global module index, unless the ``no-index`` option is
- specified. If this option is specified, the directive will only update the
- current module name.
-
- .. versionadded:: 1.6
- .. versionchanged:: 5.2
-
- Module directives support body content.
-
-.. rst:directive:: .. js:function:: name(signature)
-
- Describes a JavaScript function or method. If you want to describe
- arguments as optional use square brackets as :ref:`documented <signatures>`
- for Python signatures.
-
- You can use fields to give more details about arguments and their expected
- types, errors which may be thrown by the function, and the value being
- returned::
-
- .. js:function:: $.getJSON(href, callback[, errback])
-
- :param string href: An URI to the location of the resource.
- :param callback: Gets called with the object.
- :param errback:
- Gets called in case the request fails. And a lot of other
- text so we need multiple lines.
- :throws SomeError: For whatever reason in that case.
- :returns: Something.
-
- This is rendered as:
-
- .. js:function:: $.getJSON(href, callback[, errback])
- :no-index:
-
- :param string href: An URI to the location of the resource.
- :param callback: Gets called with the object.
- :param errback:
- Gets called in case the request fails. And a lot of other
- text so we need multiple lines.
- :throws SomeError: For whatever reason in that case.
- :returns: Something.
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the function's parameters will be emitted on a single logical
- line, overriding :confval:`javascript_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-.. rst:directive:: .. js:method:: name(signature)
-
- This directive is an alias for :rst:dir:`js:function`, however it describes
- a function that is implemented as a method on a class object.
-
- .. versionadded:: 1.6
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the function's parameters will be emitted on a single logical
- line, overriding :confval:`javascript_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-.. rst:directive:: .. js:class:: name
-
- Describes a constructor that creates an object. This is basically like a
- function but will show up with a `class` prefix::
-
- .. js:class:: MyAnimal(name[, age])
-
- :param string name: The name of the animal
- :param number age: an optional age for the animal
-
- This is rendered as:
-
- .. js:class:: MyAnimal(name[, age])
- :no-index:
-
- :param string name: The name of the animal
- :param number age: an optional age for the animal
-
- .. rst:directive:option:: single-line-parameter-list
- :type: no value
-
- Ensures that the function's parameters will be emitted on a single logical
- line, overriding :confval:`javascript_maximum_signature_line_length` and
- :confval:`maximum_signature_line_length`.
-
- .. versionadded:: 7.1
-
-.. rst:directive:: .. js:data:: name
-
- Describes a global variable or constant.
-
-.. rst:directive:: .. js:attribute:: object.name
-
- Describes the attribute *name* of *object*.
-
-.. _js-roles:
-
-These roles are provided to refer to the described objects:
-
-.. rst:role:: js:mod
- js:func
- js:meth
- js:class
- js:data
- js:attr
-
-
-The reStructuredText domain
----------------------------
-
-The reStructuredText domain (name **rst**) provides the following directives:
-
-.. rst:directive:: .. rst:directive:: name
-
- Describes a reST directive. The *name* can be a single directive name or
- actual directive syntax (`..` prefix and `::` suffix) with arguments that
- will be rendered differently. For example::
-
- .. rst:directive:: foo
-
- Foo description.
-
- .. rst:directive:: .. bar:: baz
-
- Bar description.
-
- will be rendered as:
-
- .. rst:directive:: foo
- :no-index:
-
- Foo description.
-
- .. rst:directive:: .. bar:: baz
- :no-index:
-
- Bar description.
-
-.. rst:directive:: .. rst:directive:option:: name
-
- Describes an option for reST directive. The *name* can be a single option
- name or option name with arguments which separated with colon (``:``).
- For example::
-
- .. rst:directive:: toctree
-
- .. rst:directive:option:: caption: caption of ToC
-
- .. rst:directive:option:: glob
-
- will be rendered as:
-
- .. rst:directive:: toctree
- :no-index:
-
- .. rst:directive:option:: caption: caption of ToC
- :no-index:
-
- .. rst:directive:option:: glob
- :no-index:
-
- .. rubric:: options
-
- .. rst:directive:option:: type: description of argument
- :type: text
-
- Describe the type of option value.
-
- For example::
-
- .. rst:directive:: toctree
-
- .. rst:directive:option:: maxdepth
- :type: integer or no value
-
- .. versionadded:: 2.1
-
-.. rst:directive:: .. rst:role:: name
-
- Describes a reST role. For example::
-
- .. rst:role:: foo
-
- Foo description.
-
- will be rendered as:
-
- .. rst:role:: foo
- :no-index:
-
- Foo description.
-
-.. _rst-roles:
-
-These roles are provided to refer to the described objects:
-
-.. rst:role:: rst:dir
- rst:role
-
-.. _math-domain:
-
-The Math Domain
+.. raw:: html
+
+ <span id="basic-markup">
+ <span id="basic-domain-markup">
+ <span id="directive-default-domain">
+ <span id="cross-referencing-syntax">
+
+See :doc:`/usage/domains/index`.
+
+
+MOVED: Python Domain
+--------------------
+
+.. raw:: html
+
+ <span id="the-python-domain">
+ <span id="python-domain">
+ <span id="directive-py-module">
+ <span id="directive-option-py-module-platform">
+ <span id="directive-option-py-module-synopsis">
+ <span id="directive-option-py-module-deprecated">
+ <span id="directive-py-currentmodule">
+ <span id="directive-py-function">
+ <span id="directive-option-py-function-async">
+ <span id="directive-option-py-function-canonical">
+ <span id="directive-option-py-function-single-line-parameter-list">
+ <span id="directive-option-py-function-single-line-type-parameter-list">
+ <span id="directive-py-data">
+ <span id="directive-option-py-data-type">
+ <span id="directive-option-py-data-value">
+ <span id="directive-option-py-data-canonical">
+ <span id="directive-py-exception">
+ <span id="index-0">
+ <span id="directive-option-py-exception-final">
+ <span id="directive-option-py-exception-single-line-parameter-list">
+ <span id="directive-option-py-exception-single-line-type-parameter-list">
+ <span id="directive-py-class">
+ <span id="index-1">
+ <span id="directive-option-py-class-canonical">
+ <span id="directive-option-py-class-final">
+ <span id="directive-option-py-class-single-line-parameter-list">
+ <span id="directive-option-py-class-single-line-type-parameter-list">
+ <span id="directive-py-attribute">
+ <span id="directive-option-py-attribute-type">
+ <span id="directive-option-py-attribute-value">
+ <span id="directive-option-py-attribute-canonical">
+ <span id="directive-py-property">
+ <span id="directive-option-py-property-abstractmethod">
+ <span id="directive-option-py-property-classmethod">
+ <span id="directive-option-py-property-type">
+ <span id="directive-py-method">
+ <span id="directive-option-py-method-abstractmethod">
+ <span id="directive-option-py-method-async">
+ <span id="directive-option-py-method-canonical">
+ <span id="directive-option-py-method-classmethod">
+ <span id="directive-option-py-method-final">
+ <span id="directive-option-py-method-single-line-parameter-list">
+ <span id="directive-option-py-method-single-line-type-parameter-list">
+ <span id="directive-option-py-method-staticmethod">
+ <span id="directive-py-staticmethod">
+ <span id="directive-py-classmethod">
+ <span id="directive-py-decorator">
+ <span id="directive-option-py-decorator-single-line-parameter-list">
+ <span id="directive-option-py-decorator-single-line-type-parameter-list">
+ <span id="directive-py-decoratormethod">
+ <span id="python-signatures">
+ <span id="signatures">
+ <span id="index-2">
+ <span id="index-3">
+ <span id="info-field-lists">
+ <span id="id1">
+ <span id="cross-referencing-python-objects">
+ <span id="python-roles">
+ <span id="role-py-mod">
+ <span id="role-py-func">
+ <span id="role-py-data">
+ <span id="role-py-const">
+ <span id="role-py-class">
+ <span id="role-py-meth">
+ <span id="role-py-attr">
+ <span id="role-py-exc">
+ <span id="role-py-obj">
+
+See :doc:`/usage/domains/python`.
+
+
+MOVED: C Domain
---------------
-The math domain (name **math**) provides the following roles:
-
-.. rst:role:: math:numref
-
- Role for cross-referencing equations defined by :rst:dir:`math` directive
- via their label. Example::
-
- .. math:: e^{i\pi} + 1 = 0
- :label: euler
-
- Euler's identity, equation :math:numref:`euler`, was elected one of the
- most beautiful mathematical formulas.
-
- .. versionadded:: 1.8
+.. raw:: html
+
+ <span id="the-c-domain">
+ <span id="c-domain">
+ <span id="directive-c-member">
+ <span id="directive-c-var">
+ <span id="directive-c-function">
+ <span id="directive-option-c-function-single-line-parameter-list">
+ <span id="directive-c-macro">
+ <span id="directive-option-c-macro-single-line-parameter-list">
+ <span id="directive-c-struct">
+ <span id="directive-c-union">
+ <span id="directive-c-enum">
+ <span id="directive-c-enumerator">
+ <span id="directive-c-type">
+ <span id="cross-referencing-c-constructs">
+ <span id="c-roles">
+ <span id="role-c-member">
+ <span id="role-c-data">
+ <span id="role-c-var">
+ <span id="role-c-func">
+ <span id="role-c-macro">
+ <span id="role-c-struct">
+ <span id="role-c-union">
+ <span id="role-c-enum">
+ <span id="role-c-enumerator">
+ <span id="role-c-type">
+ <span id="anonymous-entities">
+ <span id="aliasing-declarations">
+ <span id="directive-c-alias">
+ <span id="directive-option-c-alias-maxdepth">
+ <span id="directive-option-c-alias-noroot">
+ <span id="inline-expressions-and-types">
+ <span id="role-c-expr">
+ <span id="role-c-texpr">
+ <span id="namespacing">
+ <span id="directive-c-namespace">
+ <span id="directive-c-namespace-push">
+ <span id="directive-c-namespace-pop">
+ <span id="configuration-variables">
+
+See :doc:`/usage/domains/c`.
+
+
+MOVED: C++ Domain
+-----------------
-More domains
-------------
+.. raw:: html
+
+ <span id="cpp-domain">
+ <span id="id2">
+ <span id="directives-for-declaring-entities">
+ <span id="directive-cpp-class">
+ <span id="directive-cpp-struct">
+ <span id="directive-cpp-function">
+ <span id="directive-option-cpp-function-single-line-parameter-list">
+ <span id="directive-cpp-member">
+ <span id="directive-cpp-var">
+ <span id="directive-cpp-type">
+ <span id="directive-cpp-enum">
+ <span id="directive-cpp-enum-struct">
+ <span id="directive-cpp-enum-class">
+ <span id="directive-cpp-enumerator">
+ <span id="directive-cpp-union">
+ <span id="directive-cpp-concept">
+ <span id="options">
+ <span id="id3">
+ <span id="id4">
+ <span id="directive-cpp-alias">
+ <span id="directive-option-cpp-alias-maxdepth">
+ <span id="directive-option-cpp-alias-noroot">
+ <span id="constrained-templates">
+ <span id="placeholders">
+ <span id="template-introductions">
+ <span id="id5">
+ <span id="role-cpp-expr">
+ <span id="role-cpp-texpr">
+ <span id="id6">
+ <span id="directive-cpp-namespace">
+ <span id="directive-cpp-namespace-push">
+ <span id="directive-cpp-namespace-pop">
+ <span id="id7">
+ <span id="cross-referencing">
+ <span id="cpp-roles">
+ <span id="role-cpp-any">
+ <span id="role-cpp-class">
+ <span id="role-cpp-struct">
+ <span id="role-cpp-func">
+ <span id="role-cpp-member">
+ <span id="role-cpp-var">
+ <span id="role-cpp-type">
+ <span id="role-cpp-concept">
+ <span id="role-cpp-enum">
+ <span id="role-cpp-enumerator">
+ <span id="declarations-without-template-parameters-and-template-arguments">
+ <span id="overloaded-member-functions">
+ <span id="templated-declarations">
+ <span id="full-template-specialisations">
+ <span id="partial-template-specialisations">
+ <span id="id8">
+
+See :doc:`/usage/domains/cpp`.
+
+
+MOVED: Standard Domain
+----------------------
+
+.. raw:: html
+
+ <span id="the-standard-domain">
+ <span id="domains-std">
+ <span id="directive-option">
+ <span id="directive-envvar">
+ <span id="directive-program">
+ <span id="directive-describe">
+ <span id="directive-object">
+
+See :doc:`/usage/domains/standard`.
+
+
+MOVED: JavaScript Domain
+------------------------
+
+.. raw:: html
+
+ <span id="the-javascript-domain">
+ <span id="directive-js-module">
+ <span id="directive-js-function">
+ <span id="directive-option-js-function-single-line-parameter-list">
+ <span id="directive-js-method">
+ <span id="directive-option-js-method-single-line-parameter-list">
+ <span id="directive-js-class">
+ <span id="directive-option-js-class-single-line-parameter-list">
+ <span id="directive-js-data">
+ <span id="directive-js-attribute">
+ <span id="js-roles">
+ <span id="role-js-mod">
+ <span id="role-js-func">
+ <span id="role-js-meth">
+ <span id="role-js-class">
+ <span id="role-js-data">
+ <span id="role-js-attr">
+
+See :doc:`/usage/domains/javascript`.
+
+
+MOVED: reStructuredText Domain
+------------------------------
+
+.. raw:: html
+
+ <span id="the-restructuredtext-domain">
+ <span id="directive-rst-directive">
+ <span id="directive-rst-directive-option">
+ <span id="directive-option-rst-directive-option-type">
+ <span id="directive-rst-role">
+ <span id="rst-roles">
+ <span id="role-rst-dir">
+ <span id="role-rst-role">
+
+See :doc:`/usage/domains/restructuredtext`.
+
+
+MOVED: Math Domain
+------------------
+
+.. raw:: html
+
+ <span id="the-math-domain">
+ <span id="math-domain">
+ <span id="role-math-numref">
+
+See :doc:`/usage/domains/mathematics`.
+
+MOVED: More domains
+-------------------
-The sphinx-contrib_ repository contains more domains available as extensions;
-currently Ada_, CoffeeScript_, Erlang_, HTTP_, Lasso_, MATLAB_, PHP_, and Ruby_
-domains. Also available are domains for `Chapel`_, `Common Lisp`_, dqn_, Go_,
-Jinja_, Operation_, and Scala_.
+.. raw:: html
-.. _sphinx-contrib: https://github.com/sphinx-contrib
+ <span id="more-domains">
-.. _Ada: https://pypi.org/project/sphinxcontrib-adadomain/
-.. _Chapel: https://pypi.org/project/sphinxcontrib-chapeldomain/
-.. _CoffeeScript: https://pypi.org/project/sphinxcontrib-coffee/
-.. _Common Lisp: https://pypi.org/project/sphinxcontrib-cldomain/
-.. _dqn: https://pypi.org/project/sphinxcontrib-dqndomain/
-.. _Erlang: https://pypi.org/project/sphinxcontrib-erlangdomain/
-.. _Go: https://pypi.org/project/sphinxcontrib-golangdomain/
-.. _HTTP: https://pypi.org/project/sphinxcontrib-httpdomain/
-.. _Jinja: https://pypi.org/project/sphinxcontrib-jinjadomain/
-.. _Lasso: https://pypi.org/project/sphinxcontrib-lassodomain/
-.. _MATLAB: https://pypi.org/project/sphinxcontrib-matlabdomain/
-.. _Operation: https://pypi.org/project/sphinxcontrib-operationdomain/
-.. _PHP: https://pypi.org/project/sphinxcontrib-phpdomain/
-.. _Ruby: https://github.com/sphinx-contrib/rubydomain
-.. _Scala: https://pypi.org/project/sphinxcontrib-scaladomain/
+See :doc:`/usage/domains/index`.
diff --git a/doc/usage/restructuredtext/field-lists.rst b/doc/usage/restructuredtext/field-lists.rst
index 5fc897d..62dad5c 100644
--- a/doc/usage/restructuredtext/field-lists.rst
+++ b/doc/usage/restructuredtext/field-lists.rst
@@ -73,6 +73,6 @@ At the moment, these metadata fields are recognized:
:nosearch:
- .. note:: object search is still available even if `nosearch` option is set.
+ .. note:: object search is still available even if ``nosearch`` option is set.
.. versionadded:: 3.0
diff --git a/doc/usage/restructuredtext/index.rst b/doc/usage/restructuredtext/index.rst
index 87b6ed6..0fe311e 100644
--- a/doc/usage/restructuredtext/index.rst
+++ b/doc/usage/restructuredtext/index.rst
@@ -21,4 +21,8 @@ __ https://docutils.sourceforge.io/rst.html
roles
directives
field-lists
+
+.. toctree::
+ :hidden:
+
domains
diff --git a/doc/usage/restructuredtext/roles.rst b/doc/usage/restructuredtext/roles.rst
index e468de9..b21a2b7 100644
--- a/doc/usage/restructuredtext/roles.rst
+++ b/doc/usage/restructuredtext/roles.rst
@@ -15,267 +15,28 @@ They are written as ``:rolename:`content```.
:rst:role:`any` role to find anything or the :rst:role:`py:obj` role to find
Python objects are very useful for this.
-See :doc:`/usage/restructuredtext/domains` for roles added by domains.
+See :doc:`/usage/domains/index` for roles added by domains.
-.. _xref-syntax:
-
Cross-referencing syntax
------------------------
-Cross-references are generated by many semantic interpreted text roles.
-Basically, you only need to write ``:role:`target```, and a link will be
-created to the item named *target* of the type indicated by *role*. The link's
-text will be the same as *target*.
-
-There are some additional facilities, however, that make cross-referencing
-roles more versatile:
-
-* You may supply an explicit title and reference target, like in reST direct
- hyperlinks: ``:role:`title <target>``` will refer to *target*, but the link
- text will be *title*.
-
-* If you prefix the content with ``!``, no reference/hyperlink will be created.
-
-* If you prefix the content with ``~``, the link text will only be the last
- component of the target. For example, ``:py:meth:`~Queue.Queue.get``` will
- refer to ``Queue.Queue.get`` but only display ``get`` as the link text. This
- does not work with all cross-reference roles, but is domain specific.
-
- In HTML output, the link's ``title`` attribute (that is e.g. shown as a
- tool-tip on mouse-hover) will always be the full target name.
-
-
-.. _any-role:
-
-Cross-referencing anything
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. rst:role:: any
-
- .. versionadded:: 1.3
-
- This convenience role tries to do its best to find a valid target for its
- reference text.
-
- * First, it tries standard cross-reference targets that would be referenced
- by :rst:role:`doc`, :rst:role:`ref` or :rst:role:`option`.
-
- Custom objects added to the standard domain by extensions (see
- :meth:`.Sphinx.add_object_type`) are also searched.
-
- * Then, it looks for objects (targets) in all loaded domains. It is up to
- the domains how specific a match must be. For example, in the Python
- domain a reference of ``:any:`Builder``` would match the
- ``sphinx.builders.Builder`` class.
-
- If none or multiple targets are found, a warning will be emitted. In the
- case of multiple targets, you can change "any" to a specific role.
-
- This role is a good candidate for setting :confval:`default_role`. If you
- do, you can write cross-references without a lot of markup overhead. For
- example, in this Python function documentation::
-
- .. function:: install()
-
- This function installs a `handler` for every signal known by the
- `signal` module. See the section `about-signals` for more information.
-
- there could be references to a glossary term (usually ``:term:`handler```), a
- Python module (usually ``:py:mod:`signal``` or ``:mod:`signal```) and a
- section (usually ``:ref:`about-signals```).
-
- The :rst:role:`any` role also works together with the
- :mod:`~sphinx.ext.intersphinx` extension: when no local cross-reference is
- found, all object types of intersphinx inventories are also searched.
-
-Cross-referencing objects
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-These roles are described with their respective domains:
-
-* :ref:`Python <python-roles>`
-* :ref:`C <c-roles>`
-* :ref:`C++ <cpp-roles>`
-* :ref:`JavaScript <js-roles>`
-* :ref:`ReST <rst-roles>`
-
-
-.. _ref-role:
-
-Cross-referencing arbitrary locations
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. rst:role:: ref
-
- To support cross-referencing to arbitrary locations in any document, the
- standard reST labels are used. For this to work label names must be unique
- throughout the entire documentation. There are two ways in which you can
- refer to labels:
-
- * If you place a label directly before a section title, you can reference to
- it with ``:ref:`label-name```. For example::
-
- .. _my-reference-label:
-
- Section to cross-reference
- --------------------------
-
- This is the text of the section.
-
- It refers to the section itself, see :ref:`my-reference-label`.
-
- The ``:ref:`` role would then generate a link to the section, with the
- link title being "Section to cross-reference". This works just as well
- when section and reference are in different source files.
-
- Automatic labels also work with figures. For example::
-
- .. _my-figure:
-
- .. figure:: whatever
-
- Figure caption
-
- In this case, a reference ``:ref:`my-figure``` would insert a reference
- to the figure with link text "Figure caption".
-
- The same works for tables that are given an explicit caption using the
- :dudir:`table` directive.
-
- * Labels that aren't placed before a section title can still be referenced,
- but you must give the link an explicit title, using this syntax:
- ``:ref:`Link title <label-name>```.
-
- .. note::
+See :doc:`/usage/referencing/`.
- Reference labels must start with an underscore. When referencing a label,
- the underscore must be omitted (see examples above).
+Cross-reference roles include:
- Using :rst:role:`ref` is advised over standard reStructuredText links to
- sections (like ```Section title`_``) because it works across files, when
- section headings are changed, will raise warnings if incorrect, and works
- for all builders that support cross-references.
+* :rst:role:`any`
+* :rst:role:`doc`
+* :rst:role:`download`
+* :rst:role:`envvar`
+* :rst:role:`keyword`
+* :rst:role:`numref`
+* :rst:role:`option` (and the deprecated :rst:role:`!cmdoption`)
+* :rst:role:`ref`
+* :rst:role:`term`
+* :rst:role:`token`
-Cross-referencing documents
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. versionadded:: 0.6
-
-There is also a way to directly link to documents:
-
-.. rst:role:: doc
-
- Link to the specified document; the document name can be specified in
- absolute or relative fashion. For example, if the reference
- ``:doc:`parrot``` occurs in the document ``sketches/index``, then the link
- refers to ``sketches/parrot``. If the reference is ``:doc:`/people``` or
- ``:doc:`../people```, the link refers to ``people``.
-
- If no explicit link text is given (like usual: ``:doc:`Monty Python members
- </people>```), the link caption will be the title of the given document.
-
-
-Referencing downloadable files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. versionadded:: 0.6
-
-.. rst:role:: download
-
- This role lets you link to files within your source tree that are not reST
- documents that can be viewed, but files that can be downloaded.
-
- When you use this role, the referenced file is automatically marked for
- inclusion in the output when building (obviously, for HTML output only).
- All downloadable files are put into a ``_downloads/<unique hash>/``
- subdirectory of the output directory; duplicate filenames are handled.
-
- An example::
-
- See :download:`this example script <../example.py>`.
-
- The given filename is usually relative to the directory the current source
- file is contained in, but if it absolute (starting with ``/``), it is taken
- as relative to the top source directory.
-
- The ``example.py`` file will be copied to the output directory, and a
- suitable link generated to it.
-
- Not to show unavailable download links, you should wrap whole paragraphs that
- have this role::
-
- .. only:: builder_html
-
- See :download:`this example script <../example.py>`.
-
-Cross-referencing figures by figure number
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. versionadded:: 1.3
-
-.. versionchanged:: 1.5
- `numref` role can also refer sections.
- And `numref` allows `{name}` for the link text.
-
-.. rst:role:: numref
-
- Link to the specified figures, tables, code-blocks and sections; the standard
- reST labels are used. When you use this role, it will insert a reference to
- the figure with link text by its figure number like "Fig. 1.1".
-
- If an explicit link text is given (as usual: ``:numref:`Image of Sphinx (Fig.
- %s) <my-figure>```), the link caption will serve as title of the reference.
- As placeholders, `%s` and `{number}` get replaced by the figure
- number and `{name}` by the figure caption.
- If no explicit link text is given, the :confval:`numfig_format` setting is
- used as fall-back default.
-
- If :confval:`numfig` is ``False``, figures are not numbered,
- so this role inserts not a reference but the label or the link text.
-
-Cross-referencing other items of interest
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The following roles do possibly create a cross-reference, but do not refer to
-objects:
-
-.. rst:role:: envvar
-
- An environment variable. Index entries are generated. Also generates a link
- to the matching :rst:dir:`envvar` directive, if it exists.
-
-.. rst:role:: token
-
- The name of a grammar token (used to create links between
- :rst:dir:`productionlist` directives).
-
-.. rst:role:: keyword
-
- The name of a keyword in Python. This creates a link to a reference label
- with that name, if it exists.
-
-.. rst:role:: option
-
- A command-line option to an executable program. This generates a link to
- a :rst:dir:`option` directive, if it exists.
-
-
-The following role creates a cross-reference to a term in a
-:ref:`glossary <glossary-directive>`:
-
-.. rst:role:: term
-
- Reference to a term in a glossary. A glossary is created using the
- ``glossary`` directive containing a definition list with terms and
- definitions. It does not have to be in the same file as the ``term`` markup,
- for example the Python docs have one global glossary in the ``glossary.rst``
- file.
-
- If you use a term that's not explained in a glossary, you'll get a warning
- during build.
-
Inline code highlighting
------------------------
@@ -414,6 +175,10 @@ different style:
``:manpage:`ls(1)``` displays :manpage:`ls(1)`. Creates a hyperlink to an
external site rendering the manpage if :confval:`manpages_url` is defined.
+ .. versionchanged:: 7.3
+ Allow specifying a target with ``<>``, like hyperlinks.
+ For example, ``:manpage:`blah <ls(1)>``` displays :manpage:`blah <ls(1)>`.
+
.. rst:role:: menuselection
Menu selections should be marked using the ``menuselection`` role. This is
@@ -468,14 +233,17 @@ different style:
A piece of literal text, such as code. Within the contents, you can use
curly braces to indicate a "variable" part, as in :rst:role:`file`. For
- example, in ``:samp:`print 1+{variable}```, the part ``variable`` would be
- emphasized: :samp:`print 1+{variable}`
+ example, in ``:samp:`print(1+{variable})```, the part ``variable`` would be
+ emphasized: :samp:`print(1+{variable})`
If you don't need the "variable part" indication, use the standard
:rst:role:`code` role instead.
.. versionchanged:: 1.8
- Allowed to escape curly braces with backslash
+ Allowed to escape curly braces with double backslash. For example, in
+ ``:samp:`print(f"answer=\\{1+{variable}*2\\}")```, the part ``variable``
+ would be emphasized and the escaped curly braces would be displayed:
+ :samp:`print(f"answer=\\{1+{variable}*2\\}")`
There is also an :rst:role:`index` role to generate index entries.
@@ -508,7 +276,7 @@ the standard reST markup for that purpose.
Substitutions
-------------
-The documentation system provides three substitutions that are defined by
+The documentation system provides some substitutions that are defined by
default. They are set in the build configuration file.
.. describe:: |release|
@@ -532,5 +300,5 @@ default. They are set in the build configuration file.
.. describe:: |translation progress|
Replaced by the translation progress of the document.
- This substitution is intented for use by document translators
+ This substitution is intended for use by document translators
as a marker for the translation progress of the document.
diff --git a/doc/usage/theming.rst b/doc/usage/theming.rst
index c33c7d4..be46cab 100644
--- a/doc/usage/theming.rst
+++ b/doc/usage/theming.rst
@@ -56,7 +56,7 @@ page's top and bottom), add the following :file:`conf.py`::
If the theme does not come with Sphinx, it can be in two static forms or as a
Python package. For the static forms, either a directory (containing
-:file:`theme.conf` and other needed files), or a zip file with the same
+:file:`theme.toml` and other needed files), or a zip file with the same
contents is supported. The directory or zipfile must be put where Sphinx can
find it; for this there is the config value :confval:`html_theme_path`. This
can be a list of directories, relative to the directory containing
@@ -325,10 +325,10 @@ These themes are:
are supported:
- **relbar1** (true or false, default ``True``): If this is true, the
- `relbar1` block is inserted in the epub output, otherwise it is omitted.
+ ``relbar1`` block is inserted in the epub output, otherwise it is omitted.
- **footer** (true or false, default ``True``): If this is true, the
- `footer` block is inserted in the epub output, otherwise it is omitted.
+ ``footer`` block is inserted in the epub output, otherwise it is omitted.
**bizstyle**
A simple bluish theme. The following options are supported
diff --git a/pyproject.toml b/pyproject.toml
index 0a9bc9e..8aa49aa 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -38,6 +38,7 @@ classifiers = [
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Framework :: Sphinx",
+ "Framework :: Sphinx :: Domain",
"Framework :: Sphinx :: Extension",
"Framework :: Sphinx :: Theme",
"Topic :: Documentation",
@@ -63,14 +64,15 @@ dependencies = [
"sphinxcontrib-qthelp",
"Jinja2>=3.0",
"Pygments>=2.14",
- "docutils>=0.18.1,<0.21",
+ "docutils>=0.18.1,<0.22",
"snowballstemmer>=2.0",
"babel>=2.9",
- "alabaster>=0.7,<0.8",
+ "alabaster~=0.7.14",
"imagesize>=1.3",
"requests>=2.25.0",
"packaging>=21.0",
"importlib-metadata>=4.8; python_version < '3.10'",
+ "tomli>=2; python_version < '3.11'",
"colorama>=0.4.5; sys_platform == 'win32'",
]
dynamic = ["version"]
@@ -81,20 +83,20 @@ docs = [
]
lint = [
"flake8>=3.5.0",
- "flake8-simplify",
- "isort",
- "ruff",
- "mypy>=0.990",
+ "ruff==0.3.7",
+ "mypy==1.9.0",
"sphinx-lint",
- "docutils-stubs",
+ "types-docutils",
"types-requests",
+ "importlib_metadata", # for mypy (Python<=3.9)
+ "tomli", # for mypy (Python<=3.10)
+ "pytest>=6.0",
]
test = [
- "pytest>=4.6",
- "html5lib",
+ "pytest>=6.0",
+ "defusedxml>=0.7.1", # for secure XML/HTML parsing
"cython>=3.0",
"setuptools>=67.0", # for Cython compilation
- "filelock",
]
[[project.authors]]
@@ -112,13 +114,13 @@ name = "sphinx"
[tool.flit.sdist]
include = [
- "LICENSE",
- "AUTHORS",
- "CHANGES",
+ "LICENSE.rst",
+ "AUTHORS.rst",
+ "CHANGES.rst",
# Documentation
"doc/",
- "CODE_OF_CONDUCT", # used as an include in the Documentation
- "EXAMPLES", # used as an include in the Documentation
+ "CODE_OF_CONDUCT.rst", # used as an include in the Documentation
+ "EXAMPLES.rst", # used as an include in the Documentation
# Tests
"tests/",
"tox.ini",
@@ -130,263 +132,112 @@ exclude = [
"doc/_build",
]
-[tool.isort]
-line_length = 95
-profile = "black"
-remove_redundant_aliases = true
-
-[tool.ruff]
-target-version = "py39" # Pin Ruff to Python 3.9
-line-length = 95
-show-source = true
+[tool.mypy]
+files = ["sphinx", "utils", "tests"]
exclude = [
- ".git",
- ".tox",
- ".venv",
- "tests/roots/*",
- "build/*",
- "doc/_build/*",
- "sphinx/search/*",
- "doc/usage/extensions/example*.py",
-]
-ignore = [
- # pycodestyle
- "E251", # unexpected spaces around equals
- "E721", # do not compare types, use isinstance()
- "E741", # ambiguous variable name
- "F821", # undefined name
- "W291", # trailing whitespace
- # flake8-builtins
- "A001", # variable is shadowing a python builtin
- "A002", # argument is shadowing a python builtin
- "A003", # class attribute is shadowing a python builtin
- # flake8-annotations
- "ANN001", # missing type annotation for function argument
- "ANN002", # missing type annotation for *args
- "ANN003", # missing type annotation for **kwargs
- "ANN101", # missing type annotation for self in method
- "ANN102", # missing type annotation for cls in classmethod
- "ANN201", # missing type annotation for public function
- "ANN202", # missing type annotation for private function
- "ANN204", # missing type annotation for special method
- "ANN205", # missing type annotation for static method
- "ANN206", # missing type annotation for classmethod
- "ANN401", # dynamically typed expressions (typing.Any) are disallowed
- # flake8-unused-arguments
- "ARG001", # unused function argument
- "ARG002", # unused method argument
- "ARG003", # unused class method argument
- "ARG005", # unused lambda argument
- # flake8-blind-except
- "BLE001", # do not catch blind exception
- # mccabe
- "C901", # ... is too complex
- # pydocstyle
- "D",
- # flake8-django
- "DJ", # Django is not used in Sphinx
- # eradicate
- "ERA001", # found commented-out code
- # flake8-future-annotations
- "FA100", # missing from __future__ import annotations
- "FA102", # missing from __future__ import annotations
- # flake8-boolean-trap
- "FBT001", # boolean positional arg in function definition
- "FBT002", # boolean default value in function definition
- "FBT003", # boolean positional value in function call
- # flake8-fixme
- "FIX001", # line contains FIXME
- "FIX002", # line contains TODO
- "FIX003", # line contains XXX
- "FIX004", # line contains HACK
- # flynt
- "FLY002", # Consider f-string instead of string join
- # flake8-logging-format
- "G002", # logging statement uses `%`
- "G003", # logging statement uses `+`
- # flake8-implicit-str-concat
- "ISC001", # implicitly concatenated string literals on one line
- "ISC002", # implicitly concatenated string literals over multiple lines
- "ISC003", # explicitly concatenated string should be implicitly concatenated
- # pep8-naming
- "N",
- # NumPy-specific rules
- "NPY", # numpy is not used in Sphinx
- # pandas-vet
- "PD", # pandas is not used in Sphinx
- # Perflint
- "PERF101", # do not cast an iterable to list before iterating over it
- "PERF102", # use either dict.keys() or dict.values()
- "PERF203", # try-except within a loop incurs performance overhead
- "PERF401", # Use a list comprehension to create a transformed list
- "PERF402", # Use list or list.copy to create a copy of a list
- # flake8-pie
- "PIE790", # unnecessary 'pass' statement
- # pylint
- "PLC0205", # Class __slots__ should be a non-string iterable
- "PLC0208", # Use a sequence type instead of a set when iterating over values
- "PLC1901", # simplify truthy/falsey string comparisons
- "PLR0124", # Name compared with itself
- "PLR1714", # Consider merging multiple comparisons
- "PLR2004", # avoid magic values
- "PLR0911", # too many return statements
- "PLR0912", # too many branches
- "PLR0913", # too many arguments to function call
- "PLR0915", # too many statements
- "PLR5501", # consider using elif to remove an indentation level
- "PLW0603", # using the global statement to update variables is discouraged
- "PLW2901", # outer loop variable overwritten by inner assignment
- # flake8-use-pathlib
- "PTH",
- # flake8-pyi
- "PYI",
- # flake8-quotes
- "Q000", # double quotes found but single quotes preferred
- "Q001", # single quote docstring found but double quotes preferred
- # flake8-return
- "RET503", # missing explicit return at the end of function able to return non-None value
- "RET504", # unnecessary variable assignment before `return` statement
- "RET505", # unnecessary `else` after `return` statement
- "RET506", # Unnecessary {branch} after raise statement
- # Ruff-specific rules
- "RUF001", # string contains ambiguous unicode character
- "RUF003", # comment contains ambiguous unicode character
- "RUF005", # consider unpacking instead of concatenation
- "RUF012", # mutable class attributes should be annotated with typing.ClassVar
- "RUF013", # PEP 484 prohibits implicit Optional
- "RUF015", # prefer next({iterable}) over single element slice
- "RUF100", # unused noqa directive
- # flake8-bandit
- "S101", # assert used
- "S105", # possible hardcoded password
- "S110", # try/except/pass detected
- "S113", # probable use of requests call without timeout
- "S301", # 'pickle' unsafe when loading untrusted data
- "S307", # use of possibly insecure function (eval)
- "S324", # probable use of insecure hash functions
- "S603", # subprocess call: check for execution of untrusted input
- "S607", # Starting a process with a partial executable path
- "S701", # use autoescape=True for Jinja
- # flake8-simplify
- "SIM102", # nested 'if' statements
- "SIM103", # return condition directly
- "SIM108", # use ternary operator
- # flake8-self
- "SLF001", # private member accessed
- # flake8-todo
- "TD001", # invalid TODO tag
- "TD002", # missing author in TODO
- "TD003", # missing issue link on the line following this TODO
- "TD004", # missing colon in TODO
- "TD005", # missing issue description after TODO
- # tryceratops
- "TRY",
- # pyupgrade
- "UP031", # replace with format specifiers
- "UP032", # use f-string instead of format call
+ "tests/certs",
+ "tests/js",
+ "tests/roots",
+ # tests/
+ "^tests/test_events\\.py$",
+ "^tests/test_quickstart\\.py$",
+ "^tests/test_search\\.py$",
+ "^tests/test_versioning\\.py$",
+ # tests/test_builders
+ "^tests/test_builders/test_build_dirhtml\\.py$",
+ "^tests/test_builders/test_build_epub\\.py$",
+ "^tests/test_builders/test_builder\\.py$",
+ "^tests/test_builders/test_build_gettext\\.py$",
+ "^tests/test_builders/test_build_html\\.py$",
+ "^tests/test_builders/test_build_latex\\.py$",
+ "^tests/test_builders/test_build_linkcheck\\.py$",
+ "^tests/test_builders/test_build_texinfo\\.py$",
+ # tests/test_config
+ "^tests/test_config/test_config\\.py$",
+ # tests/test_directives
+ "^tests/test_directives/test_directive_object_description\\.py$",
+ "^tests/test_directives/test_directive_only\\.py$",
+ "^tests/test_directives/test_directive_other\\.py$",
+ "^tests/test_directives/test_directive_patch\\.py$",
+ # tests/test_domains
+ "^tests/test_domains/test_domain_c\\.py$",
+ "^tests/test_domains/test_domain_cpp\\.py$",
+ "^tests/test_domains/test_domain_js\\.py$",
+ "^tests/test_domains/test_domain_py\\.py$",
+ "^tests/test_domains/test_domain_py_fields\\.py$",
+ "^tests/test_domains/test_domain_py_pyfunction\\.py$",
+ "^tests/test_domains/test_domain_py_pyobject\\.py$",
+ "^tests/test_domains/test_domain_rst\\.py$",
+ "^tests/test_domains/test_domain_std\\.py$",
+ # tests/test_environment
+ "^tests/test_environment/test_environment_toctree\\.py$",
+ # tests/test_extensions
+ "^tests/test_extensions/test_ext_apidoc\\.py$",
+ "^tests/test_extensions/test_ext_autodoc\\.py$",
+ "^tests/test_extensions/test_ext_autodoc_autofunction\\.py$",
+ "^tests/test_extensions/test_ext_autodoc_events\\.py$",
+ "^tests/test_extensions/test_ext_autodoc_mock\\.py$",
+ "^tests/test_extensions/test_ext_autosummary\\.py$",
+ "^tests/test_extensions/test_ext_doctest\\.py$",
+ "^tests/test_extensions/test_ext_inheritance_diagram\\.py$",
+ "^tests/test_extensions/test_ext_intersphinx\\.py$",
+ "^tests/test_extensions/test_ext_napoleon\\.py$",
+ "^tests/test_extensions/test_ext_napoleon_docstring\\.py$",
+ # tests/test_intl
+ "^tests/test_intl/test_intl\\.py$",
+ # tests/test_markup
+ "^tests/test_markup/test_markup\\.py$",
+ # tests/test_pycode
+ "^tests/test_pycode/test_pycode\\.py$",
+ "^tests/test_pycode/test_pycode_ast\\.py$",
+ # tests/test_theming
+ # tests/test_transforms
+ "^tests/test_transforms/test_transforms_move_module_targets\\.py$",
+ "^tests/test_transforms/test_transforms_post_transforms\\.py$",
+ # tests/test_util
+ "^tests/test_util/test_util_fileutil\\.py$",
+ "^tests/test_util/test_util_i18n\\.py$",
+ "^tests/test_util/test_util_inspect\\.py$",
+ "^tests/test_util/test_util_logging\\.py$",
+ "^tests/test_util/test_util_nodes\\.py$",
+ "^tests/test_util/test_util_rst\\.py$",
+ "^tests/test_util/test_util_template\\.py$",
+ "^tests/test_util/test_util_typing\\.py$",
+ "^tests/test_util/typing_test_data\\.py$",
+ # tests/test_writers
]
-external = [ # Whitelist for RUF100 unknown code warnings
- "E704",
- "SIM113",
-]
-select = [
- "ALL", # every check supported by Ruff
- # nursery rules
- "E111", # Indentation is not a multiple of {indent_size}
- "E112", # Expected an indented block
- "E113", # Unexpected indentation
- "E114", # Indentation is not a multiple of {indent_size} (comment)
- "E115", # Expected an indented block (comment)
- "E116", # Unexpected indentation (comment)
- "E117", # Over-indented (comment)
- "E201", # Whitespace after '{symbol}'
- "E201", # Whitespace after '{symbol}'
- "E202", # Whitespace before '{symbol}'
- "E203", # Whitespace before '{punctuation}'
- "E211", # Whitespace before '{bracket}'
- "E221", # Multiple spaces before operator
- "E222", # Multiple spaces after operator
- "E223", # Tab before operator
- "E224", # Tab after operator
- "E225", # Missing whitespace around operator
- "E226", # Missing whitespace around arithmetic operator
- "E227", # Missing whitespace around bitwise or shift operator
- "E228", # Missing whitespace around modulo operator
- "E231", # Missing whitespace after '{token}'
- "E241", # Multiple spaces after comma
- "E242", # Tab after comma
- "E252", # Missing whitespace around parameter equals
- "E261", # Insert at least two spaces before an inline comment
- "E262", # Inline comment should start with `# `
- "E265", # Block comment should start with `# `
- "E266", # Too many leading `#` before block comment
- "E271", # Multiple spaces after keyword
- "E272", # Multiple spaces before keyword
- "E273", # Tab after keyword
- "E274", # Tab before keyword
- "E275", # Missing whitespace after keyword
-]
-
-[tool.ruff.per-file-ignores]
-"doc/conf.py" = ["INP001"]
-"doc/development/tutorials/examples/*" = ["INP001"]
-# allow print() in the tutorial
-"doc/development/tutorials/examples/recipe.py" = ["T201"]
-
-# from .flake8
-"sphinx/*" = ["E241"]
-
-# whitelist ``print`` for stdout messages
-"sphinx/cmd/build.py" = ["T201"]
-"sphinx/cmd/make_mode.py" = ["T201"]
-"sphinx/cmd/quickstart.py" = ["T201"]
-
-"sphinx/environment/collectors/toctree.py" = ["B026"]
-"sphinx/environment/adapters/toctree.py" = ["B026"]
-
-# whitelist ``print`` for stdout messages
-"sphinx/ext/intersphinx.py" = ["T201"]
-
-# whitelist ``print`` for stdout messages
-"sphinx/testing/fixtures.py" = ["T201"]
-
-# Ruff bug: https://github.com/astral-sh/ruff/issues/6540
-"sphinx/transforms/i18n.py" = ["PGH004"]
-
-"tests/*" = [
- "E501",
- "T201" # whitelist ``print`` for tests
-]
-
-# these tests need old ``typing`` generic aliases
-"tests/test_util_typing.py" = ["UP006", "UP035"]
-"tests/typing_test_data.py" = ["UP006", "UP035"]
-
-# whitelist ``print`` for stdout messages
-"utils/*" = ["T201"]
-
-[tool.ruff.flake8-quotes]
-inline-quotes = "single"
-
-[tool.mypy]
check_untyped_defs = true
disallow_incomplete_defs = true
-follow_imports = "skip"
-ignore_missing_imports = true
-no_implicit_optional = true
python_version = "3.9"
show_column_numbers = true
-show_error_codes = true
show_error_context = true
strict_optional = true
warn_redundant_casts = true
+warn_unused_configs = true
warn_unused_ignores = true
disallow_any_generics = true
+extra_checks = true
+enable_error_code = [
+ "type-arg",
+ "redundant-self",
+ "truthy-iterable",
+ "ignore-without-code",
+ "unused-awaitable",
+]
+disable_error_code = [
+ "import-untyped",
+]
[[tool.mypy.overrides]]
module = [
"sphinx.domains.c",
+ "sphinx.domains.c._ast",
+ "sphinx.domains.c._parser",
+ "sphinx.domains.c._symbol",
"sphinx.domains.cpp",
+ "sphinx.domains.cpp._ast",
+ "sphinx.domains.cpp._parser",
+ "sphinx.domains.cpp._symbol",
]
strict_optional = false
@@ -401,34 +252,45 @@ module = [
"sphinx.domains",
"sphinx.domains.c",
"sphinx.domains.cpp",
- "sphinx.environment.*",
+ "sphinx.environment",
+ "sphinx.environment.adapters.indexentries",
+ "sphinx.environment.collectors.toctree",
"sphinx.events",
- "sphinx.ext.*",
+ "sphinx.ext.autodoc",
+ "sphinx.ext.autodoc.directive",
+ "sphinx.ext.autodoc.importer",
+ "sphinx.ext.autodoc.mock",
+ "sphinx.ext.autodoc.mock",
+ "sphinx.ext.autosummary.generate",
+ "sphinx.ext.doctest",
+ "sphinx.ext.graphviz",
+ "sphinx.ext.inheritance_diagram",
+ "sphinx.ext.intersphinx",
+ "sphinx.ext.napoleon.docstring",
"sphinx.highlighting",
"sphinx.jinja2glue",
"sphinx.registry",
- "sphinx.roles",
- "sphinx.search.*",
- "sphinx.testing.*",
+ "sphinx.search",
+ "sphinx.testing.fixtures",
+ "sphinx.testing.path",
+ "sphinx.testing.util",
"sphinx.util",
"sphinx.util.display",
"sphinx.util.docfields",
"sphinx.util.docutils",
- "sphinx.util.fileutil",
"sphinx.util.i18n",
"sphinx.util.inspect",
- "sphinx.util.inventory",
"sphinx.util.logging",
- "sphinx.util.nodes",
"sphinx.util.parallel",
"sphinx.util.template",
]
disallow_any_generics = false
[tool.pytest.ini_options]
-minversion = 4.6
+minversion = "6.0"
addopts = [
- "--import-mode=importlib",
+ "-ra",
+ "--import-mode=prepend",
# "--pythonwarnings=error",
"--strict-config",
"--strict-markers",
@@ -437,9 +299,12 @@ empty_parameter_set_mark = "xfail"
filterwarnings = [
"all",
"ignore::DeprecationWarning:docutils.io",
+ "ignore:Distutils was imported before Setuptools:UserWarning:_distutils_hack",
+ "ignore:Setuptools is replacing distutils:UserWarning:_distutils_hack",
"ignore::DeprecationWarning:pyximport.pyximport",
"ignore::ImportWarning:importlib._bootstrap",
]
+log_cli_level = "INFO"
markers = [
"apidoc",
]
diff --git a/sphinx/__init__.py b/sphinx/__init__.py
index d4b2178..1ce46d6 100644
--- a/sphinx/__init__.py
+++ b/sphinx/__init__.py
@@ -1,5 +1,8 @@
"""The Sphinx documentation toolchain."""
+__version__ = '7.3.7'
+__display_version__ = __version__ # used for command line version
+
# Keep this file executable as-is in Python 3!
# (Otherwise getting the version out of it when packaging is impossible.)
@@ -13,14 +16,9 @@ from .deprecation import RemovedInNextVersionWarning
# Users can avoid this by using environment variable: PYTHONWARNINGS=
if 'PYTHONWARNINGS' not in os.environ:
warnings.filterwarnings('default', category=RemovedInNextVersionWarning)
-# docutils.io using mode='rU' for open
-warnings.filterwarnings('ignore', "'U' mode is deprecated",
- DeprecationWarning, module='docutils.io')
-warnings.filterwarnings('ignore', 'The frontend.Option class .*',
- DeprecationWarning, module='docutils.frontend')
-
-__version__ = '7.2.6'
-__display_version__ = __version__ # used for command line version
+warnings.filterwarnings(
+ 'ignore', 'The frontend.Option class .*', DeprecationWarning, module='docutils.frontend'
+)
#: Version info for better programmatic use.
#:
@@ -30,7 +28,7 @@ __display_version__ = __version__ # used for command line version
#:
#: .. versionadded:: 1.2
#: Before version 1.2, check the string ``sphinx.__version__``.
-version_info = (7, 2, 6, 'final', 0)
+version_info = (7, 3, 7, 'final', 0)
package_dir = path.abspath(path.dirname(__file__))
@@ -44,6 +42,7 @@ if _in_development:
['git', 'rev-parse', '--short', 'HEAD'],
cwd=package_dir,
capture_output=True,
+ check=False,
encoding='ascii',
errors='surrogateescape',
).stdout:
diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py
index d51d600..2a318ae 100644
--- a/sphinx/addnodes.py
+++ b/sphinx/addnodes.py
@@ -12,24 +12,7 @@ if TYPE_CHECKING:
from docutils.nodes import Element
from sphinx.application import Sphinx
-
-# deprecated name -> (object to return, canonical path or empty string)
-_DEPRECATED_OBJECTS = {
- 'meta': (nodes.meta, 'docutils.nodes.meta'), # type: ignore[attr-defined]
- 'docutils_meta': (nodes.meta, 'docutils.nodes.meta'), # type: ignore[attr-defined]
-}
-
-
-def __getattr__(name):
- if name not in _DEPRECATED_OBJECTS:
- msg = f'module {__name__!r} has no attribute {name!r}'
- raise AttributeError(msg)
-
- from sphinx.deprecation import _deprecation_warning
-
- deprecated_object, canonical_name = _DEPRECATED_OBJECTS[name]
- _deprecation_warning(__name__, name, canonical_name, remove=(7, 0))
- return deprecated_object
+ from sphinx.util.typing import ExtensionMetadata
class document(nodes.document):
@@ -44,7 +27,7 @@ class document(nodes.document):
def set_id(self, node: Element, msgnode: Element | None = None,
suggested_prefix: str = '') -> str:
- return super().set_id(node, msgnode, suggested_prefix) # type: ignore[call-arg]
+ return super().set_id(node, msgnode, suggested_prefix)
class translatable(nodes.Node):
@@ -79,6 +62,7 @@ class translatable(nodes.Node):
class not_smartquotable:
"""A node which does not support smart-quotes."""
+
support_smartquotes = False
@@ -87,7 +71,7 @@ class toctree(nodes.General, nodes.Element, translatable):
def preserve_original_messages(self) -> None:
# toctree entries
- rawentries = self.setdefault('rawentries', [])
+ rawentries: list[str] = self.setdefault('rawentries', [])
for title, _docname in self['entries']:
if title:
rawentries.append(title)
@@ -163,11 +147,12 @@ class desc_signature(_desc_classes_injector, nodes.Part, nodes.Inline, nodes.Tex
This node always has the classes ``sig``, ``sig-object``, and the domain it belongs to.
"""
+
# Note: the domain name is being added through a post-transform DescSigAddDomainAsClass
classes = ['sig', 'sig-object']
@property
- def child_text_separator(self):
+ def child_text_separator(self) -> str: # type: ignore[override]
if self.get('is_multiline'):
return ' '
else:
@@ -181,6 +166,7 @@ class desc_signature_line(nodes.Part, nodes.Inline, nodes.FixedTextElement):
with ``is_multiline`` set to ``True``.
Set ``add_permalink = True`` for the line that should get the permalink.
"""
+
sphinx_line_type = ''
@@ -199,6 +185,7 @@ class desc_inline(_desc_classes_injector, nodes.Inline, nodes.TextElement):
This node always has the classes ``sig``, ``sig-inline``,
and the name of the domain it belongs to.
"""
+
classes = ['sig', 'sig-inline']
def __init__(self, domain: str, *args: Any, **kwargs: Any) -> None:
@@ -219,6 +206,7 @@ class desc_name(_desc_classes_injector, nodes.Part, nodes.Inline, nodes.FixedTex
This node always has the class ``sig-name``.
"""
+
classes = ['sig-name', 'descname'] # 'descname' is for backwards compatibility
@@ -230,6 +218,7 @@ class desc_addname(_desc_classes_injector, nodes.Part, nodes.Inline, nodes.Fixed
This node always has the class ``sig-prename``.
"""
+
# 'descclassname' is for backwards compatibility
classes = ['sig-prename', 'descclassname']
@@ -256,9 +245,10 @@ class desc_parameterlist(nodes.Part, nodes.Inline, nodes.FixedTextElement):
Set ``multi_line_parameter_list = True`` to describe a multi-line parameter list.
In that case each parameter will then be written on its own, indented line.
"""
+
child_text_separator = ', '
- def astext(self):
+ def astext(self) -> str:
return f'({super().astext()})'
@@ -269,9 +259,10 @@ class desc_type_parameter_list(nodes.Part, nodes.Inline, nodes.FixedTextElement)
Set ``multi_line_parameter_list = True`` to describe a multi-line type parameters list.
In that case each type parameter will then be written on its own, indented line.
"""
+
child_text_separator = ', '
- def astext(self):
+ def astext(self) -> str:
return f'[{super().astext()}]'
@@ -285,6 +276,7 @@ class desc_type_parameter(nodes.Part, nodes.Inline, nodes.FixedTextElement):
class desc_optional(nodes.Part, nodes.Inline, nodes.FixedTextElement):
"""Node for marking optional parts of the parameter list."""
+
child_text_separator = ', '
def astext(self) -> str:
@@ -315,6 +307,7 @@ SIG_ELEMENTS: set[type[desc_sig_element]] = set()
class desc_sig_element(nodes.inline, _desc_classes_injector):
"""Common parent class of nodes for inline text of a signature."""
+
classes: list[str] = []
def __init__(self, rawsource: str = '', text: str = '',
@@ -322,7 +315,7 @@ class desc_sig_element(nodes.inline, _desc_classes_injector):
super().__init__(rawsource, text, *children, **attributes)
self['classes'].extend(self.classes)
- def __init_subclass__(cls, *, _sig_element=False, **kwargs):
+ def __init_subclass__(cls, *, _sig_element: bool = False, **kwargs: Any) -> None:
super().__init_subclass__(**kwargs)
if _sig_element:
# add the class to the SIG_ELEMENTS set if asked
@@ -334,6 +327,7 @@ class desc_sig_element(nodes.inline, _desc_classes_injector):
class desc_sig_space(desc_sig_element, _sig_element=True):
"""Node for a space in a signature."""
+
classes = ["w"]
def __init__(self, rawsource: str = '', text: str = ' ',
@@ -343,41 +337,49 @@ class desc_sig_space(desc_sig_element, _sig_element=True):
class desc_sig_name(desc_sig_element, _sig_element=True):
"""Node for an identifier in a signature."""
+
classes = ["n"]
class desc_sig_operator(desc_sig_element, _sig_element=True):
"""Node for an operator in a signature."""
+
classes = ["o"]
class desc_sig_punctuation(desc_sig_element, _sig_element=True):
"""Node for punctuation in a signature."""
+
classes = ["p"]
class desc_sig_keyword(desc_sig_element, _sig_element=True):
"""Node for a general keyword in a signature."""
+
classes = ["k"]
class desc_sig_keyword_type(desc_sig_element, _sig_element=True):
"""Node for a keyword which is a built-in type in a signature."""
+
classes = ["kt"]
class desc_sig_literal_number(desc_sig_element, _sig_element=True):
"""Node for a numeric literal in a signature."""
+
classes = ["m"]
class desc_sig_literal_string(desc_sig_element, _sig_element=True):
"""Node for a string literal in a signature."""
+
classes = ["s"]
class desc_sig_literal_char(desc_sig_element, _sig_element=True):
"""Node for a character literal in a signature."""
+
classes = ["sc"]
@@ -387,8 +389,8 @@ class desc_sig_literal_char(desc_sig_element, _sig_element=True):
class versionmodified(nodes.Admonition, nodes.TextElement):
"""Node for version change entries.
- Currently used for "versionadded", "versionchanged" and "deprecated"
- directives.
+ Currently used for "versionadded", "versionchanged", "deprecated"
+ and "versionremoved" directives.
"""
@@ -425,7 +427,7 @@ class index(nodes.Invisible, nodes.Inline, nodes.TextElement):
class centered(nodes.Part, nodes.TextElement):
- """This node is deprecated."""
+ """Deprecated."""
class acks(nodes.Element):
@@ -479,6 +481,7 @@ class pending_xref(nodes.Inline, nodes.Element):
These nodes are resolved before writing output, in
BuildEnvironment.resolve_references.
"""
+
child_text_separator = ''
@@ -553,7 +556,7 @@ class manpage(nodes.Inline, nodes.FixedTextElement):
"""Node for references to manpages."""
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_node(toctree)
app.add_node(desc)
diff --git a/sphinx/application.py b/sphinx/application.py
index d5fbaa9..7d16d9a 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -10,10 +10,10 @@ import os
import pickle
import sys
from collections import deque
-from collections.abc import Sequence # NoQA: TCH003
+from collections.abc import Collection, Sequence # NoQA: TCH003
from io import StringIO
from os import path
-from typing import IO, TYPE_CHECKING, Any, Callable
+from typing import IO, TYPE_CHECKING, Any, Callable, Literal
from docutils.nodes import TextElement # NoQA: TCH002
from docutils.parsers.rst import Directive, roles
@@ -22,7 +22,7 @@ from pygments.lexer import Lexer # NoQA: TCH002
import sphinx
from sphinx import locale, package_dir
-from sphinx.config import Config
+from sphinx.config import ENUM, Config, _ConfigRebuild
from sphinx.environment import BuildEnvironment
from sphinx.errors import ApplicationError, ConfigError, VersionRequirementError
from sphinx.events import EventManager
@@ -33,7 +33,7 @@ from sphinx.registry import SphinxComponentRegistry
from sphinx.util import docutils, logging
from sphinx.util._pathlib import _StrPath
from sphinx.util.build_phase import BuildPhase
-from sphinx.util.console import bold # type: ignore[attr-defined]
+from sphinx.util.console import bold
from sphinx.util.display import progress_message
from sphinx.util.i18n import CatalogRepository
from sphinx.util.logging import prefixed_warnings
@@ -210,10 +210,6 @@ class Sphinx:
self.confdir = _StrPath(confdir).resolve()
self.config = Config.read(self.confdir, confoverrides or {}, self.tags)
- # initialize some limited config variables before initialize i18n and loading
- # extensions
- self.config.pre_init_values()
-
# set up translation infrastructure
self._init_i18n()
@@ -252,8 +248,8 @@ class Sphinx:
"This is needed for conf.py to behave as a Sphinx extension."),
)
- # now that we know all config values, collect them from conf.py
- self.config.init_values()
+ # Report any warnings for overrides.
+ self.config._report_override_warnings()
self.events.emit('config-inited', self.config)
# create the project
@@ -507,8 +503,8 @@ class Sphinx:
self.registry.add_builder(builder, override=override)
# TODO(stephenfin): Describe 'types' parameter
- def add_config_value(self, name: str, default: Any, rebuild: bool | str,
- types: Any = ()) -> None:
+ def add_config_value(self, name: str, default: Any, rebuild: _ConfigRebuild,
+ types: type | Collection[type] | ENUM = ()) -> None:
"""Register a configuration value.
This is necessary for Sphinx to recognize new values and set default
@@ -542,8 +538,6 @@ class Sphinx:
converted internally.
"""
logger.debug('[app] adding config value: %r', (name, default, rebuild, types))
- if rebuild in (False, True):
- rebuild = 'env' if rebuild else ''
self.config.add(name, default, rebuild, types)
def add_event(self, name: str) -> None:
@@ -1313,7 +1307,7 @@ class Sphinx:
return True
- def set_html_assets_policy(self, policy):
+ def set_html_assets_policy(self, policy: Literal['always', 'per_page']) -> None:
"""Set the policy to include assets in HTML pages.
- always: include the assets in all the pages
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index 805ee13..ae23556 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -17,7 +17,7 @@ from sphinx.errors import SphinxError
from sphinx.locale import __
from sphinx.util import UnicodeDecodeErrorHandler, get_filetype, import_object, logging, rst
from sphinx.util.build_phase import BuildPhase
-from sphinx.util.console import bold # type: ignore[attr-defined]
+from sphinx.util.console import bold
from sphinx.util.display import progress_message, status_iterator
from sphinx.util.docutils import sphinx_domains
from sphinx.util.i18n import CatalogInfo, CatalogRepository, docname_to_domain
@@ -25,8 +25,8 @@ from sphinx.util.osutil import SEP, ensuredir, relative_uri, relpath
from sphinx.util.parallel import ParallelTasks, SerialTasks, make_chunks, parallel_available
# side effect: registers roles and directives
-from sphinx import directives # noqa: F401 isort:skip
-from sphinx import roles # noqa: F401 isort:skip
+from sphinx import directives # NoQA: F401 isort:skip
+from sphinx import roles # NoQA: F401 isort:skip
if TYPE_CHECKING:
from collections.abc import Iterable, Sequence
@@ -314,8 +314,7 @@ class Builder:
doccount = len(updated_docnames)
logger.info(bold(__('looking for now-outdated files... ')), nonl=True)
- for docname in self.env.check_dependents(self.app, updated_docnames):
- updated_docnames.add(docname)
+ updated_docnames.update(self.env.check_dependents(self.app, updated_docnames))
outdated = len(updated_docnames) - doccount
if outdated:
logger.info(__('%d found'), outdated)
@@ -520,7 +519,7 @@ class Builder:
doctree.settings = doctree.settings.copy()
doctree.settings.warning_stream = None
doctree.settings.env = None
- doctree.settings.record_dependencies = None # type: ignore[assignment]
+ doctree.settings.record_dependencies = None
doctree_filename = path.join(self.doctreedir, docname + '.doctree')
ensuredir(path.dirname(doctree_filename))
diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py
index f0db49b..31862e4 100644
--- a/sphinx/builders/_epub_base.py
+++ b/sphinx/builders/_epub_base.py
@@ -168,7 +168,7 @@ class EpubBuilder(StandaloneHTMLBuilder):
self.refnodes: list[dict[str, Any]] = []
def create_build_info(self) -> BuildInfo:
- return BuildInfo(self.config, self.tags, ['html', 'epub'])
+ return BuildInfo(self.config, self.tags, frozenset({'html', 'epub'}))
def get_theme_config(self) -> tuple[str, dict]:
return self.config.epub_theme, self.config.epub_theme_options
@@ -317,7 +317,8 @@ class EpubBuilder(StandaloneHTMLBuilder):
def footnote_spot(tree: nodes.document) -> tuple[Element, int]:
"""Find or create a spot to place footnotes.
- The function returns the tuple (parent, index)."""
+ The function returns the tuple (parent, index).
+ """
# The code uses the following heuristic:
# a) place them after the last existing footnote
# b) place them after an (empty) Footnotes rubric
@@ -417,7 +418,7 @@ class EpubBuilder(StandaloneHTMLBuilder):
path.join(self.srcdir, src), err)
continue
if self.config.epub_fix_images:
- if img.mode in ('P',):
+ if img.mode == 'P':
# See the Pillow documentation for Image.convert()
# https://pillow.readthedocs.io/en/stable/reference/Image.html#PIL.Image.Image.convert
img = img.convert()
@@ -480,7 +481,6 @@ class EpubBuilder(StandaloneHTMLBuilder):
"""Create a dictionary with all metadata for the content.opf
file properly escaped.
"""
-
if (source_date_epoch := os.getenv('SOURCE_DATE_EPOCH')) is not None:
time_tuple = time.gmtime(int(source_date_epoch))
else:
@@ -510,11 +510,19 @@ class EpubBuilder(StandaloneHTMLBuilder):
# files
self.files: list[str] = []
- self.ignored_files = ['.buildinfo', 'mimetype', 'content.opf',
- 'toc.ncx', 'META-INF/container.xml',
- 'Thumbs.db', 'ehthumbs.db', '.DS_Store',
- 'nav.xhtml', self.config.epub_basename + '.epub'] + \
- self.config.epub_exclude_files
+ self.ignored_files = [
+ '.buildinfo',
+ 'mimetype',
+ 'content.opf',
+ 'toc.ncx',
+ 'META-INF/container.xml',
+ 'Thumbs.db',
+ 'ehthumbs.db',
+ '.DS_Store',
+ 'nav.xhtml',
+ self.config.epub_basename + '.epub',
+ *self.config.epub_exclude_files,
+ ]
if not self.use_index:
self.ignored_files.append('genindex' + self.out_suffix)
for root, dirs, files in os.walk(self.outdir):
diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py
index 3e24e7d..b233e85 100644
--- a/sphinx/builders/changes.py
+++ b/sphinx/builders/changes.py
@@ -12,20 +12,22 @@ from sphinx.domains.changeset import ChangeSetDomain
from sphinx.locale import _, __
from sphinx.theming import HTMLThemeFactory
from sphinx.util import logging
-from sphinx.util.console import bold # type: ignore[attr-defined]
+from sphinx.util.console import bold
from sphinx.util.fileutil import copy_asset_file
from sphinx.util.osutil import ensuredir, os_path
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
class ChangesBuilder(Builder):
"""
- Write a summary with all versionadded/changed directives.
+ Write a summary with all versionadded/changed/deprecated/removed directives.
"""
+
name = 'changes'
epilog = __('The overview file is in %(outdir)s.')
@@ -42,6 +44,7 @@ class ChangesBuilder(Builder):
'versionadded': 'added',
'versionchanged': 'changed',
'deprecated': 'deprecated',
+ 'versionremoved': 'removed',
}
def write(self, *ignored: Any) -> None:
@@ -105,7 +108,9 @@ class ChangesBuilder(Builder):
hltext = ['.. versionadded:: %s' % version,
'.. versionchanged:: %s' % version,
- '.. deprecated:: %s' % version]
+ '.. deprecated:: %s' % version,
+ '.. versionremoved:: %s' % version,
+ ]
def hl(no: int, line: str) -> str:
line = '<a name="L%s"> </a>' % no + html.escape(line)
@@ -142,7 +147,7 @@ class ChangesBuilder(Builder):
def hl(self, text: str, version: str) -> str:
text = html.escape(text)
- for directive in ('versionchanged', 'versionadded', 'deprecated'):
+ for directive in ('versionchanged', 'versionadded', 'deprecated', 'versionremoved'):
text = text.replace(f'.. {directive}:: {version}',
f'<b>.. {directive}:: {version}</b>')
return text
@@ -151,7 +156,7 @@ class ChangesBuilder(Builder):
pass
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(ChangesBuilder)
return {
diff --git a/sphinx/builders/dirhtml.py b/sphinx/builders/dirhtml.py
index 9683ee6..dbfced3 100644
--- a/sphinx/builders/dirhtml.py
+++ b/sphinx/builders/dirhtml.py
@@ -3,7 +3,7 @@
from __future__ import annotations
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.util import logging
@@ -11,6 +11,7 @@ from sphinx.util.osutil import SEP, os_path
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -21,6 +22,7 @@ class DirectoryHTMLBuilder(StandaloneHTMLBuilder):
a directory given by their pagename, so that generated URLs don't have
``.html`` in them.
"""
+
name = 'dirhtml'
def get_target_uri(self, docname: str, typ: str | None = None) -> str:
@@ -41,7 +43,7 @@ class DirectoryHTMLBuilder(StandaloneHTMLBuilder):
return outfilename
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.setup_extension('sphinx.builders.html')
app.add_builder(DirectoryHTMLBuilder)
diff --git a/sphinx/builders/dummy.py b/sphinx/builders/dummy.py
index f025311..9c7ce83 100644
--- a/sphinx/builders/dummy.py
+++ b/sphinx/builders/dummy.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from sphinx.builders import Builder
from sphinx.locale import __
@@ -11,6 +11,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
class DummyBuilder(Builder):
@@ -38,7 +39,7 @@ class DummyBuilder(Builder):
pass
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(DummyBuilder)
return {
diff --git a/sphinx/builders/epub3.py b/sphinx/builders/epub3.py
index 40d3ce7..91c76e4 100644
--- a/sphinx/builders/epub3.py
+++ b/sphinx/builders/epub3.py
@@ -22,6 +22,7 @@ from sphinx.util.osutil import make_filename
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -75,6 +76,7 @@ class Epub3Builder(_epub_base.EpubBuilder):
and META-INF/container.xml. Afterwards, all necessary files are zipped to
an epub file.
"""
+
name = 'epub'
epilog = __('The ePub file is in %(outdir)s.')
@@ -240,7 +242,7 @@ def validate_config_values(app: Sphinx) -> None:
def convert_epub_css_files(app: Sphinx, config: Config) -> None:
- """This converts string styled epub_css_files to tuple styled one."""
+ """Convert string styled epub_css_files to tuple styled one."""
epub_css_files: list[tuple[str, dict[str, Any]]] = []
for entry in config.epub_css_files:
if isinstance(entry, str):
@@ -256,11 +258,11 @@ def convert_epub_css_files(app: Sphinx, config: Config) -> None:
config.epub_css_files = epub_css_files # type: ignore[attr-defined]
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(Epub3Builder)
# config values
- app.add_config_value('epub_basename', lambda self: make_filename(self.project), False)
+ app.add_config_value('epub_basename', lambda self: make_filename(self.project), '')
app.add_config_value('epub_version', 3.0, 'epub') # experimental
app.add_config_value('epub_theme', 'epub', 'epub')
app.add_config_value('epub_theme_options', {}, 'epub')
diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py
index 0b2bede..26d0a6d 100644
--- a/sphinx/builders/gettext.py
+++ b/sphinx/builders/gettext.py
@@ -2,6 +2,7 @@
from __future__ import annotations
+import operator
import time
from codecs import open
from collections import defaultdict
@@ -16,7 +17,7 @@ from sphinx.builders import Builder
from sphinx.errors import ThemeError
from sphinx.locale import __
from sphinx.util import logging
-from sphinx.util.console import bold # type: ignore[attr-defined]
+from sphinx.util.console import bold
from sphinx.util.display import status_iterator
from sphinx.util.i18n import CatalogInfo, docname_to_domain
from sphinx.util.index_entries import split_index_msg
@@ -27,18 +28,21 @@ from sphinx.util.template import SphinxRenderer
if TYPE_CHECKING:
import os
- from collections.abc import Generator, Iterable
+ from collections.abc import Iterable, Iterator
from docutils.nodes import Element
from sphinx.application import Sphinx
+ from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
class Message:
"""An entry of translatable message."""
- def __init__(self, text: str, locations: list[tuple[str, int]], uuids: list[str]):
+
+ def __init__(self, text: str, locations: list[tuple[str, int]], uuids: list[str]) -> None:
self.text = text
self.locations = locations
self.uuids = uuids
@@ -64,9 +68,9 @@ class Catalog:
line = origin.line
if line is None:
line = -1
- self.metadata[msg].append((origin.source, line, origin.uid))
+ self.metadata[msg].append((origin.source, line, origin.uid)) # type: ignore[arg-type]
- def __iter__(self) -> Generator[Message, None, None]:
+ def __iter__(self) -> Iterator[Message]:
for message in self.messages:
positions = sorted({(source, line) for source, line, uuid
in self.metadata[message]})
@@ -118,6 +122,7 @@ class I18nTags(Tags):
To translate all text inside of only nodes, this class
always returns True value even if no tags are defined.
"""
+
def eval_condition(self, condition: Any) -> bool:
return True
@@ -126,6 +131,7 @@ class I18nBuilder(Builder):
"""
General i18n builder.
"""
+
name = 'i18n'
versioning_method = 'text'
use_message_catalog = False
@@ -211,6 +217,7 @@ class MessageCatalogBuilder(I18nBuilder):
"""
Builds gettext-style message catalogs (.pot files).
"""
+
name = 'gettext'
epilog = __('The message catalogs are in %(outdir)s.')
@@ -275,7 +282,7 @@ class MessageCatalogBuilder(I18nBuilder):
__("writing message catalogs... "),
"darkgreen", len(self.catalogs),
self.app.verbosity,
- lambda textdomain__: textdomain__[0]):
+ operator.itemgetter(0)):
# noop if config.gettext_compact is set
ensuredir(path.join(self.outdir, path.dirname(textdomain)))
@@ -288,7 +295,16 @@ class MessageCatalogBuilder(I18nBuilder):
pofile.write(content)
-def setup(app: Sphinx) -> dict[str, Any]:
+def _gettext_compact_validator(app: Sphinx, config: Config) -> None:
+ gettext_compact = config.gettext_compact
+ # Convert 0/1 from the command line to ``bool`` types
+ if gettext_compact == '0':
+ config.gettext_compact = False # type: ignore[attr-defined]
+ elif gettext_compact == '1':
+ config.gettext_compact = True # type: ignore[attr-defined]
+
+
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(MessageCatalogBuilder)
app.add_config_value('gettext_compact', True, 'gettext', {bool, str})
@@ -298,6 +314,7 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_config_value('gettext_additional_targets', [], 'env')
app.add_config_value('gettext_last_translator', 'FULL NAME <EMAIL@ADDRESS>', 'gettext')
app.add_config_value('gettext_language_team', 'LANGUAGE <LL@li.org>', 'gettext')
+ app.connect('config-inited', _gettext_compact_validator, priority=800)
return {
'version': 'builtin',
diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py
index 85067be..75b0a39 100644
--- a/sphinx/builders/html/__init__.py
+++ b/sphinx/builders/html/__init__.py
@@ -10,6 +10,7 @@ import posixpath
import re
import sys
import time
+import types
import warnings
from os import path
from typing import IO, TYPE_CHECKING, Any
@@ -49,13 +50,16 @@ from sphinx.writers.html import HTMLWriter
from sphinx.writers.html5 import HTML5Translator
if TYPE_CHECKING:
- from collections.abc import Iterable, Iterator, Sequence
+ from collections.abc import Iterable, Iterator, Set
from docutils.nodes import Node
+ from docutils.readers import Reader
from sphinx.application import Sphinx
+ from sphinx.config import _ConfigRebuild
from sphinx.environment import BuildEnvironment
from sphinx.util.tags import Tags
+ from sphinx.util.typing import ExtensionMetadata
#: the filename for the inventory of objects
INVENTORY_FILENAME = 'objects.inv'
@@ -75,16 +79,20 @@ DOMAIN_INDEX_TYPE = tuple[
]
-def get_stable_hash(obj: Any) -> str:
- """
- Return a stable hash for a Python data structure. We can't just use
- the md5 of str(obj) since for example dictionary items are enumerated
- in unpredictable order due to hash randomization in newer Pythons.
+def _stable_hash(obj: Any) -> str:
+ """Return a stable hash for a Python data structure.
+
+ We can't just use the md5 of str(obj) as the order of collections
+ may be random.
"""
if isinstance(obj, dict):
- return get_stable_hash(list(obj.items()))
- elif isinstance(obj, (list, tuple)):
- obj = sorted(get_stable_hash(o) for o in obj)
+ obj = sorted(map(_stable_hash, obj.items()))
+ if isinstance(obj, (list, tuple, set, frozenset)):
+ obj = sorted(map(_stable_hash, obj))
+ elif isinstance(obj, (type, types.FunctionType)):
+ # The default repr() of functions includes the ID, which is not ideal.
+ # We use the fully qualified name instead.
+ obj = f'{obj.__module__}.{obj.__qualname__}'
return hashlib.md5(str(obj).encode(), usedforsecurity=False).hexdigest()
@@ -107,7 +115,7 @@ class BuildInfo:
"""
@classmethod
- def load(cls, f: IO) -> BuildInfo:
+ def load(cls: type[BuildInfo], f: IO) -> BuildInfo:
try:
lines = f.readlines()
assert lines[0].rstrip() == '# Sphinx build info version 1'
@@ -125,17 +133,17 @@ class BuildInfo:
self,
config: Config | None = None,
tags: Tags | None = None,
- config_categories: Sequence[str] = (),
+ config_categories: Set[_ConfigRebuild] = frozenset(),
) -> None:
self.config_hash = ''
self.tags_hash = ''
if config:
values = {c.name: c.value for c in config.filter(config_categories)}
- self.config_hash = get_stable_hash(values)
+ self.config_hash = _stable_hash(values)
if tags:
- self.tags_hash = get_stable_hash(sorted(tags))
+ self.tags_hash = _stable_hash(sorted(tags))
def __eq__(self, other: BuildInfo) -> bool: # type: ignore[override]
return (self.config_hash == other.config_hash and
@@ -154,6 +162,7 @@ class StandaloneHTMLBuilder(Builder):
"""
Builds standalone HTML docs.
"""
+
name = 'html'
format = 'html'
epilog = __('The HTML pages are in %(outdir)s.')
@@ -192,7 +201,7 @@ class StandaloneHTMLBuilder(Builder):
self._js_files: list[_JavaScript] = []
# Cached Publisher for writing doctrees to HTML
- reader = docutils.readers.doctree.Reader(parser_name='restructuredtext')
+ reader: Reader = docutils.readers.doctree.Reader(parser_name='restructuredtext')
pub = Publisher(
reader=reader,
parser=reader.parser,
@@ -234,7 +243,7 @@ class StandaloneHTMLBuilder(Builder):
self.use_index = self.get_builder_config('use_index', 'html')
def create_build_info(self) -> BuildInfo:
- return BuildInfo(self.config, self.tags, ['html'])
+ return BuildInfo(self.config, self.tags, frozenset({'html'}))
def _get_translations_js(self) -> str:
candidates = [path.join(dir, self.config.language,
@@ -256,8 +265,7 @@ class StandaloneHTMLBuilder(Builder):
elif self.config.html_style is not None:
yield from self.config.html_style
elif self.theme:
- stylesheet = self.theme.get_config('theme', 'stylesheet')
- yield from map(str.strip, stylesheet.split(','))
+ yield from self.theme.stylesheets
else:
yield 'default.css'
@@ -266,9 +274,9 @@ class StandaloneHTMLBuilder(Builder):
def init_templates(self) -> None:
theme_factory = HTMLThemeFactory(self.app)
- themename, themeoptions = self.get_theme_config()
- self.theme = theme_factory.create(themename)
- self.theme_options = themeoptions.copy()
+ theme_name, theme_options = self.get_theme_config()
+ self.theme = theme_factory.create(theme_name)
+ self.theme_options = theme_options
self.create_template_bridge()
self.templates.init(self, self.theme)
@@ -277,13 +285,15 @@ class StandaloneHTMLBuilder(Builder):
if self.config.pygments_style is not None:
style = self.config.pygments_style
elif self.theme:
- style = self.theme.get_config('theme', 'pygments_style', 'none')
+ # From the ``pygments_style`` theme setting
+ style = self.theme.pygments_style_default or 'none'
else:
style = 'sphinx'
self.highlighter = PygmentsBridge('html', style)
if self.theme:
- dark_style = self.theme.get_config('theme', 'pygments_dark_style', None)
+ # From the ``pygments_dark_style`` theme setting
+ dark_style = self.theme.pygments_style_dark
else:
dark_style = None
@@ -298,8 +308,7 @@ class StandaloneHTMLBuilder(Builder):
@property
def css_files(self) -> list[_CascadingStyleSheet]:
- _deprecation_warning(__name__, f'{self.__class__.__name__}.css_files', '',
- remove=(9, 0))
+ _deprecation_warning(__name__, f'{self.__class__.__name__}.css_files', remove=(9, 0))
return self._css_files
def init_css_files(self) -> None:
@@ -325,8 +334,8 @@ class StandaloneHTMLBuilder(Builder):
@property
def script_files(self) -> list[_JavaScript]:
- _deprecation_warning(__name__, f'{self.__class__.__name__}.script_files', '',
- remove=(9, 0))
+ canonical_name = f'{self.__class__.__name__}.script_files'
+ _deprecation_warning(__name__, canonical_name, remove=(9, 0))
return self._js_files
def init_js_files(self) -> None:
@@ -429,7 +438,7 @@ class StandaloneHTMLBuilder(Builder):
doc.append(node)
self._publisher.set_source(doc)
self._publisher.publish()
- return self._publisher.writer.parts # type: ignore[union-attr]
+ return self._publisher.writer.parts
def prepare_writing(self, docnames: set[str]) -> None:
# create the search indexer
@@ -547,10 +556,11 @@ class StandaloneHTMLBuilder(Builder):
'html5_doctype': True,
}
if self.theme:
- self.globalcontext.update(
- ('theme_' + key, val) for (key, val) in
- self.theme.get_options(self.theme_options).items())
- self.globalcontext.update(self.config.html_context)
+ self.globalcontext |= {
+ f'theme_{key}': val for key, val in
+ self.theme.get_options(self.theme_options).items()
+ }
+ self.globalcontext |= self.config.html_context
def get_doc_context(self, docname: str, body: str, metatags: str) -> dict[str, Any]:
"""Collect items for the template context of a page."""
@@ -708,10 +718,8 @@ class StandaloneHTMLBuilder(Builder):
# the total count of lines for each index letter, used to distribute
# the entries into two columns
genindex = IndexEntries(self.env).create_index(self)
- indexcounts = []
- for _k, entries in genindex:
- indexcounts.append(sum(1 + len(subitems)
- for _, (_, subitems, _) in entries))
+ indexcounts = [sum(1 + len(subitems) for _, (_, subitems, _) in entries)
+ for _k, entries in genindex]
genindexcontext = {
'genindexentries': genindex,
@@ -760,7 +768,7 @@ class StandaloneHTMLBuilder(Builder):
def copy_download_files(self) -> None:
def to_relpath(f: str) -> str:
- return relative_path(self.srcdir, f) # type: ignore[arg-type]
+ return relative_path(self.srcdir, f)
# copy downloadable files
if self.env.dlfiles:
@@ -777,7 +785,7 @@ class StandaloneHTMLBuilder(Builder):
path.join(self.srcdir, src), err)
def create_pygments_style_file(self) -> None:
- """create a style file for pygments."""
+ """Create a style file for pygments."""
with open(path.join(self.outdir, '_static', 'pygments.css'), 'w',
encoding="utf-8") as f:
f.write(self.highlighter.get_stylesheet())
@@ -810,7 +818,7 @@ class StandaloneHTMLBuilder(Builder):
filename, error)
if self.theme:
- for entry in self.theme.get_theme_dirs()[::-1]:
+ for entry in reversed(self.theme.get_theme_dirs()):
copy_asset(path.join(entry, 'static'),
path.join(self.outdir, '_static'),
excluded=DOTFILES, context=context,
@@ -821,7 +829,7 @@ class StandaloneHTMLBuilder(Builder):
logger.warning(__('Failed to copy a file in html_static_file: %s: %r'),
filename, error)
- excluded = Matcher(self.config.exclude_patterns + ["**/.*"])
+ excluded = Matcher([*self.config.exclude_patterns, '**/.*'])
for entry in self.config.html_static_path:
copy_asset(path.join(self.confdir, entry),
path.join(self.outdir, '_static'),
@@ -858,7 +866,7 @@ class StandaloneHTMLBuilder(Builder):
logger.warning(__('cannot copy static file %r'), err)
def copy_extra_files(self) -> None:
- """copy html_extra_path files."""
+ """Copy html_extra_path files."""
try:
with progress_message(__('copying extra files')):
excluded = Matcher(self.config.exclude_patterns)
@@ -878,7 +886,7 @@ class StandaloneHTMLBuilder(Builder):
def cleanup(self) -> None:
# clean up theme stuff
if self.theme:
- self.theme.cleanup()
+ self.theme._cleanup()
def post_process_images(self, doctree: Node) -> None:
"""Pick the best candidate for an image and link down-scaled images to
@@ -888,7 +896,7 @@ class StandaloneHTMLBuilder(Builder):
if self.config.html_scaled_image_link and self.html_scaled_image_link:
for node in doctree.findall(nodes.image):
- if not any((key in node) for key in ['scale', 'width', 'height']):
+ if not any((key in node) for key in ('scale', 'width', 'height')):
# resizing options are not given. scaled image link is available
# only for resized images.
continue
@@ -933,7 +941,7 @@ class StandaloneHTMLBuilder(Builder):
if self.indexer is not None and title:
filename = self.env.doc2path(pagename, base=False)
metadata = self.env.metadata.get(pagename, {})
- if 'nosearch' in metadata:
+ if 'no-search' in metadata or 'nosearch' in metadata:
self.indexer.feed(pagename, filename, '', new_document(''))
else:
self.indexer.feed(pagename, filename, title, doctree)
@@ -953,27 +961,11 @@ class StandaloneHTMLBuilder(Builder):
def has_wildcard(pattern: str) -> bool:
return any(char in pattern for char in '*?[')
- sidebars = None
matched = None
customsidebar = None
# default sidebars settings for selected theme
- if self.theme.name == 'alabaster':
- # provide default settings for alabaster (for compatibility)
- # Note: this will be removed before Sphinx-2.0
- try:
- # get default sidebars settings from alabaster (if defined)
- theme_default_sidebars = self.theme.config.get('theme', 'sidebars')
- if theme_default_sidebars:
- sidebars = [name.strip() for name in theme_default_sidebars.split(',')]
- except Exception:
- # fallback to better default settings
- sidebars = ['about.html', 'navigation.html', 'relations.html',
- 'searchbox.html', 'donate.html']
- else:
- theme_default_sidebars = self.theme.get_config('theme', 'sidebars', None)
- if theme_default_sidebars:
- sidebars = [name.strip() for name in theme_default_sidebars.split(',')]
+ sidebars = list(self.theme.sidebar_templates)
# user sidebar settings
html_sidebars = self.get_builder_config('sidebars', 'html')
@@ -992,7 +984,7 @@ class StandaloneHTMLBuilder(Builder):
matched = pattern
sidebars = patsidebars
- if sidebars is None:
+ if len(sidebars) == 0:
# keep defaults
pass
@@ -1040,9 +1032,7 @@ class StandaloneHTMLBuilder(Builder):
return True
if name == 'search' and self.search:
return True
- if name == 'genindex' and self.get_builder_config('use_index', 'html'):
- return True
- return False
+ return name == 'genindex' and self.get_builder_config('use_index', 'html')
ctx['hasdoc'] = hasdoc
ctx['toctree'] = lambda **kwargs: self._get_local_toctree(pagename, **kwargs)
@@ -1055,13 +1045,16 @@ class StandaloneHTMLBuilder(Builder):
outdir = self.app.outdir
def css_tag(css: _CascadingStyleSheet) -> str:
- attrs = []
- for key, value in css.attributes.items():
- if value is not None:
- attrs.append(f'{key}="{html.escape(value, quote=True)}"')
+ attrs = [f'{key}="{html.escape(value, quote=True)}"'
+ for key, value in css.attributes.items()
+ if value is not None]
uri = pathto(os.fspath(css.filename), resource=True)
- if checksum := _file_checksum(outdir, css.filename):
- uri += f'?v={checksum}'
+ # the EPUB format does not allow the use of query components
+ # the Windows help compiler requires that css links
+ # don't have a query component
+ if self.name not in {'epub', 'htmlhelp'}:
+ if checksum := _file_checksum(outdir, css.filename):
+ uri += f'?v={checksum}'
return f'<link {" ".join(sorted(attrs))} href="{uri}" />'
ctx['css_tag'] = css_tag
@@ -1071,13 +1064,10 @@ class StandaloneHTMLBuilder(Builder):
# str value (old styled)
return f'<script src="{pathto(js, resource=True)}"></script>'
- attrs = []
body = js.attributes.get('body', '')
- for key, value in js.attributes.items():
- if key == 'body':
- continue
- if value is not None:
- attrs.append(f'{key}="{html.escape(value, quote=True)}"')
+ attrs = [f'{key}="{html.escape(value, quote=True)}"'
+ for key, value in js.attributes.items()
+ if key != 'body' and value is not None]
if not js.filename:
if attrs:
@@ -1091,8 +1081,10 @@ class StandaloneHTMLBuilder(Builder):
# https://docs.mathjax.org/en/v2.7-latest/configuration.html#considerations-for-using-combined-configuration-files
# https://github.com/sphinx-doc/sphinx/issues/11658
pass
- elif checksum := _file_checksum(outdir, js.filename):
- uri += f'?v={checksum}'
+ # the EPUB format does not allow the use of query components
+ elif self.name != 'epub':
+ if checksum := _file_checksum(outdir, js.filename):
+ uri += f'?v={checksum}'
if attrs:
return f'<script {" ".join(sorted(attrs))} src="{uri}"></script>'
return f'<script src="{uri}"></script>'
@@ -1182,7 +1174,7 @@ class StandaloneHTMLBuilder(Builder):
def convert_html_css_files(app: Sphinx, config: Config) -> None:
- """This converts string styled html_css_files to tuple styled one."""
+ """Convert string styled html_css_files to tuple styled one."""
html_css_files: list[tuple[str, dict]] = []
for entry in config.html_css_files:
if isinstance(entry, str):
@@ -1205,7 +1197,7 @@ def _format_modified_time(timestamp: float) -> str:
def convert_html_js_files(app: Sphinx, config: Config) -> None:
- """This converts string styled html_js_files to tuple styled one."""
+ """Convert string styled html_js_files to tuple styled one."""
html_js_files: list[tuple[str, dict]] = []
for entry in config.html_js_files:
if isinstance(entry, str):
@@ -1302,7 +1294,7 @@ def error_on_html_4(_app: Sphinx, config: Config) -> None:
))
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
# builders
app.add_builder(StandaloneHTMLBuilder)
@@ -1310,21 +1302,20 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_config_value('html_theme', 'alabaster', 'html')
app.add_config_value('html_theme_path', [], 'html')
app.add_config_value('html_theme_options', {}, 'html')
- app.add_config_value('html_title',
- lambda self: _('%s %s documentation') % (self.project, self.release),
- 'html', [str])
+ app.add_config_value(
+ 'html_title', lambda c: _('%s %s documentation') % (c.project, c.release), 'html', str)
app.add_config_value('html_short_title', lambda self: self.html_title, 'html')
- app.add_config_value('html_style', None, 'html', [list, str])
- app.add_config_value('html_logo', None, 'html', [str])
- app.add_config_value('html_favicon', None, 'html', [str])
+ app.add_config_value('html_style', None, 'html', {list, str})
+ app.add_config_value('html_logo', None, 'html', str)
+ app.add_config_value('html_favicon', None, 'html', str)
app.add_config_value('html_css_files', [], 'html')
app.add_config_value('html_js_files', [], 'html')
app.add_config_value('html_static_path', [], 'html')
app.add_config_value('html_extra_path', [], 'html')
- app.add_config_value('html_last_updated_fmt', None, 'html', [str])
+ app.add_config_value('html_last_updated_fmt', None, 'html', str)
app.add_config_value('html_sidebars', {}, 'html')
app.add_config_value('html_additional_pages', {}, 'html')
- app.add_config_value('html_domain_indices', True, 'html', [list])
+ app.add_config_value('html_domain_indices', True, 'html', list)
app.add_config_value('html_permalinks', True, 'html')
app.add_config_value('html_permalinks_icon', '¶', 'html')
app.add_config_value('html_use_index', True, 'html')
@@ -1333,8 +1324,8 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_config_value('html_show_sourcelink', True, 'html')
app.add_config_value('html_sourcelink_suffix', '.txt', 'html')
app.add_config_value('html_use_opensearch', '', 'html')
- app.add_config_value('html_file_suffix', None, 'html', [str])
- app.add_config_value('html_link_suffix', None, 'html', [str])
+ app.add_config_value('html_file_suffix', None, 'html', str)
+ app.add_config_value('html_link_suffix', None, 'html', str)
app.add_config_value('html_show_copyright', True, 'html')
app.add_config_value('html_show_search_summary', True, 'html')
app.add_config_value('html_show_sphinx', True, 'html')
@@ -1342,12 +1333,13 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_config_value('html_output_encoding', 'utf-8', 'html')
app.add_config_value('html_compact_lists', True, 'html')
app.add_config_value('html_secnumber_suffix', '. ', 'html')
- app.add_config_value('html_search_language', None, 'html', [str])
+ app.add_config_value('html_search_language', None, 'html', str)
app.add_config_value('html_search_options', {}, 'html')
app.add_config_value('html_search_scorer', '', '')
app.add_config_value('html_scaled_image_link', True, 'html')
app.add_config_value('html_baseurl', '', 'html')
- app.add_config_value('html_codeblock_linenos_style', 'inline', 'html', # RemovedInSphinx70Warning # noqa: E501
+ # removal is indefinitely on hold (ref: https://github.com/sphinx-doc/sphinx/issues/10265)
+ app.add_config_value('html_codeblock_linenos_style', 'inline', 'html',
ENUM('table', 'inline'))
app.add_config_value('html_math_renderer', None, 'env')
app.add_config_value('html4_writer', False, 'html')
@@ -1380,14 +1372,14 @@ def setup(app: Sphinx) -> dict[str, Any]:
}
-# deprecated name -> (object to return, canonical path or empty string)
-_DEPRECATED_OBJECTS = {
+# deprecated name -> (object to return, canonical path or empty string, removal version)
+_DEPRECATED_OBJECTS: dict[str, tuple[Any, str, tuple[int, int]]] = {
'Stylesheet': (_CascadingStyleSheet, 'sphinx.builders.html._assets._CascadingStyleSheet', (9, 0)), # NoQA: E501
'JavaScript': (_JavaScript, 'sphinx.builders.html._assets._JavaScript', (9, 0)),
}
-def __getattr__(name):
+def __getattr__(name: str) -> Any:
if name not in _DEPRECATED_OBJECTS:
msg = f'module {__name__!r} has no attribute {name!r}'
raise AttributeError(msg)
diff --git a/sphinx/builders/html/_assets.py b/sphinx/builders/html/_assets.py
index a72c500..699a160 100644
--- a/sphinx/builders/html/_assets.py
+++ b/sphinx/builders/html/_assets.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import os
import warnings
import zlib
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any, NoReturn
from sphinx.deprecation import RemovedInSphinx90Warning
from sphinx.errors import ThemeError
@@ -27,15 +27,15 @@ class _CascadingStyleSheet:
) -> None:
object.__setattr__(self, 'filename', filename)
object.__setattr__(self, 'priority', priority)
- object.__setattr__(self, 'attributes', {'rel': rel, 'type': type, **attributes})
+ object.__setattr__(self, 'attributes', {'rel': rel, 'type': type} | attributes)
- def __str__(self):
+ def __str__(self) -> str:
attr = ', '.join(f'{k}={v!r}' for k, v in self.attributes.items())
return (f'{self.__class__.__name__}({self.filename!r}, '
f'priority={self.priority}, '
f'{attr})')
- def __eq__(self, other):
+ def __eq__(self, other: object) -> bool:
if isinstance(other, str):
warnings.warn('The str interface for _CascadingStyleSheet objects is deprecated. '
'Use css.filename instead.', RemovedInSphinx90Warning, stacklevel=2)
@@ -46,23 +46,23 @@ class _CascadingStyleSheet:
and self.priority == other.priority
and self.attributes == other.attributes)
- def __hash__(self):
+ def __hash__(self) -> int:
return hash((self.filename, self.priority, *sorted(self.attributes.items())))
- def __setattr__(self, key, value):
+ def __setattr__(self, key: str, value: Any) -> NoReturn:
msg = f'{self.__class__.__name__} is immutable'
raise AttributeError(msg)
- def __delattr__(self, key):
+ def __delattr__(self, key: str) -> NoReturn:
msg = f'{self.__class__.__name__} is immutable'
raise AttributeError(msg)
- def __getattr__(self, key):
+ def __getattr__(self, key: str) -> str:
warnings.warn('The str interface for _CascadingStyleSheet objects is deprecated. '
'Use css.filename instead.', RemovedInSphinx90Warning, stacklevel=2)
return getattr(os.fspath(self.filename), key)
- def __getitem__(self, key):
+ def __getitem__(self, key: int | slice) -> str:
warnings.warn('The str interface for _CascadingStyleSheet objects is deprecated. '
'Use css.filename instead.', RemovedInSphinx90Warning, stacklevel=2)
return os.fspath(self.filename)[key]
@@ -83,7 +83,7 @@ class _JavaScript:
object.__setattr__(self, 'priority', priority)
object.__setattr__(self, 'attributes', attributes)
- def __str__(self):
+ def __str__(self) -> str:
attr = ''
if self.attributes:
attr = ', ' + ', '.join(f'{k}={v!r}' for k, v in self.attributes.items())
@@ -91,7 +91,7 @@ class _JavaScript:
f'priority={self.priority}'
f'{attr})')
- def __eq__(self, other):
+ def __eq__(self, other: object) -> bool:
if isinstance(other, str):
warnings.warn('The str interface for _JavaScript objects is deprecated. '
'Use js.filename instead.', RemovedInSphinx90Warning, stacklevel=2)
@@ -102,23 +102,23 @@ class _JavaScript:
and self.priority == other.priority
and self.attributes == other.attributes)
- def __hash__(self):
+ def __hash__(self) -> int:
return hash((self.filename, self.priority, *sorted(self.attributes.items())))
- def __setattr__(self, key, value):
+ def __setattr__(self, key: str, value: Any) -> NoReturn:
msg = f'{self.__class__.__name__} is immutable'
raise AttributeError(msg)
- def __delattr__(self, key):
+ def __delattr__(self, key: str) -> NoReturn:
msg = f'{self.__class__.__name__} is immutable'
raise AttributeError(msg)
- def __getattr__(self, key):
+ def __getattr__(self, key: str) -> str:
warnings.warn('The str interface for _JavaScript objects is deprecated. '
'Use js.filename instead.', RemovedInSphinx90Warning, stacklevel=2)
return getattr(os.fspath(self.filename), key)
- def __getitem__(self, key):
+ def __getitem__(self, key: int | slice) -> str:
warnings.warn('The str interface for _JavaScript objects is deprecated. '
'Use js.filename instead.', RemovedInSphinx90Warning, stacklevel=2)
return os.fspath(self.filename)[key]
diff --git a/sphinx/builders/html/transforms.py b/sphinx/builders/html/transforms.py
index 18a8d38..a36588c 100644
--- a/sphinx/builders/html/transforms.py
+++ b/sphinx/builders/html/transforms.py
@@ -12,6 +12,7 @@ from sphinx.util.nodes import NodeMatcher
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
class KeyboardTransform(SphinxPostTransform):
@@ -31,6 +32,7 @@ class KeyboardTransform(SphinxPostTransform):
<literal class="kbd">
x
"""
+
default_priority = 400
formats = ('html',)
pattern = re.compile(r'(?<=.)(-|\+|\^|\s+)(?=.)')
@@ -46,7 +48,7 @@ class KeyboardTransform(SphinxPostTransform):
matcher = NodeMatcher(nodes.literal, classes=["kbd"])
# this list must be pre-created as during iteration new nodes
# are added which match the condition in the NodeMatcher.
- for node in list(self.document.findall(matcher)): # type: nodes.literal
+ for node in list(matcher.findall(self.document)):
parts = self.pattern.split(node[-1].astext())
if len(parts) == 1 or self.is_multiwords_key(parts):
continue
@@ -76,7 +78,7 @@ class KeyboardTransform(SphinxPostTransform):
return False
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_post_transform(KeyboardTransform)
return {
diff --git a/sphinx/builders/latex/__init__.py b/sphinx/builders/latex/__init__.py
index 3ece571..2b176f9 100644
--- a/sphinx/builders/latex/__init__.py
+++ b/sphinx/builders/latex/__init__.py
@@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Any
from docutils.frontend import OptionParser
-import sphinx.builders.latex.nodes # noqa: F401,E501 # Workaround: import this before writer to avoid ImportError
+import sphinx.builders.latex.nodes # NoQA: F401,E501 # Workaround: import this before writer to avoid ImportError
from sphinx import addnodes, highlighting, package_dir
from sphinx.builders import Builder
from sphinx.builders.latex.constants import ADDITIONAL_SETTINGS, DEFAULT_SETTINGS, SHORTHANDOFF
@@ -20,7 +20,7 @@ from sphinx.environment.adapters.asset import ImageAdapter
from sphinx.errors import NoUri, SphinxError
from sphinx.locale import _, __
from sphinx.util import logging, texescape
-from sphinx.util.console import bold, darkgreen # type: ignore[attr-defined]
+from sphinx.util.console import bold, darkgreen
from sphinx.util.display import progress_message, status_iterator
from sphinx.util.docutils import SphinxFileOutput, new_document
from sphinx.util.fileutil import copy_asset_file
@@ -39,6 +39,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
XINDY_LANG_OPTIONS = {
# language codes from docutils.writers.latex2e.Babel
@@ -108,6 +109,7 @@ class LaTeXBuilder(Builder):
"""
Builds LaTeX output to create PDF.
"""
+
name = 'latex'
format = 'latex'
epilog = __('The LaTeX files are in %(outdir)s.')
@@ -215,15 +217,18 @@ class LaTeXBuilder(Builder):
if self.context['latex_engine'] == 'pdflatex':
if not self.babel.uses_cyrillic():
if 'X2' in self.context['fontenc']:
- self.context['substitutefont'] = '\\usepackage{substitutefont}'
+ self.context['substitutefont'] = ('\\usepackage'
+ '{sphinxpackagesubstitutefont}')
self.context['textcyrillic'] = ('\\usepackage[Xtwo]'
'{sphinxpackagecyrillic}')
elif 'T2A' in self.context['fontenc']:
- self.context['substitutefont'] = '\\usepackage{substitutefont}'
+ self.context['substitutefont'] = ('\\usepackage'
+ '{sphinxpackagesubstitutefont}')
self.context['textcyrillic'] = ('\\usepackage[TtwoA]'
'{sphinxpackagecyrillic}')
if 'LGR' in self.context['fontenc']:
- self.context['substitutefont'] = '\\usepackage{substitutefont}'
+ self.context['substitutefont'] = ('\\usepackage'
+ '{sphinxpackagesubstitutefont}')
else:
self.context['textgreek'] = ''
if self.context['substitutefont'] == '':
@@ -338,7 +343,7 @@ class LaTeXBuilder(Builder):
def assemble_doctree(
self, indexfile: str, toctree_only: bool, appendices: list[str],
) -> nodes.document:
- self.docnames = set([indexfile] + appendices)
+ self.docnames = {indexfile, *appendices}
logger.info(darkgreen(indexfile) + " ", nonl=True)
tree = self.env.get_doctree(indexfile)
tree['docname'] = indexfile
@@ -371,9 +376,11 @@ class LaTeXBuilder(Builder):
newnodes: list[Node] = [nodes.emphasis(sectname, sectname)]
for subdir, title in self.titles:
if docname.startswith(subdir):
- newnodes.append(nodes.Text(_(' (in ')))
- newnodes.append(nodes.emphasis(title, title))
- newnodes.append(nodes.Text(')'))
+ newnodes.extend((
+ nodes.Text(_(' (in ')),
+ nodes.emphasis(title, title),
+ nodes.Text(')'),
+ ))
break
else:
pass
@@ -386,7 +393,7 @@ class LaTeXBuilder(Builder):
@progress_message(__('copying TeX support files'))
def copy_support_files(self) -> None:
- """copy TeX support files from texinputs."""
+ """Copy TeX support files from texinputs."""
# configure usage of xindy (impacts Makefile and latexmkrc)
# FIXME: convert this rather to a confval with suitable default
# according to language ? but would require extra documentation
@@ -476,7 +483,7 @@ def install_packages_for_ja(app: Sphinx) -> None:
def default_latex_engine(config: Config) -> str:
- """ Better default latex_engine settings for specific languages. """
+ """Better default latex_engine settings for specific languages."""
if config.language == 'ja':
return 'uplatex'
if config.language.startswith('zh'):
@@ -487,7 +494,7 @@ def default_latex_engine(config: Config) -> str:
def default_latex_docclass(config: Config) -> dict[str, str]:
- """ Better default latex_docclass settings for specific languages. """
+ """Better default latex_docclass settings for specific languages."""
if config.language == 'ja':
if config.latex_engine == 'uplatex':
return {'manual': 'ujbook',
@@ -500,12 +507,12 @@ def default_latex_docclass(config: Config) -> dict[str, str]:
def default_latex_use_xindy(config: Config) -> bool:
- """ Better default latex_use_xindy settings for specific engines. """
+ """Better default latex_use_xindy settings for specific engines."""
return config.latex_engine in {'xelatex', 'lualatex'}
def default_latex_documents(config: Config) -> list[tuple[str, str, str, str, str]]:
- """ Better default latex_documents settings. """
+ """Better default latex_documents settings."""
project = texescape.escape(config.project, config.latex_engine)
author = texescape.escape(config.author, config.latex_engine)
return [(config.root_doc,
@@ -515,7 +522,7 @@ def default_latex_documents(config: Config) -> list[tuple[str, str, str, str, st
config.latex_theme)]
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.setup_extension('sphinx.builders.latex.transforms')
app.add_builder(LaTeXBuilder)
@@ -523,26 +530,26 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.connect('config-inited', validate_latex_theme_options, priority=800)
app.connect('builder-inited', install_packages_for_ja)
- app.add_config_value('latex_engine', default_latex_engine, False,
+ app.add_config_value('latex_engine', default_latex_engine, '',
ENUM('pdflatex', 'xelatex', 'lualatex', 'platex', 'uplatex'))
- app.add_config_value('latex_documents', default_latex_documents, False)
- app.add_config_value('latex_logo', None, False, [str])
- app.add_config_value('latex_appendices', [], False)
- app.add_config_value('latex_use_latex_multicolumn', False, False)
- app.add_config_value('latex_use_xindy', default_latex_use_xindy, False, [bool])
- app.add_config_value('latex_toplevel_sectioning', None, False,
+ app.add_config_value('latex_documents', default_latex_documents, '')
+ app.add_config_value('latex_logo', None, '', str)
+ app.add_config_value('latex_appendices', [], '')
+ app.add_config_value('latex_use_latex_multicolumn', False, '')
+ app.add_config_value('latex_use_xindy', default_latex_use_xindy, '', bool)
+ app.add_config_value('latex_toplevel_sectioning', None, '',
ENUM(None, 'part', 'chapter', 'section'))
- app.add_config_value('latex_domain_indices', True, False, [list])
- app.add_config_value('latex_show_urls', 'no', False)
- app.add_config_value('latex_show_pagerefs', False, False)
- app.add_config_value('latex_elements', {}, False)
- app.add_config_value('latex_additional_files', [], False)
- app.add_config_value('latex_table_style', ['booktabs', 'colorrows'], False, [list])
- app.add_config_value('latex_theme', 'manual', False, [str])
- app.add_config_value('latex_theme_options', {}, False)
- app.add_config_value('latex_theme_path', [], False, [list])
-
- app.add_config_value('latex_docclass', default_latex_docclass, False)
+ app.add_config_value('latex_domain_indices', True, '', list)
+ app.add_config_value('latex_show_urls', 'no', '')
+ app.add_config_value('latex_show_pagerefs', False, '')
+ app.add_config_value('latex_elements', {}, '')
+ app.add_config_value('latex_additional_files', [], '')
+ app.add_config_value('latex_table_style', ['booktabs', 'colorrows'], '', list)
+ app.add_config_value('latex_theme', 'manual', '', str)
+ app.add_config_value('latex_theme_options', {}, '')
+ app.add_config_value('latex_theme_path', [], '', list)
+
+ app.add_config_value('latex_docclass', default_latex_docclass, '')
return {
'version': 'builtin',
diff --git a/sphinx/builders/latex/nodes.py b/sphinx/builders/latex/nodes.py
index 2c008b9..68b743d 100644
--- a/sphinx/builders/latex/nodes.py
+++ b/sphinx/builders/latex/nodes.py
@@ -5,26 +5,30 @@ from docutils import nodes
class captioned_literal_block(nodes.container):
"""A node for a container of literal_block having a caption."""
+
pass
class footnotemark(nodes.Inline, nodes.Referential, nodes.TextElement):
- """A node represents ``\footnotemark``."""
+ r"""A node represents ``\footnotemark``."""
+
pass
class footnotetext(nodes.General, nodes.BackLinkable, nodes.Element,
nodes.Labeled, nodes.Targetable):
- """A node represents ``\footnotetext``."""
+ r"""A node represents ``\footnotetext``."""
class math_reference(nodes.Inline, nodes.Referential, nodes.TextElement):
"""A node for a reference for equation."""
+
pass
class thebibliography(nodes.container):
"""A node for wrapping bibliographies."""
+
pass
diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py
index ca1e4f3..83599d8 100644
--- a/sphinx/builders/latex/transforms.py
+++ b/sphinx/builders/latex/transforms.py
@@ -25,18 +25,20 @@ if TYPE_CHECKING:
from docutils.nodes import Element, Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
URI_SCHEMES = ('mailto:', 'http:', 'https:', 'ftp:')
class FootnoteDocnameUpdater(SphinxTransform):
"""Add docname to footnote and footnote_reference nodes."""
+
default_priority = 700
TARGET_NODES = (nodes.footnote, nodes.footnote_reference)
def apply(self, **kwargs: Any) -> None:
matcher = NodeMatcher(*self.TARGET_NODES)
- for node in self.document.findall(matcher): # type: Element
+ for node in matcher.findall(self.document):
node['docname'] = self.env.docname
@@ -59,6 +61,7 @@ class ShowUrlsTransform(SphinxPostTransform):
.. note:: This transform is used for integrated doctree
"""
+
default_priority = 400
formats = ('latex',)
@@ -112,7 +115,7 @@ class ShowUrlsTransform(SphinxPostTransform):
node = node.parent
try:
- source = node['source'] # type: ignore[index]
+ source = node['source']
except TypeError:
raise ValueError(__('Failed to get a docname!')) from None
raise ValueError(__('Failed to get a docname '
@@ -509,6 +512,7 @@ class BibliographyTransform(SphinxPostTransform):
<citation>
...
"""
+
default_priority = 750
formats = ('latex',)
@@ -519,7 +523,7 @@ class BibliographyTransform(SphinxPostTransform):
citations += node
if len(citations) > 0:
- self.document += citations
+ self.document += citations # type: ignore[attr-defined]
class CitationReferenceTransform(SphinxPostTransform):
@@ -528,13 +532,14 @@ class CitationReferenceTransform(SphinxPostTransform):
To handle citation reference easily on LaTeX writer, this converts
pending_xref nodes to citation_reference.
"""
+
default_priority = 5 # before ReferencesResolver
formats = ('latex',)
def run(self, **kwargs: Any) -> None:
domain = cast(CitationDomain, self.env.get_domain('citation'))
matcher = NodeMatcher(addnodes.pending_xref, refdomain='citation', reftype='ref')
- for node in self.document.findall(matcher): # type: addnodes.pending_xref
+ for node in matcher.findall(self.document):
docname, labelid, _ = domain.citations.get(node['reftarget'], ('', '', 0))
if docname:
citation_ref = nodes.citation_reference('', '', *node.children,
@@ -548,6 +553,7 @@ class MathReferenceTransform(SphinxPostTransform):
To handle math reference easily on LaTeX writer, this converts pending_xref
nodes to math_reference.
"""
+
default_priority = 5 # before ReferencesResolver
formats = ('latex',)
@@ -563,18 +569,20 @@ class MathReferenceTransform(SphinxPostTransform):
class LiteralBlockTransform(SphinxPostTransform):
"""Replace container nodes for literal_block by captioned_literal_block."""
+
default_priority = 400
formats = ('latex',)
def run(self, **kwargs: Any) -> None:
matcher = NodeMatcher(nodes.container, literal_block=True)
- for node in self.document.findall(matcher): # type: nodes.container
+ for node in matcher.findall(self.document):
newnode = captioned_literal_block('', *node.children, **node.attributes)
node.replace_self(newnode)
class DocumentTargetTransform(SphinxPostTransform):
"""Add :doc label to the first section of each document."""
+
default_priority = 400
formats = ('latex',)
@@ -586,10 +594,10 @@ class DocumentTargetTransform(SphinxPostTransform):
class IndexInSectionTitleTransform(SphinxPostTransform):
- """Move index nodes in section title to outside of the title.
+ r"""Move index nodes in section title to outside of the title.
LaTeX index macro is not compatible with some handling of section titles
- such as uppercasing done on LaTeX side (cf. fncychap handling of ``\\chapter``).
+ such as uppercasing done on LaTeX side (cf. fncychap handling of ``\chapter``).
Moving the index node to after the title node fixes that.
Before::
@@ -611,6 +619,7 @@ class IndexInSectionTitleTransform(SphinxPostTransform):
blah blah blah
...
"""
+
default_priority = 400
formats = ('latex',)
@@ -623,7 +632,7 @@ class IndexInSectionTitleTransform(SphinxPostTransform):
node.parent.insert(i + 1, index)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_transform(FootnoteDocnameUpdater)
app.add_post_transform(SubstitutionDefinitionsRemover)
app.add_post_transform(BibliographyTransform)
diff --git a/sphinx/builders/latex/util.py b/sphinx/builders/latex/util.py
index 01597f9..aeef260 100644
--- a/sphinx/builders/latex/util.py
+++ b/sphinx/builders/latex/util.py
@@ -35,7 +35,7 @@ class ExtBabel(Babel):
return 'english' # fallback to english
def get_mainlanguage_options(self) -> str | None:
- """Return options for polyglossia's ``\\setmainlanguage``."""
+ r"""Return options for polyglossia's ``\setmainlanguage``."""
if self.use_polyglossia is False:
return None
elif self.language == 'german':
diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py
index f250958..9178458 100644
--- a/sphinx/builders/linkcheck.py
+++ b/sphinx/builders/linkcheck.py
@@ -7,6 +7,7 @@ import json
import re
import socket
import time
+import warnings
from html.parser import HTMLParser
from os import path
from queue import PriorityQueue, Queue
@@ -16,29 +17,26 @@ from urllib.parse import unquote, urlparse, urlsplit, urlunparse
from docutils import nodes
from requests.exceptions import ConnectionError, HTTPError, SSLError, TooManyRedirects
+from requests.exceptions import Timeout as RequestTimeout
from sphinx.builders.dummy import DummyBuilder
+from sphinx.deprecation import RemovedInSphinx80Warning
from sphinx.locale import __
from sphinx.transforms.post_transforms import SphinxPostTransform
from sphinx.util import encode_uri, logging, requests
-from sphinx.util.console import ( # type: ignore[attr-defined]
- darkgray,
- darkgreen,
- purple,
- red,
- turquoise,
-)
+from sphinx.util.console import darkgray, darkgreen, purple, red, turquoise
from sphinx.util.http_date import rfc1123_to_epoch
from sphinx.util.nodes import get_node_line
if TYPE_CHECKING:
- from collections.abc import Generator, Iterator
+ from collections.abc import Iterator
from typing import Any, Callable
from requests import Response
from sphinx.application import Sphinx
from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -56,16 +54,37 @@ class CheckExternalLinksBuilder(DummyBuilder):
"""
Checks for broken external links.
"""
+
name = 'linkcheck'
epilog = __('Look for any errors in the above output or in '
'%(outdir)s/output.txt')
def init(self) -> None:
self.broken_hyperlinks = 0
+ self.timed_out_hyperlinks = 0
self.hyperlinks: dict[str, Hyperlink] = {}
# set a timeout for non-responding servers
socket.setdefaulttimeout(5.0)
+ if not self.config.linkcheck_allow_unauthorized:
+ deprecation_msg = (
+ "The default value for 'linkcheck_allow_unauthorized' will change "
+ "from `True` in Sphinx 7.3+ to `False`, meaning that HTTP 401 "
+ "unauthorized responses will be reported as broken by default. "
+ "See https://github.com/sphinx-doc/sphinx/issues/11433 for details."
+ )
+ warnings.warn(deprecation_msg, RemovedInSphinx80Warning, stacklevel=1)
+
+ if self.config.linkcheck_report_timeouts_as_broken:
+ deprecation_msg = (
+ "The default value for 'linkcheck_report_timeouts_as_broken' will change "
+ 'to False in Sphinx 8, meaning that request timeouts '
+ "will be reported with a new 'timeout' status, instead of as 'broken'. "
+ 'This is intended to provide more detail as to the failure mode. '
+ 'See https://github.com/sphinx-doc/sphinx/issues/11868 for details.'
+ )
+ warnings.warn(deprecation_msg, RemovedInSphinx80Warning, stacklevel=1)
+
def finish(self) -> None:
checker = HyperlinkAvailabilityChecker(self.config)
logger.info('')
@@ -77,7 +96,7 @@ class CheckExternalLinksBuilder(DummyBuilder):
for result in checker.check(self.hyperlinks):
self.process_result(result)
- if self.broken_hyperlinks:
+ if self.broken_hyperlinks or self.timed_out_hyperlinks:
self.app.statuscode = 1
def process_result(self, result: CheckResult) -> None:
@@ -104,6 +123,15 @@ class CheckExternalLinksBuilder(DummyBuilder):
self.write_entry('local', result.docname, filename, result.lineno, result.uri)
elif result.status == 'working':
logger.info(darkgreen('ok ') + result.uri + result.message)
+ elif result.status == 'timeout':
+ if self.app.quiet or self.app.warningiserror:
+ logger.warning('timeout ' + result.uri + result.message,
+ location=(result.docname, result.lineno))
+ else:
+ logger.info(red('timeout ') + result.uri + red(' - ' + result.message))
+ self.write_entry('timeout', result.docname, filename, result.lineno,
+ result.uri + ': ' + result.message)
+ self.timed_out_hyperlinks += 1
elif result.status == 'broken':
if self.app.quiet or self.app.warningiserror:
logger.warning(__('broken link: %s (%s)'), result.uri, result.message,
@@ -206,7 +234,7 @@ class HyperlinkAvailabilityChecker:
self.to_ignore: list[re.Pattern[str]] = list(map(re.compile,
self.config.linkcheck_ignore))
- def check(self, hyperlinks: dict[str, Hyperlink]) -> Generator[CheckResult, None, None]:
+ def check(self, hyperlinks: dict[str, Hyperlink]) -> Iterator[CheckResult]:
self.invoke_threads()
total_links = 0
@@ -283,6 +311,11 @@ class HyperlinkAvailabilityCheckWorker(Thread):
self.allowed_redirects = config.linkcheck_allowed_redirects
self.retries: int = config.linkcheck_retries
self.rate_limit_timeout = config.linkcheck_rate_limit_timeout
+ self._allow_unauthorized = config.linkcheck_allow_unauthorized
+ if config.linkcheck_report_timeouts_as_broken:
+ self._timeout_status = 'broken'
+ else:
+ self._timeout_status = 'timeout'
self.user_agent = config.user_agent
self.tls_verify = config.tls_verify
@@ -384,7 +417,7 @@ class HyperlinkAvailabilityCheckWorker(Thread):
req_url = encode_uri(req_url)
# Get auth info, if any
- for pattern, auth_info in self.auth: # noqa: B007 (false positive)
+ for pattern, auth_info in self.auth: # NoQA: B007 (false positive)
if pattern.match(uri):
break
else:
@@ -424,6 +457,9 @@ class HyperlinkAvailabilityCheckWorker(Thread):
del response
break
+ except RequestTimeout as err:
+ return self._timeout_status, str(err), 0
+
except SSLError as err:
# SSL failure; report that the link is broken.
return 'broken', str(err), 0
@@ -437,9 +473,31 @@ class HyperlinkAvailabilityCheckWorker(Thread):
except HTTPError as err:
error_message = str(err)
- # Unauthorised: the reference probably exists
+ # Unauthorized: the client did not provide required credentials
if status_code == 401:
- return 'working', 'unauthorized', 0
+ if self._allow_unauthorized:
+ deprecation_msg = (
+ "\n---\n"
+ "The linkcheck builder encountered an HTTP 401 "
+ "(unauthorized) response, and will report it as "
+ "'working' in this version of Sphinx to maintain "
+ "backwards-compatibility."
+ "\n"
+ "This logic will change in Sphinx 8.0 which will "
+ "report the hyperlink as 'broken'."
+ "\n"
+ "To explicitly continue treating unauthorized "
+ "hyperlink responses as 'working', set the "
+ "'linkcheck_allow_unauthorized' config option to "
+ "``True``."
+ "\n"
+ "See https://github.com/sphinx-doc/sphinx/issues/11433 "
+ "for details."
+ "\n---"
+ )
+ warnings.warn(deprecation_msg, RemovedInSphinx80Warning, stacklevel=1)
+ status = 'working' if self._allow_unauthorized else 'broken'
+ return status, 'unauthorized', 0
# Rate limiting; back-off if allowed, or report failure otherwise
if status_code == 429:
@@ -534,7 +592,6 @@ def _get_request_headers(
def contains_anchor(response: Response, anchor: str) -> bool:
"""Determine if an anchor is contained within an HTTP response."""
-
parser = AnchorCheckParser(unquote(anchor))
# Read file in chunks. If we find a matching anchor, we break
# the loop early in hopes not to have to download the whole thing.
@@ -607,24 +664,26 @@ def compile_linkcheck_allowed_redirects(app: Sphinx, config: Config) -> None:
app.config.linkcheck_allowed_redirects.pop(url)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(CheckExternalLinksBuilder)
app.add_post_transform(HyperlinkCollector)
- app.add_config_value('linkcheck_ignore', [], False)
- app.add_config_value('linkcheck_exclude_documents', [], False)
- app.add_config_value('linkcheck_allowed_redirects', {}, False)
- app.add_config_value('linkcheck_auth', [], False)
- app.add_config_value('linkcheck_request_headers', {}, False)
- app.add_config_value('linkcheck_retries', 1, False)
- app.add_config_value('linkcheck_timeout', None, False, [int, float])
- app.add_config_value('linkcheck_workers', 5, False)
- app.add_config_value('linkcheck_anchors', True, False)
+ app.add_config_value('linkcheck_ignore', [], '')
+ app.add_config_value('linkcheck_exclude_documents', [], '')
+ app.add_config_value('linkcheck_allowed_redirects', {}, '')
+ app.add_config_value('linkcheck_auth', [], '')
+ app.add_config_value('linkcheck_request_headers', {}, '')
+ app.add_config_value('linkcheck_retries', 1, '')
+ app.add_config_value('linkcheck_timeout', 30, '', (int, float))
+ app.add_config_value('linkcheck_workers', 5, '')
+ app.add_config_value('linkcheck_anchors', True, '')
# Anchors starting with ! are ignored since they are
# commonly used for dynamic pages
- app.add_config_value('linkcheck_anchors_ignore', ['^!'], False)
- app.add_config_value('linkcheck_anchors_ignore_for_url', (), False, (tuple, list))
- app.add_config_value('linkcheck_rate_limit_timeout', 300.0, False)
+ app.add_config_value('linkcheck_anchors_ignore', ['^!'], '')
+ app.add_config_value('linkcheck_anchors_ignore_for_url', (), '', (tuple, list))
+ app.add_config_value('linkcheck_rate_limit_timeout', 300.0, '')
+ app.add_config_value('linkcheck_allow_unauthorized', True, '')
+ app.add_config_value('linkcheck_report_timeouts_as_broken', True, '', bool)
app.add_event('linkcheck-process-uri')
diff --git a/sphinx/builders/manpage.py b/sphinx/builders/manpage.py
index 2d35d20..93b381d 100644
--- a/sphinx/builders/manpage.py
+++ b/sphinx/builders/manpage.py
@@ -13,7 +13,7 @@ from sphinx import addnodes
from sphinx.builders import Builder
from sphinx.locale import __
from sphinx.util import logging
-from sphinx.util.console import darkgreen # type: ignore[attr-defined]
+from sphinx.util.console import darkgreen
from sphinx.util.display import progress_message
from sphinx.util.nodes import inline_all_toctrees
from sphinx.util.osutil import ensuredir, make_filename_from_project
@@ -22,6 +22,7 @@ from sphinx.writers.manpage import ManualPageTranslator, ManualPageWriter
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -30,6 +31,7 @@ class ManualPageBuilder(Builder):
"""
Builds groff output in manual page format.
"""
+
name = 'man'
format = 'man'
epilog = __('The manual pages are in %(outdir)s.')
@@ -107,18 +109,18 @@ class ManualPageBuilder(Builder):
def default_man_pages(config: Config) -> list[tuple[str, str, str, list[str], int]]:
- """ Better default man_pages settings. """
+ """Better default man_pages settings."""
filename = make_filename_from_project(config.project)
return [(config.root_doc, filename, f'{config.project} {config.release}',
[config.author], 1)]
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(ManualPageBuilder)
- app.add_config_value('man_pages', default_man_pages, False)
- app.add_config_value('man_show_urls', False, False)
- app.add_config_value('man_make_section_directory', False, False)
+ app.add_config_value('man_pages', default_man_pages, '')
+ app.add_config_value('man_show_urls', False, '')
+ app.add_config_value('man_make_section_directory', False, '')
return {
'version': 'builtin',
diff --git a/sphinx/builders/singlehtml.py b/sphinx/builders/singlehtml.py
index cd66953..efc4eaa 100644
--- a/sphinx/builders/singlehtml.py
+++ b/sphinx/builders/singlehtml.py
@@ -11,7 +11,7 @@ from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.environment.adapters.toctree import global_toctree_for_doc
from sphinx.locale import __
from sphinx.util import logging
-from sphinx.util.console import darkgreen # type: ignore[attr-defined]
+from sphinx.util.console import darkgreen
from sphinx.util.display import progress_message
from sphinx.util.nodes import inline_all_toctrees
@@ -19,6 +19,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -28,6 +29,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
A StandaloneHTMLBuilder subclass that puts the whole document tree on one
HTML page.
"""
+
name = 'singlehtml'
epilog = __('The HTML page is in %(outdir)s.')
@@ -39,8 +41,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
def get_target_uri(self, docname: str, typ: str | None = None) -> str:
if docname in self.env.all_docs:
# all references are on the same page...
- return self.config.root_doc + self.out_suffix + \
- '#document-' + docname
+ return '#document-' + docname
else:
# chances are this is a html_additional_page
return docname + self.out_suffix
@@ -189,7 +190,7 @@ class SingleFileHTMLBuilder(StandaloneHTMLBuilder):
self.handle_page('opensearch', {}, 'opensearch.xml', outfilename=fn)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.setup_extension('sphinx.builders.html')
app.add_builder(SingleFileHTMLBuilder)
diff --git a/sphinx/builders/texinfo.py b/sphinx/builders/texinfo.py
index 441b598..8d5a1aa 100644
--- a/sphinx/builders/texinfo.py
+++ b/sphinx/builders/texinfo.py
@@ -17,7 +17,7 @@ from sphinx.environment.adapters.asset import ImageAdapter
from sphinx.errors import NoUri
from sphinx.locale import _, __
from sphinx.util import logging
-from sphinx.util.console import darkgreen # type: ignore[attr-defined]
+from sphinx.util.console import darkgreen
from sphinx.util.display import progress_message, status_iterator
from sphinx.util.docutils import new_document
from sphinx.util.fileutil import copy_asset_file
@@ -32,6 +32,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
template_dir = os.path.join(package_dir, 'templates', 'texinfo')
@@ -41,6 +42,7 @@ class TexinfoBuilder(Builder):
"""
Builds Texinfo output to create Info documentation.
"""
+
name = 'texinfo'
format = 'texinfo'
epilog = __('The Texinfo files are in %(outdir)s.')
@@ -133,7 +135,7 @@ class TexinfoBuilder(Builder):
def assemble_doctree(
self, indexfile: str, toctree_only: bool, appendices: list[str],
) -> nodes.document:
- self.docnames = set([indexfile] + appendices)
+ self.docnames = {indexfile, *appendices}
logger.info(darkgreen(indexfile) + " ", nonl=True)
tree = self.env.get_doctree(indexfile)
tree['docname'] = indexfile
@@ -165,9 +167,11 @@ class TexinfoBuilder(Builder):
newnodes: list[Node] = [nodes.emphasis(sectname, sectname)]
for subdir, title in self.titles:
if docname.startswith(subdir):
- newnodes.append(nodes.Text(_(' (in ')))
- newnodes.append(nodes.emphasis(title, title))
- newnodes.append(nodes.Text(')'))
+ newnodes.extend((
+ nodes.Text(_(' (in ')),
+ nodes.emphasis(title, title),
+ nodes.Text(')'),
+ ))
break
else:
pass
@@ -205,22 +209,22 @@ class TexinfoBuilder(Builder):
def default_texinfo_documents(
config: Config,
) -> list[tuple[str, str, str, str, str, str, str]]:
- """ Better default texinfo_documents settings. """
+ """Better default texinfo_documents settings."""
filename = make_filename_from_project(config.project)
return [(config.root_doc, filename, config.project, config.author, filename,
'One line description of project', 'Miscellaneous')]
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(TexinfoBuilder)
- app.add_config_value('texinfo_documents', default_texinfo_documents, False)
- app.add_config_value('texinfo_appendices', [], False)
- app.add_config_value('texinfo_elements', {}, False)
- app.add_config_value('texinfo_domain_indices', True, False, [list])
- app.add_config_value('texinfo_show_urls', 'footnote', False)
- app.add_config_value('texinfo_no_detailmenu', False, False)
- app.add_config_value('texinfo_cross_references', True, False)
+ app.add_config_value('texinfo_documents', default_texinfo_documents, '')
+ app.add_config_value('texinfo_appendices', [], '')
+ app.add_config_value('texinfo_elements', {}, '')
+ app.add_config_value('texinfo_domain_indices', True, '', list)
+ app.add_config_value('texinfo_show_urls', 'footnote', '')
+ app.add_config_value('texinfo_no_detailmenu', False, '')
+ app.add_config_value('texinfo_cross_references', True, '')
return {
'version': 'builtin',
diff --git a/sphinx/builders/text.py b/sphinx/builders/text.py
index 43a8d1f..483e7fa 100644
--- a/sphinx/builders/text.py
+++ b/sphinx/builders/text.py
@@ -3,7 +3,7 @@
from __future__ import annotations
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils.io import StringOutput
@@ -19,6 +19,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -79,7 +80,7 @@ class TextBuilder(Builder):
pass
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(TextBuilder)
app.add_config_value('text_sectionchars', '*=-~"+`', 'env')
diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py
index 5b88531..1f2c105 100644
--- a/sphinx/builders/xml.py
+++ b/sphinx/builders/xml.py
@@ -3,7 +3,7 @@
from __future__ import annotations
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
from docutils.io import StringOutput
@@ -21,6 +21,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -29,6 +30,7 @@ class XMLBuilder(Builder):
"""
Builds Docutils-native XML.
"""
+
name = 'xml'
format = 'xml'
epilog = __('The XML files are in %(outdir)s.')
@@ -101,6 +103,7 @@ class PseudoXMLBuilder(XMLBuilder):
"""
Builds pseudo-XML for display purposes.
"""
+
name = 'pseudoxml'
format = 'pseudoxml'
epilog = __('The pseudo-XML files are in %(outdir)s.')
@@ -110,7 +113,7 @@ class PseudoXMLBuilder(XMLBuilder):
_writer_class = PseudoXMLWriter
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(XMLBuilder)
app.add_builder(PseudoXMLBuilder)
diff --git a/sphinx/cmd/build.py b/sphinx/cmd/build.py
index 3ee0ceb..be23e0b 100644
--- a/sphinx/cmd/build.py
+++ b/sphinx/cmd/build.py
@@ -21,19 +21,19 @@ from sphinx import __display_version__
from sphinx.application import Sphinx
from sphinx.errors import SphinxError, SphinxParallelError
from sphinx.locale import __
-from sphinx.util import Tee
-from sphinx.util.console import ( # type: ignore[attr-defined]
- color_terminal,
- nocolor,
- red,
- terminal_safe,
-)
+from sphinx.util._io import TeeStripANSI
+from sphinx.util.console import color_terminal, nocolor, red, terminal_safe
from sphinx.util.docutils import docutils_namespace, patch_docutils
from sphinx.util.exceptions import format_exception_cut_frames, save_traceback
from sphinx.util.osutil import ensuredir
if TYPE_CHECKING:
from collections.abc import Sequence
+ from typing import Protocol
+
+ class SupportsWrite(Protocol):
+ def write(self, text: str, /) -> int | None:
+ ...
def handle_exception(
@@ -133,75 +133,79 @@ files can be built by specifying individual filenames.
"""))
parser.add_argument('--version', action='version', dest='show_version',
- version='%%(prog)s %s' % __display_version__)
+ version=f'%(prog)s {__display_version__}')
- parser.add_argument('sourcedir',
+ parser.add_argument('sourcedir', metavar='SOURCE_DIR',
help=__('path to documentation source files'))
- parser.add_argument('outputdir',
+ parser.add_argument('outputdir', metavar='OUTPUT_DIR',
help=__('path to output directory'))
parser.add_argument('filenames', nargs='*',
- help=__('a list of specific files to rebuild. Ignored '
- 'if -a is specified'))
+ help=__('(optional) a list of specific files to rebuild. '
+ 'Ignored if --write-all is specified'))
group = parser.add_argument_group(__('general options'))
- group.add_argument('-b', metavar='BUILDER', dest='builder',
+ group.add_argument('--builder', '-b', metavar='BUILDER', dest='builder',
default='html',
- help=__('builder to use (default: html)'))
- group.add_argument('-a', action='store_true', dest='force_all',
+ help=__("builder to use (default: 'html')"))
+ group.add_argument('--jobs', '-j', metavar='N', default=1, type=jobs_argument,
+ dest='jobs',
+ help=__('run in parallel with N processes, when possible. '
+ "'auto' uses the number of CPU cores"))
+ group.add_argument('--write-all', '-a', action='store_true', dest='force_all',
help=__('write all files (default: only write new and '
'changed files)'))
- group.add_argument('-E', action='store_true', dest='freshenv',
+ group.add_argument('--fresh-env', '-E', action='store_true', dest='freshenv',
help=__("don't use a saved environment, always read "
'all files'))
- group.add_argument('-d', metavar='PATH', dest='doctreedir',
- help=__('path for the cached environment and doctree '
- 'files (default: OUTPUTDIR/.doctrees)'))
- group.add_argument('-j', '--jobs', metavar='N', default=1, type=jobs_argument,
- dest='jobs',
- help=__('build in parallel with N processes where '
- 'possible (special value "auto" will set N to cpu-count)'))
+
+ group = parser.add_argument_group(__('path options'))
+ group.add_argument('--doctree-dir', '-d', metavar='PATH', dest='doctreedir',
+ help=__('directory for doctree and environment files '
+ '(default: OUTPUT_DIR/.doctrees)'))
+ group.add_argument('--conf-dir', '-c', metavar='PATH', dest='confdir',
+ help=__('directory for the configuration file (conf.py) '
+ '(default: SOURCE_DIR)'))
+
group = parser.add_argument_group('build configuration options')
- group.add_argument('-c', metavar='PATH', dest='confdir',
- help=__('path where configuration file (conf.py) is '
- 'located (default: same as SOURCEDIR)'))
- group.add_argument('-C', action='store_true', dest='noconfig',
- help=__('use no config file at all, only -D options'))
- group.add_argument('-D', metavar='setting=value', action='append',
+ group.add_argument('--isolated', '-C', action='store_true', dest='noconfig',
+ help=__('use no configuration file, only use settings from -D options'))
+ group.add_argument('--define', '-D', metavar='setting=value', action='append',
dest='define', default=[],
help=__('override a setting in configuration file'))
- group.add_argument('-A', metavar='name=value', action='append',
+ group.add_argument('--html-define', '-A', metavar='name=value', action='append',
dest='htmldefine', default=[],
help=__('pass a value into HTML templates'))
- group.add_argument('-t', metavar='TAG', action='append',
+ group.add_argument('--tag', '-t', metavar='TAG', action='append',
dest='tags', default=[],
help=__('define tag: include "only" blocks with TAG'))
- group.add_argument('-n', action='store_true', dest='nitpicky',
- help=__('nit-picky mode, warn about all missing '
- 'references'))
+ group.add_argument('--nitpicky', '-n', action='store_true', dest='nitpicky',
+ help=__('nit-picky mode: warn about all missing references'))
group = parser.add_argument_group(__('console output options'))
- group.add_argument('-v', action='count', dest='verbosity', default=0,
+ group.add_argument('--verbose', '-v', action='count', dest='verbosity',
+ default=0,
help=__('increase verbosity (can be repeated)'))
- group.add_argument('-q', action='store_true', dest='quiet',
+ group.add_argument('--quiet', '-q', action='store_true', dest='quiet',
help=__('no output on stdout, just warnings on stderr'))
- group.add_argument('-Q', action='store_true', dest='really_quiet',
+ group.add_argument('--silent', '-Q', action='store_true', dest='really_quiet',
help=__('no output at all, not even warnings'))
- group.add_argument('--color', action='store_const', const='yes',
- default='auto',
+ group.add_argument('--color', action='store_const', dest='color',
+ const='yes', default='auto',
help=__('do emit colored output (default: auto-detect)'))
- group.add_argument('-N', '--no-color', dest='color', action='store_const',
+ group.add_argument('--no-color', '-N', action='store_const', dest='color',
const='no',
- help=__('do not emit colored output (default: '
- 'auto-detect)'))
- group.add_argument('-w', metavar='FILE', dest='warnfile',
+ help=__('do not emit colored output (default: auto-detect)'))
+
+ group = parser.add_argument_group(__('warning control options'))
+ group.add_argument('--warning-file', '-w', metavar='FILE', dest='warnfile',
help=__('write warnings (and errors) to given file'))
- group.add_argument('-W', action='store_true', dest='warningiserror',
+ group.add_argument('--fail-on-warning', '-W', action='store_true', dest='warningiserror',
help=__('turn warnings into errors'))
group.add_argument('--keep-going', action='store_true', dest='keep_going',
- help=__("with -W, keep going when getting warnings"))
- group.add_argument('-T', action='store_true', dest='traceback',
+ help=__("with --fail-on-warning, keep going when getting warnings"))
+ group.add_argument('--show-traceback', '-T', action='store_true', dest='traceback',
help=__('show full traceback on exception'))
- group.add_argument('-P', action='store_true', dest='pdb',
+ group.add_argument('--pdb', '-P', action='store_true', dest='pdb',
help=__('run Pdb on exception'))
return parser
@@ -213,58 +217,86 @@ def make_main(argv: Sequence[str]) -> int:
return make_mode.run_make_mode(argv[1:])
-def _parse_arguments(argv: Sequence[str]) -> argparse.Namespace:
- parser = get_parser()
+def _parse_arguments(parser: argparse.ArgumentParser,
+ argv: Sequence[str]) -> argparse.Namespace:
args = parser.parse_args(argv)
+ return args
+
- if args.noconfig:
- args.confdir = None
- elif not args.confdir:
- args.confdir = args.sourcedir
+def _parse_confdir(noconfig: bool, confdir: str, sourcedir: str) -> str | None:
+ if noconfig:
+ return None
+ elif not confdir:
+ return sourcedir
+ return confdir
- if not args.doctreedir:
- args.doctreedir = os.path.join(args.outputdir, '.doctrees')
- if args.force_all and args.filenames:
+def _parse_doctreedir(doctreedir: str, outputdir: str) -> str:
+ if doctreedir:
+ return doctreedir
+ return os.path.join(outputdir, '.doctrees')
+
+
+def _validate_filenames(
+ parser: argparse.ArgumentParser, force_all: bool, filenames: list[str],
+) -> None:
+ if force_all and filenames:
parser.error(__('cannot combine -a option and filenames'))
- if args.color == 'no' or (args.color == 'auto' and not color_terminal()):
+
+def _validate_colour_support(colour: str) -> None:
+ if colour == 'no' or (colour == 'auto' and not color_terminal()):
nocolor()
+
+def _parse_logging(
+ parser: argparse.ArgumentParser,
+ quiet: bool,
+ really_quiet: bool,
+ warnfile: str | None,
+) -> tuple[TextIO | None, TextIO | None, TextIO, TextIO | None]:
status: TextIO | None = sys.stdout
warning: TextIO | None = sys.stderr
error = sys.stderr
- if args.quiet:
+ if quiet:
status = None
- if args.really_quiet:
+ if really_quiet:
status = warning = None
- if warning and args.warnfile:
+ warnfp = None
+ if warning and warnfile:
try:
- warnfile = path.abspath(args.warnfile)
+ warnfile = path.abspath(warnfile)
ensuredir(path.dirname(warnfile))
- warnfp = open(args.warnfile, 'w', encoding="utf-8") # NoQA: SIM115
+ # the caller is responsible for closing this file descriptor
+ warnfp = open(warnfile, 'w', encoding="utf-8") # NoQA: SIM115
except Exception as exc:
parser.error(__('cannot open warning file %r: %s') % (
- args.warnfile, exc))
- warning = Tee(warning, warnfp) # type: ignore[assignment]
+ warnfile, exc))
+ warning = TeeStripANSI(warning, warnfp) # type: ignore[assignment]
error = warning
- args.status = status
- args.warning = warning
- args.error = error
+ return status, warning, error, warnfp
- confoverrides = {}
- for val in args.define:
+
+def _parse_confoverrides(
+ parser: argparse.ArgumentParser,
+ define: list[str],
+ htmldefine: list[str],
+ nitpicky: bool,
+) -> dict[str, Any]:
+ confoverrides: dict[str, Any] = {}
+ val: Any
+ for val in define:
try:
key, val = val.split('=', 1)
except ValueError:
parser.error(__('-D option argument must be in the form name=value'))
confoverrides[key] = val
- for val in args.htmldefine:
+ for val in htmldefine:
try:
key, val = val.split('=')
except ValueError:
@@ -272,19 +304,26 @@ def _parse_arguments(argv: Sequence[str]) -> argparse.Namespace:
with contextlib.suppress(ValueError):
val = int(val)
- confoverrides['html_context.%s' % key] = val
+ confoverrides[f'html_context.{key}'] = val
- if args.nitpicky:
+ if nitpicky:
confoverrides['nitpicky'] = True
- args.confoverrides = confoverrides
-
- return args
+ return confoverrides
def build_main(argv: Sequence[str]) -> int:
"""Sphinx build "main" command-line entry."""
- args = _parse_arguments(argv)
+ parser = get_parser()
+ args = _parse_arguments(parser, argv)
+ args.confdir = _parse_confdir(args.noconfig, args.confdir, args.sourcedir)
+ args.doctreedir = _parse_doctreedir(args.doctreedir, args.outputdir)
+ _validate_filenames(parser, args.force_all, args.filenames)
+ _validate_colour_support(args.color)
+ args.status, args.warning, args.error, warnfp = _parse_logging(
+ parser, args.quiet, args.really_quiet, args.warnfile)
+ args.confoverrides = _parse_confoverrides(
+ parser, args.define, args.htmldefine, args.nitpicky)
app = None
try:
@@ -300,6 +339,10 @@ def build_main(argv: Sequence[str]) -> int:
except (Exception, KeyboardInterrupt) as exc:
handle_exception(app, args, exc, args.error)
return 2
+ finally:
+ if warnfp is not None:
+ # close the file descriptor for the warnings file opened by Sphinx
+ warnfp.close()
def _bug_report_info() -> int:
diff --git a/sphinx/cmd/make_mode.py b/sphinx/cmd/make_mode.py
index 8b26d9d..0192946 100644
--- a/sphinx/cmd/make_mode.py
+++ b/sphinx/cmd/make_mode.py
@@ -17,17 +17,12 @@ from typing import TYPE_CHECKING
import sphinx
from sphinx.cmd.build import build_main
-from sphinx.util.console import ( # type: ignore[attr-defined]
- blue,
- bold,
- color_terminal,
- nocolor,
-)
+from sphinx.util.console import blue, bold, color_terminal, nocolor
from sphinx.util.osutil import rmtree
-try:
- from contextlib import chdir # type: ignore[attr-defined]
-except ImportError:
+if sys.version_info >= (3, 11):
+ from contextlib import chdir
+else:
from sphinx.util.osutil import _chdir as chdir
if TYPE_CHECKING:
diff --git a/sphinx/cmd/quickstart.py b/sphinx/cmd/quickstart.py
index 89aec45..8fb7eeb 100644
--- a/sphinx/cmd/quickstart.py
+++ b/sphinx/cmd/quickstart.py
@@ -31,13 +31,7 @@ from docutils.utils import column_width
import sphinx.locale
from sphinx import __display_version__, package_dir
from sphinx.locale import __
-from sphinx.util.console import ( # type: ignore[attr-defined]
- bold,
- color_terminal,
- colorize,
- nocolor,
- red,
-)
+from sphinx.util.console import bold, color_terminal, colorize, nocolor, red
from sphinx.util.osutil import ensuredir
from sphinx.util.template import SphinxRenderer
@@ -211,7 +205,6 @@ def ask_user(d: dict[str, Any]) -> None:
* makefile: make Makefile
* batchfile: make command file
"""
-
print(bold(__('Welcome to the Sphinx %s quickstart utility.')) % __display_version__)
print()
print(__('Please enter values for the following settings (just press Enter to\n'
@@ -246,9 +239,9 @@ def ask_user(d: dict[str, Any]) -> None:
if 'dot' not in d:
print()
- print(__('Inside the root directory, two more directories will be created; "_templates"\n' # noqa: E501
- 'for custom HTML templates and "_static" for custom stylesheets and other static\n' # noqa: E501
- 'files. You can enter another prefix (such as ".") to replace the underscore.')) # noqa: E501
+ print(__('Inside the root directory, two more directories will be created; "_templates"\n' # NoQA: E501
+ 'for custom HTML templates and "_static" for custom stylesheets and other static\n' # NoQA: E501
+ 'files. You can enter another prefix (such as ".") to replace the underscore.')) # NoQA: E501
d['dot'] = do_prompt(__('Name prefix for templates and static dir'), '_', ok)
if 'project' not in d:
@@ -396,10 +389,13 @@ def generate(
else:
write_file(masterfile, template.render('quickstart/root_doc.rst_t', d))
- if d.get('make_mode') is True:
+ if d.get('make_mode'):
makefile_template = 'quickstart/Makefile.new_t'
batchfile_template = 'quickstart/make.bat.new_t'
else:
+ # xref RemovedInSphinx80Warning
+ msg = "Support for '--no-use-make-mode' will be removed in Sphinx 8."
+ print(colorize('red', msg))
makefile_template = 'quickstart/Makefile_t'
batchfile_template = 'quickstart/make.bat_t'
@@ -432,6 +428,10 @@ def generate(
print(__('where "builder" is one of the supported builders, '
'e.g. html, latex or linkcheck.'))
print()
+ if not d.get('make_mode'):
+ # xref RemovedInSphinx80Warning
+ msg = "Support for '--no-use-make-mode' will be removed in Sphinx 8."
+ print(colorize('red', msg))
def valid_dir(d: dict) -> bool:
@@ -457,10 +457,7 @@ def valid_dir(d: dict) -> bool:
d['dot'] + 'templates',
d['master'] + d['suffix'],
]
- if set(reserved_names) & set(os.listdir(dir)):
- return False
-
- return True
+ return not set(reserved_names) & set(os.listdir(dir))
def get_parser() -> argparse.ArgumentParser:
diff --git a/sphinx/config.py b/sphinx/config.py
index 405ca5e..1f4b470 100644
--- a/sphinx/config.py
+++ b/sphinx/config.py
@@ -2,33 +2,45 @@
from __future__ import annotations
+import sys
import time
import traceback
import types
+import warnings
from os import getenv, path
-from typing import TYPE_CHECKING, Any, Callable, NamedTuple
+from typing import TYPE_CHECKING, Any, Literal, NamedTuple, Union
+from sphinx.deprecation import RemovedInSphinx90Warning
from sphinx.errors import ConfigError, ExtensionError
from sphinx.locale import _, __
from sphinx.util import logging
from sphinx.util.osutil import fs_encoding
-from sphinx.util.typing import NoneType
+from sphinx.util.typing import ExtensionMetadata, NoneType
-try:
- from contextlib import chdir # type: ignore[attr-defined]
-except ImportError:
+if sys.version_info >= (3, 11):
+ from contextlib import chdir
+else:
from sphinx.util.osutil import _chdir as chdir
if TYPE_CHECKING:
import os
- from collections.abc import Generator, Iterator, Sequence
+ from collections.abc import Collection, Iterator, Sequence, Set
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
from sphinx.util.tags import Tags
+ from sphinx.util.typing import _ExtensionSetupFunc
logger = logging.getLogger(__name__)
+_ConfigRebuild = Literal[
+ '', 'env', 'epub', 'gettext', 'html',
+ # sphinxcontrib-applehelp
+ 'applehelp',
+ # sphinxcontrib-devhelp
+ 'devhelp',
+]
+
CONFIG_FILENAME = 'conf.py'
UNSERIALIZABLE_TYPES = (type, types.ModuleType, types.FunctionType)
@@ -36,20 +48,31 @@ UNSERIALIZABLE_TYPES = (type, types.ModuleType, types.FunctionType)
class ConfigValue(NamedTuple):
name: str
value: Any
- rebuild: bool | str
+ rebuild: _ConfigRebuild
-def is_serializable(obj: Any) -> bool:
- """Check if object is serializable or not."""
+def is_serializable(obj: object, *, _seen: frozenset[int] = frozenset()) -> bool:
+ """Check if an object is serializable or not."""
if isinstance(obj, UNSERIALIZABLE_TYPES):
return False
- elif isinstance(obj, dict):
- for key, value in obj.items():
- if not is_serializable(key) or not is_serializable(value):
- return False
- elif isinstance(obj, (list, tuple, set)):
- return all(is_serializable(i) for i in obj)
+ # use id() to handle un-hashable objects
+ if id(obj) in _seen:
+ return True
+
+ if isinstance(obj, dict):
+ seen = _seen | {id(obj)}
+ return all(
+ is_serializable(key, _seen=seen) and is_serializable(value, _seen=seen)
+ for key, value in obj.items()
+ )
+ elif isinstance(obj, (list, tuple, set, frozenset)):
+ seen = _seen | {id(obj)}
+ return all(is_serializable(item, _seen=seen) for item in obj)
+
+ # if an issue occurs for a non-serializable type, pickle will complain
+ # since the object is likely coming from a third-party extension
+ # (we natively expect 'simple' types and not weird ones)
return True
@@ -59,6 +82,7 @@ class ENUM:
Example:
app.add_config_value('latex_show_urls', 'no', None, ENUM('no', 'footnote', 'inline'))
"""
+
def __init__(self, *candidates: str | bool | None) -> None:
self.candidates = candidates
@@ -69,10 +93,92 @@ class ENUM:
return value in self.candidates
+_OptValidTypes = Union[tuple[()], tuple[type, ...], frozenset[type], ENUM]
+
+
+class _Opt:
+ __slots__ = 'default', 'rebuild', 'valid_types'
+
+ default: Any
+ rebuild: _ConfigRebuild
+ valid_types: _OptValidTypes
+
+ def __init__(
+ self,
+ default: Any,
+ rebuild: _ConfigRebuild,
+ valid_types: _OptValidTypes,
+ ) -> None:
+ """Configuration option type for Sphinx.
+
+ The type is intended to be immutable; changing the field values
+ is an unsupported action.
+ No validation is performed on the values, though consumers will
+ likely expect them to be of the types advertised.
+ The old tuple-based interface will be removed in Sphinx 9.
+ """
+ super().__setattr__('default', default)
+ super().__setattr__('rebuild', rebuild)
+ super().__setattr__('valid_types', valid_types)
+
+ def __repr__(self) -> str:
+ return (
+ f'{self.__class__.__qualname__}('
+ f'default={self.default!r}, '
+ f'rebuild={self.rebuild!r}, '
+ f'valid_types={self.valid_types!r})'
+ )
+
+ def __eq__(self, other: object) -> bool:
+ if isinstance(other, _Opt):
+ self_tpl = (self.default, self.rebuild, self.valid_types)
+ other_tpl = (other.default, other.rebuild, other.valid_types)
+ return self_tpl == other_tpl
+ return NotImplemented
+
+ def __lt__(self, other: _Opt) -> bool:
+ if self.__class__ is other.__class__:
+ self_tpl = (self.default, self.rebuild, self.valid_types)
+ other_tpl = (other.default, other.rebuild, other.valid_types)
+ return self_tpl > other_tpl
+ return NotImplemented
+
+ def __hash__(self) -> int:
+ return hash((self.default, self.rebuild, self.valid_types))
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key in {'default', 'rebuild', 'valid_types'}:
+ msg = f'{self.__class__.__name__!r} object does not support assignment to {key!r}'
+ raise TypeError(msg)
+ super().__setattr__(key, value)
+
+ def __delattr__(self, key: str) -> None:
+ if key in {'default', 'rebuild', 'valid_types'}:
+ msg = f'{self.__class__.__name__!r} object does not support deletion of {key!r}'
+ raise TypeError(msg)
+ super().__delattr__(key)
+
+ def __getstate__(self) -> tuple[Any, _ConfigRebuild, _OptValidTypes]:
+ return self.default, self.rebuild, self.valid_types
+
+ def __setstate__(self, state: tuple[Any, _ConfigRebuild, _OptValidTypes]) -> None:
+ default, rebuild, valid_types = state
+ super().__setattr__('default', default)
+ super().__setattr__('rebuild', rebuild)
+ super().__setattr__('valid_types', valid_types)
+
+ def __getitem__(self, item: int | slice) -> Any:
+ warnings.warn(
+ f'The {self.__class__.__name__!r} object tuple interface is deprecated, '
+ "use attribute access instead for 'default', 'rebuild', and 'valid_types'.",
+ RemovedInSphinx90Warning, stacklevel=2)
+ return (self.default, self.rebuild, self.valid_types)[item]
+
+
class Config:
r"""Configuration file abstraction.
- The config object makes the values of all config values available as
+ The Config object makes the values of all config options available as
attributes.
It is exposed via the :py:class:`~sphinx.application.Sphinx`\ ``.config``
@@ -81,97 +187,119 @@ class Config:
``app.config.language`` or ``env.config.language``.
"""
- # the values are: (default, what needs to be rebuilt if changed)
+ # The values are:
+ # 1. Default
+ # 2. What needs to be rebuilt if changed
+ # 3. Valid types
- # If you add a value here, don't forget to include it in the
- # quickstart.py file template as well as in the docs!
+ # If you add a value here, remember to include it in the docs!
- config_values: dict[str, tuple] = {
+ config_values: dict[str, _Opt] = {
# general options
- 'project': ('Python', 'env', []),
- 'author': ('unknown', 'env', []),
- 'project_copyright': ('', 'html', [str, tuple, list]),
- 'copyright': (lambda c: c.project_copyright, 'html', [str, tuple, list]),
- 'version': ('', 'env', []),
- 'release': ('', 'env', []),
- 'today': ('', 'env', []),
+ 'project': _Opt('Python', 'env', ()),
+ 'author': _Opt('unknown', 'env', ()),
+ 'project_copyright': _Opt('', 'html', frozenset((str, tuple, list))),
+ 'copyright': _Opt(
+ lambda c: c.project_copyright, 'html', frozenset((str, tuple, list))),
+ 'version': _Opt('', 'env', ()),
+ 'release': _Opt('', 'env', ()),
+ 'today': _Opt('', 'env', ()),
# the real default is locale-dependent
- 'today_fmt': (None, 'env', [str]),
-
- 'language': ('en', 'env', [str]),
- 'locale_dirs': (['locales'], 'env', []),
- 'figure_language_filename': ('{root}.{language}{ext}', 'env', [str]),
- 'gettext_allow_fuzzy_translations': (False, 'gettext', []),
- 'translation_progress_classes': (False, 'env',
- ENUM(True, False, 'translated', 'untranslated')),
-
- 'master_doc': ('index', 'env', []),
- 'root_doc': (lambda config: config.master_doc, 'env', []),
- 'source_suffix': ({'.rst': 'restructuredtext'}, 'env', Any),
- 'source_encoding': ('utf-8-sig', 'env', []),
- 'exclude_patterns': ([], 'env', [str]),
- 'include_patterns': (["**"], 'env', [str]),
- 'default_role': (None, 'env', [str]),
- 'add_function_parentheses': (True, 'env', []),
- 'add_module_names': (True, 'env', []),
- 'toc_object_entries': (True, 'env', [bool]),
- 'toc_object_entries_show_parents': ('domain', 'env',
- ENUM('domain', 'all', 'hide')),
- 'trim_footnote_reference_space': (False, 'env', []),
- 'show_authors': (False, 'env', []),
- 'pygments_style': (None, 'html', [str]),
- 'highlight_language': ('default', 'env', []),
- 'highlight_options': ({}, 'env', []),
- 'templates_path': ([], 'html', []),
- 'template_bridge': (None, 'html', [str]),
- 'keep_warnings': (False, 'env', []),
- 'suppress_warnings': ([], 'env', []),
- 'modindex_common_prefix': ([], 'html', []),
- 'rst_epilog': (None, 'env', [str]),
- 'rst_prolog': (None, 'env', [str]),
- 'trim_doctest_flags': (True, 'env', []),
- 'primary_domain': ('py', 'env', [NoneType]),
- 'needs_sphinx': (None, None, [str]),
- 'needs_extensions': ({}, None, []),
- 'manpages_url': (None, 'env', []),
- 'nitpicky': (False, None, []),
- 'nitpick_ignore': ([], None, [set, list, tuple]),
- 'nitpick_ignore_regex': ([], None, [set, list, tuple]),
- 'numfig': (False, 'env', []),
- 'numfig_secnum_depth': (1, 'env', []),
- 'numfig_format': ({}, 'env', []), # will be initialized in init_numfig_format()
- 'maximum_signature_line_length': (None, 'env', {int, None}),
- 'math_number_all': (False, 'env', []),
- 'math_eqref_format': (None, 'env', [str]),
- 'math_numfig': (True, 'env', []),
- 'tls_verify': (True, 'env', []),
- 'tls_cacerts': (None, 'env', []),
- 'user_agent': (None, 'env', [str]),
- 'smartquotes': (True, 'env', []),
- 'smartquotes_action': ('qDe', 'env', []),
- 'smartquotes_excludes': ({'languages': ['ja'],
- 'builders': ['man', 'text']},
- 'env', []),
- 'option_emphasise_placeholders': (False, 'env', []),
+ 'today_fmt': _Opt(None, 'env', frozenset((str,))),
+
+ 'language': _Opt('en', 'env', frozenset((str,))),
+ 'locale_dirs': _Opt(['locales'], 'env', ()),
+ 'figure_language_filename': _Opt('{root}.{language}{ext}', 'env', frozenset((str,))),
+ 'gettext_allow_fuzzy_translations': _Opt(False, 'gettext', ()),
+ 'translation_progress_classes': _Opt(
+ False, 'env', ENUM(True, False, 'translated', 'untranslated')),
+
+ 'master_doc': _Opt('index', 'env', ()),
+ 'root_doc': _Opt(lambda config: config.master_doc, 'env', ()),
+ # ``source_suffix`` type is actually ``dict[str, str | None]``:
+ # see ``convert_source_suffix()`` below.
+ 'source_suffix': _Opt(
+ {'.rst': 'restructuredtext'}, 'env', Any), # type: ignore[arg-type]
+ 'source_encoding': _Opt('utf-8-sig', 'env', ()),
+ 'exclude_patterns': _Opt([], 'env', frozenset((str,))),
+ 'include_patterns': _Opt(["**"], 'env', frozenset((str,))),
+ 'default_role': _Opt(None, 'env', frozenset((str,))),
+ 'add_function_parentheses': _Opt(True, 'env', ()),
+ 'add_module_names': _Opt(True, 'env', ()),
+ 'toc_object_entries': _Opt(True, 'env', frozenset((bool,))),
+ 'toc_object_entries_show_parents': _Opt(
+ 'domain', 'env', ENUM('domain', 'all', 'hide')),
+ 'trim_footnote_reference_space': _Opt(False, 'env', ()),
+ 'show_authors': _Opt(False, 'env', ()),
+ 'pygments_style': _Opt(None, 'html', frozenset((str,))),
+ 'highlight_language': _Opt('default', 'env', ()),
+ 'highlight_options': _Opt({}, 'env', ()),
+ 'templates_path': _Opt([], 'html', ()),
+ 'template_bridge': _Opt(None, 'html', frozenset((str,))),
+ 'keep_warnings': _Opt(False, 'env', ()),
+ 'suppress_warnings': _Opt([], 'env', ()),
+ 'show_warning_types': _Opt(False, 'env', frozenset((bool,))),
+ 'modindex_common_prefix': _Opt([], 'html', ()),
+ 'rst_epilog': _Opt(None, 'env', frozenset((str,))),
+ 'rst_prolog': _Opt(None, 'env', frozenset((str,))),
+ 'trim_doctest_flags': _Opt(True, 'env', ()),
+ 'primary_domain': _Opt('py', 'env', frozenset((NoneType,))),
+ 'needs_sphinx': _Opt(None, '', frozenset((str,))),
+ 'needs_extensions': _Opt({}, '', ()),
+ 'manpages_url': _Opt(None, 'env', ()),
+ 'nitpicky': _Opt(False, '', ()),
+ 'nitpick_ignore': _Opt([], '', frozenset((set, list, tuple))),
+ 'nitpick_ignore_regex': _Opt([], '', frozenset((set, list, tuple))),
+ 'numfig': _Opt(False, 'env', ()),
+ 'numfig_secnum_depth': _Opt(1, 'env', ()),
+ 'numfig_format': _Opt({}, 'env', ()), # will be initialized in init_numfig_format()
+ 'maximum_signature_line_length': _Opt(
+ None, 'env', frozenset((int, NoneType))),
+ 'math_number_all': _Opt(False, 'env', ()),
+ 'math_eqref_format': _Opt(None, 'env', frozenset((str,))),
+ 'math_numfig': _Opt(True, 'env', ()),
+ 'tls_verify': _Opt(True, 'env', ()),
+ 'tls_cacerts': _Opt(None, 'env', ()),
+ 'user_agent': _Opt(None, 'env', frozenset((str,))),
+ 'smartquotes': _Opt(True, 'env', ()),
+ 'smartquotes_action': _Opt('qDe', 'env', ()),
+ 'smartquotes_excludes': _Opt(
+ {'languages': ['ja'], 'builders': ['man', 'text']}, 'env', ()),
+ 'option_emphasise_placeholders': _Opt(False, 'env', ()),
}
def __init__(self, config: dict[str, Any] | None = None,
overrides: dict[str, Any] | None = None) -> None:
- config = config or {}
- self.overrides = dict(overrides) if overrides is not None else {}
- self.values = Config.config_values.copy()
- self._raw_config = config
- self.setup: Callable | None = config.get('setup', None)
-
- if 'extensions' in self.overrides:
- if isinstance(self.overrides['extensions'], str):
- config['extensions'] = self.overrides.pop('extensions').split(',')
+ raw_config: dict[str, Any] = config or {}
+ self._overrides = dict(overrides) if overrides is not None else {}
+ self._options = Config.config_values.copy()
+ self._raw_config = raw_config
+
+ for name in list(self._overrides.keys()):
+ if '.' in name:
+ real_name, key = name.split('.', 1)
+ raw_config.setdefault(real_name, {})[key] = self._overrides.pop(name)
+
+ self.setup: _ExtensionSetupFunc | None = raw_config.get('setup')
+
+ if 'extensions' in self._overrides:
+ extensions = self._overrides.pop('extensions')
+ if isinstance(extensions, str):
+ raw_config['extensions'] = extensions.split(',')
else:
- config['extensions'] = self.overrides.pop('extensions')
- self.extensions: list[str] = config.get('extensions', [])
+ raw_config['extensions'] = extensions
+ self.extensions: list[str] = raw_config.get('extensions', [])
+
+ @property
+ def values(self) -> dict[str, _Opt]:
+ return self._options
+
+ @property
+ def overrides(self) -> dict[str, Any]:
+ return self._overrides
@classmethod
- def read(cls, confdir: str | os.PathLike[str], overrides: dict | None = None,
+ def read(cls: type[Config], confdir: str | os.PathLike[str], overrides: dict | None = None,
tags: Tags | None = None) -> Config:
"""Create a Config object from configuration file."""
filename = path.join(confdir, CONFIG_FILENAME)
@@ -190,106 +318,103 @@ class Config:
"Falling back to 'en' (English)."))
namespace["language"] = "en"
- return cls(namespace, overrides or {})
+ return cls(namespace, overrides)
- def convert_overrides(self, name: str, value: Any) -> Any:
- if not isinstance(value, str):
+ def convert_overrides(self, name: str, value: str) -> Any:
+ opt = self._options[name]
+ default = opt.default
+ valid_types = opt.valid_types
+ if valid_types == Any:
return value
- else:
- defvalue = self.values[name][0]
- if self.values[name][2] == Any:
+ elif (type(default) is bool
+ or (not isinstance(valid_types, ENUM)
+ and len(valid_types) == 1 and bool in valid_types)):
+ if isinstance(valid_types, ENUM) or len(valid_types) > 1:
+ # if valid_types are given, and non-bool valid types exist,
+ # return the value without coercing to a Boolean.
return value
- elif self.values[name][2] == {bool, str}:
- if value == '0':
- # given falsy string from command line option
- return False
- elif value == '1':
- return True
- else:
- return value
- elif type(defvalue) is bool or self.values[name][2] == [bool]:
- if value == '0':
- # given falsy string from command line option
- return False
- else:
- return bool(value)
- elif isinstance(defvalue, dict):
- raise ValueError(__('cannot override dictionary config setting %r, '
- 'ignoring (use %r to set individual elements)') %
- (name, name + '.key=value'))
- elif isinstance(defvalue, list):
- return value.split(',')
- elif isinstance(defvalue, int):
- try:
- return int(value)
- except ValueError as exc:
- raise ValueError(__('invalid number %r for config value %r, ignoring') %
- (value, name)) from exc
- elif callable(defvalue):
- return value
- elif defvalue is not None and not isinstance(defvalue, str):
- raise ValueError(__('cannot override config setting %r with unsupported '
- 'type, ignoring') % name)
- else:
- return value
-
- def pre_init_values(self) -> None:
- """
- Initialize some limited config variables before initializing i18n and loading
- extensions.
- """
- variables = ['needs_sphinx', 'suppress_warnings', 'language', 'locale_dirs']
- for name in variables:
+ # given falsy string from a command line option
+ return value not in {'0', ''}
+ elif isinstance(default, dict):
+ raise ValueError(__('cannot override dictionary config setting %r, '
+ 'ignoring (use %r to set individual elements)') %
+ (name, f'{name}.key=value'))
+ elif isinstance(default, list):
+ return value.split(',')
+ elif isinstance(default, int):
try:
- if name in self.overrides:
- self.__dict__[name] = self.convert_overrides(name, self.overrides[name])
- elif name in self._raw_config:
- self.__dict__[name] = self._raw_config[name]
+ return int(value)
except ValueError as exc:
- logger.warning("%s", exc)
+ raise ValueError(__('invalid number %r for config value %r, ignoring') %
+ (value, name)) from exc
+ elif callable(default):
+ return value
+ elif default is not None and not isinstance(default, str):
+ raise ValueError(__('cannot override config setting %r with unsupported '
+ 'type, ignoring') % name)
+ else:
+ return value
+
+ @staticmethod
+ def pre_init_values() -> None:
+ # method only retained for compatibility
+ pass
+ # warnings.warn(
+ # 'Config.pre_init_values() will be removed in Sphinx 9.0 or later',
+ # RemovedInSphinx90Warning, stacklevel=2)
def init_values(self) -> None:
- config = self._raw_config
- for valname, value in self.overrides.items():
+ # method only retained for compatibility
+ self._report_override_warnings()
+ # warnings.warn(
+ # 'Config.init_values() will be removed in Sphinx 9.0 or later',
+ # RemovedInSphinx90Warning, stacklevel=2)
+
+ def _report_override_warnings(self) -> None:
+ for name in self._overrides:
+ if name not in self._options:
+ logger.warning(__('unknown config value %r in override, ignoring'), name)
+
+ def __repr__(self) -> str:
+ values = []
+ for opt_name in self._options:
try:
- if '.' in valname:
- realvalname, key = valname.split('.', 1)
- config.setdefault(realvalname, {})[key] = value
- continue
- if valname not in self.values:
- logger.warning(__('unknown config value %r in override, ignoring'),
- valname)
- continue
- if isinstance(value, str):
- config[valname] = self.convert_overrides(valname, value)
- else:
- config[valname] = value
- except ValueError as exc:
- logger.warning("%s", exc)
- for name in config:
- if name in self.values:
- self.__dict__[name] = config[name]
-
- def post_init_values(self) -> None:
- """
- Initialize additional config variables that are added after init_values() called.
- """
- config = self._raw_config
- for name in config:
- if name not in self.__dict__ and name in self.values:
- self.__dict__[name] = config[name]
-
- check_confval_types(None, self)
+ opt_value = getattr(self, opt_name)
+ except Exception:
+ opt_value = '<error!>'
+ values.append(f"{opt_name}={opt_value!r}")
+ return self.__class__.__qualname__ + '(' + ', '.join(values) + ')'
def __getattr__(self, name: str) -> Any:
+ if name in self._options:
+ # first check command-line overrides
+ if name in self._overrides:
+ value = self._overrides[name]
+ if not isinstance(value, str):
+ self.__dict__[name] = value
+ return value
+ try:
+ value = self.convert_overrides(name, value)
+ except ValueError as exc:
+ logger.warning("%s", exc)
+ else:
+ self.__dict__[name] = value
+ return value
+ # then check values from 'conf.py'
+ if name in self._raw_config:
+ self.__dict__[name] = value = self._raw_config[name]
+ return value
+ # finally, fall back to the default value
+ default = self._options[name].default
+ if callable(default):
+ return default(self)
+ self.__dict__[name] = default
+ return default
if name.startswith('_'):
- raise AttributeError(name)
- if name not in self.values:
- raise AttributeError(__('No such config value: %s') % name)
- default = self.values[name][0]
- if callable(default):
- return default(self)
- return default
+ msg = f'{self.__class__.__name__!r} object has no attribute {name!r}'
+ raise AttributeError(msg)
+ msg = __('No such config value: %r') % name
+ raise AttributeError(msg)
def __getitem__(self, name: str) -> Any:
return getattr(self, name)
@@ -301,46 +426,72 @@ class Config:
delattr(self, name)
def __contains__(self, name: str) -> bool:
- return name in self.values
+ return name in self._options
- def __iter__(self) -> Generator[ConfigValue, None, None]:
- for name, value in self.values.items():
- yield ConfigValue(name, getattr(self, name), value[1])
+ def __iter__(self) -> Iterator[ConfigValue]:
+ for name, opt in self._options.items():
+ yield ConfigValue(name, getattr(self, name), opt.rebuild)
- def add(self, name: str, default: Any, rebuild: bool | str, types: Any) -> None:
- if name in self.values:
+ def add(self, name: str, default: Any, rebuild: _ConfigRebuild,
+ types: type | Collection[type] | ENUM) -> None:
+ if name in self._options:
raise ExtensionError(__('Config value %r already present') % name)
- self.values[name] = (default, rebuild, types)
- def filter(self, rebuild: str | Sequence[str]) -> Iterator[ConfigValue]:
+ # standardise rebuild
+ if isinstance(rebuild, bool):
+ rebuild = 'env' if rebuild else ''
+
+ # standardise valid_types
+ valid_types = _validate_valid_types(types)
+ self._options[name] = _Opt(default, rebuild, valid_types)
+
+ def filter(self, rebuild: Set[_ConfigRebuild]) -> Iterator[ConfigValue]:
if isinstance(rebuild, str):
- rebuild = [rebuild]
+ return (value for value in self if value.rebuild == rebuild)
return (value for value in self if value.rebuild in rebuild)
def __getstate__(self) -> dict:
"""Obtains serializable data for pickling."""
# remove potentially pickling-problematic values from config
- __dict__ = {}
- for key, value in self.__dict__.items():
- if key.startswith('_') or not is_serializable(value):
- pass
- else:
- __dict__[key] = value
-
- # create a picklable copy of values list
- __dict__['values'] = {}
- for key, value in self.values.items():
- real_value = getattr(self, key)
+ __dict__ = {
+ key: value
+ for key, value in self.__dict__.items()
+ if not key.startswith('_') and is_serializable(value)
+ }
+ # create a picklable copy of ``self._options``
+ __dict__['_options'] = _options = {}
+ for name, opt in self._options.items():
+ if not isinstance(opt, _Opt) and isinstance(opt, tuple) and len(opt) <= 3:
+ # Fix for Furo's ``_update_default``.
+ self._options[name] = opt = _Opt(*opt)
+ real_value = getattr(self, name)
if not is_serializable(real_value):
+ if opt.rebuild:
+ # if the value is not cached, then any build that utilises this cache
+ # will always mark the config value as changed,
+ # and thus always invalidate the cache and perform a rebuild.
+ logger.warning(
+ __('cannot cache unpickable configuration value: %r '
+ '(because it contains a function, class, or module object)'),
+ name,
+ type='config',
+ subtype='cache',
+ once=True,
+ )
# omit unserializable value
real_value = None
-
- # types column is also omitted
- __dict__['values'][key] = (real_value, value[1], None)
+ # valid_types is also omitted
+ _options[name] = real_value, opt.rebuild
return __dict__
def __setstate__(self, state: dict) -> None:
+ self._overrides = {}
+ self._options = {
+ name: _Opt(real_value, rebuild, ())
+ for name, (real_value, rebuild) in state.pop('_options').items()
+ }
+ self._raw_config = {}
self.__dict__.update(state)
@@ -373,6 +524,31 @@ def eval_config_file(filename: str, tags: Tags | None) -> dict[str, Any]:
return namespace
+def _validate_valid_types(
+ valid_types: type | Collection[type] | ENUM, /,
+) -> tuple[()] | tuple[type, ...] | frozenset[type] | ENUM:
+ if not valid_types:
+ return ()
+ if isinstance(valid_types, (frozenset, ENUM)):
+ return valid_types
+ if isinstance(valid_types, type):
+ return frozenset((valid_types,))
+ if valid_types is Any:
+ return frozenset({Any}) # type: ignore[arg-type]
+ if isinstance(valid_types, set):
+ return frozenset(valid_types)
+ if not isinstance(valid_types, tuple):
+ try:
+ valid_types = tuple(valid_types)
+ except TypeError:
+ logger.warning(__('Failed to convert %r to a set or tuple'), valid_types)
+ return valid_types # type: ignore[return-value]
+ try:
+ return frozenset(valid_types)
+ except TypeError:
+ return valid_types
+
+
def convert_source_suffix(app: Sphinx, config: Config) -> None:
"""Convert old styled source_suffix to new styled one.
@@ -388,7 +564,7 @@ def convert_source_suffix(app: Sphinx, config: Config) -> None:
config.source_suffix = {source_suffix: None} # type: ignore[attr-defined]
elif isinstance(source_suffix, (list, tuple)):
# if list, considers as all of them are default filetype
- config.source_suffix = {s: None for s in source_suffix} # type: ignore[attr-defined]
+ config.source_suffix = dict.fromkeys(source_suffix, None) # type: ignore[attr-defined]
elif not isinstance(source_suffix, dict):
logger.warning(__("The config value `source_suffix' expects "
"a string, list of strings, or dictionary. "
@@ -463,7 +639,7 @@ def _substitute_copyright_year(copyright_line: str, replace_year: str) -> str:
if copyright_line[4] != '-':
return copyright_line
- if copyright_line[5:9].isdigit() and copyright_line[9] in ' ,':
+ if copyright_line[5:9].isdigit() and copyright_line[9:10] in {'', ' ', ','}:
return copyright_line[:5] + replace_year + copyright_line[9:]
return copyright_line
@@ -473,54 +649,64 @@ def check_confval_types(app: Sphinx | None, config: Config) -> None:
"""Check all values for deviation from the default value's type, since
that can result in TypeErrors all over the place NB.
"""
- for confval in config:
- default, rebuild, annotations = config.values[confval.name]
+ for name, opt in config._options.items():
+ default = opt.default
+ valid_types = opt.valid_types
+ value = getattr(config, name)
if callable(default):
default = default(config) # evaluate default value
- if default is None and not annotations:
- continue # neither inferable nor expliclitly annotated types
-
- if annotations is Any:
- # any type of value is accepted
- pass
- elif isinstance(annotations, ENUM):
- if not annotations.match(confval.value):
+ if default is None and not valid_types:
+ continue # neither inferable nor explicitly annotated types
+
+ if valid_types == frozenset({Any}): # any type of value is accepted
+ continue
+
+ if isinstance(valid_types, ENUM):
+ if not valid_types.match(value):
msg = __("The config value `{name}` has to be a one of {candidates}, "
"but `{current}` is given.")
- logger.warning(msg.format(name=confval.name,
- current=confval.value,
- candidates=annotations.candidates), once=True)
- else:
- if type(confval.value) is type(default):
- continue
- if type(confval.value) in annotations:
- continue
-
- common_bases = (set(type(confval.value).__bases__ + (type(confval.value),)) &
- set(type(default).__bases__))
- common_bases.discard(object)
- if common_bases:
- continue # at least we share a non-trivial base class
-
- if annotations:
- msg = __("The config value `{name}' has type `{current.__name__}'; "
- "expected {permitted}.")
- wrapped_annotations = [f"`{c.__name__}'" for c in annotations]
- if len(wrapped_annotations) > 2:
- permitted = (", ".join(wrapped_annotations[:-1])
- + f", or {wrapped_annotations[-1]}")
- else:
- permitted = " or ".join(wrapped_annotations)
- logger.warning(msg.format(name=confval.name,
- current=type(confval.value),
- permitted=permitted), once=True)
+ logger.warning(
+ msg.format(name=name, current=value, candidates=valid_types.candidates),
+ once=True,
+ )
+ continue
+
+ type_value = type(value)
+ type_default = type(default)
+
+ if type_value is type_default: # attempt to infer the type
+ continue
+
+ if type_value in valid_types: # check explicitly listed types
+ continue
+
+ common_bases = ({*type_value.__bases__, type_value}
+ & set(type_default.__bases__))
+ common_bases.discard(object)
+ if common_bases:
+ continue # at least we share a non-trivial base class
+
+ if valid_types:
+ msg = __("The config value `{name}' has type `{current.__name__}'; "
+ "expected {permitted}.")
+ wrapped_valid_types = sorted(f"`{c.__name__}'" for c in valid_types)
+ if len(wrapped_valid_types) > 2:
+ permitted = (", ".join(wrapped_valid_types[:-1])
+ + f", or {wrapped_valid_types[-1]}")
else:
- msg = __("The config value `{name}' has type `{current.__name__}', "
- "defaults to `{default.__name__}'.")
- logger.warning(msg.format(name=confval.name,
- current=type(confval.value),
- default=type(default)), once=True)
+ permitted = " or ".join(wrapped_valid_types)
+ logger.warning(
+ msg.format(name=name, current=type_value, permitted=permitted),
+ once=True,
+ )
+ else:
+ msg = __("The config value `{name}' has type `{current.__name__}', "
+ "defaults to `{default.__name__}'.")
+ logger.warning(
+ msg.format(name=name, current=type_value, default=type_default),
+ once=True,
+ )
def check_primary_domain(app: Sphinx, config: Config) -> None:
@@ -545,7 +731,7 @@ def check_root_doc(app: Sphinx, env: BuildEnvironment, added: set[str],
return changed
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('config-inited', convert_source_suffix, priority=800)
app.connect('config-inited', convert_highlight_options, priority=800)
app.connect('config-inited', init_numfig_format, priority=800)
diff --git a/sphinx/deprecation.py b/sphinx/deprecation.py
index 8a242d7..8561789 100644
--- a/sphinx/deprecation.py
+++ b/sphinx/deprecation.py
@@ -19,23 +19,32 @@ RemovedInNextVersionWarning = RemovedInSphinx80Warning
def _deprecation_warning(
module: str,
attribute: str,
- canonical_name: str,
+ canonical_name: str = '',
*,
remove: tuple[int, int],
+ raises: bool = False,
) -> None:
- """Helper function for module-level deprecations using __getattr__
+ """Helper function for module-level deprecations using ``__getattr__``.
- Exemplar usage:
+ :param module: The module containing a deprecated object.
+ :param attribute: The name of the deprecated object.
+ :param canonical_name: Optional fully-qualified name for its replacement.
+ :param remove: Target version for removal.
+ :param raises: Indicate whether to raise an exception instead of a warning.
- .. code:: python
+ When *raises* is ``True``, an :exc:`AttributeError` is raised instead
+ of emitting a warning so that it is easy to locate deprecated objects
+ in tests that could suppress deprecation warnings.
- # deprecated name -> (object to return, canonical path or empty string)
+ Usage::
+
+ # deprecated name -> (object to return, canonical path or empty string, removal version)
_DEPRECATED_OBJECTS = {
'deprecated_name': (object_to_return, 'fully_qualified_replacement_name', (8, 0)),
}
- def __getattr__(name):
+ def __getattr__(name: str) -> Any:
if name not in _DEPRECATED_OBJECTS:
msg = f'module {__name__!r} has no attribute {name!r}'
raise AttributeError(msg)
@@ -46,7 +55,6 @@ def _deprecation_warning(
_deprecation_warning(__name__, name, canonical_name, remove=remove)
return deprecated_object
"""
-
if remove == (8, 0):
warning_class: type[Warning] = RemovedInSphinx80Warning
elif remove == (9, 0):
@@ -55,12 +63,14 @@ def _deprecation_warning(
msg = f'removal version {remove!r} is invalid!'
raise RuntimeError(msg)
- qualified_name = f'{module}.{attribute}'
+ qualname = f'{module}.{attribute}'
if canonical_name:
- message = (f'The alias {qualified_name!r} is deprecated, '
- f'use {canonical_name!r} instead.')
+ message = f'The alias {qualname!r} is deprecated, use {canonical_name!r} instead.'
else:
- message = f'{qualified_name!r} is deprecated.'
+ message = f'{qualname!r} is deprecated.'
+
+ if raises:
+ raise AttributeError(message)
- warnings.warn(message + " Check CHANGES for Sphinx API modifications.",
- warning_class, stacklevel=3)
+ message = f'{message} Check CHANGES for Sphinx API modifications.'
+ warnings.warn(message, warning_class, stacklevel=3)
diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py
index d4cf28e..9e06a7a 100644
--- a/sphinx/directives/__init__.py
+++ b/sphinx/directives/__init__.py
@@ -3,7 +3,7 @@
from __future__ import annotations
import re
-from typing import TYPE_CHECKING, Any, Generic, TypeVar, cast
+from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar, cast
from docutils import nodes
from docutils.parsers.rst import directives, roles
@@ -14,7 +14,7 @@ from sphinx.util import docutils
from sphinx.util.docfields import DocFieldTransformer, Field, TypedField
from sphinx.util.docutils import SphinxDirective
from sphinx.util.nodes import nested_parse_with_titles
-from sphinx.util.typing import OptionSpec # NoQA: TCH001
+from sphinx.util.typing import ExtensionMetadata, OptionSpec # NoQA: TCH001
if TYPE_CHECKING:
from docutils.nodes import Node
@@ -55,7 +55,7 @@ class ObjectDescription(SphinxDirective, Generic[ObjDescT]):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'no-index': directives.flag,
'no-index-entry': directives.flag,
'no-contents-entry': directives.flag,
@@ -118,7 +118,7 @@ class ObjectDescription(SphinxDirective, Generic[ObjDescT]):
*name* is whatever :meth:`handle_signature()` returned.
"""
- return # do nothing by default
+ pass # do nothing by default
def before_content(self) -> None:
"""
@@ -296,7 +296,7 @@ class ObjectDescription(SphinxDirective, Generic[ObjDescT]):
# If ``:no-index:`` is set, or there are no ids on the node
# or any of its children, then just return the index node,
# as Docutils expects a target node to have at least one id.
- if node_ids := [node_id for el in node.findall(nodes.Element)
+ if node_ids := [node_id for el in node.findall(nodes.Element) # type: ignore[var-annotated]
for node_id in el.get('ids', ())]:
target_node = nodes.target(ids=node_ids)
self.set_source_info(target_node)
@@ -320,7 +320,7 @@ class DefaultRole(SphinxDirective):
role_name = self.arguments[0]
role, messages = roles.role(role_name, self.state_machine.language,
self.lineno, self.state.reporter)
- if role: # type: ignore[truthy-function]
+ if role:
docutils.register_role('', role) # type: ignore[arg-type]
self.env.temp_data['default_role'] = role_name
else:
@@ -342,7 +342,7 @@ class DefaultDomain(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
domain_name = self.arguments[0].lower()
@@ -356,7 +356,7 @@ class DefaultDomain(SphinxDirective):
return []
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_config_value("strip_signature_backslash", False, 'env')
directives.register_directive('default-role', DefaultRole)
directives.register_directive('default-domain', DefaultDomain)
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py
index 8de1661..da6c3c9 100644
--- a/sphinx/directives/code.py
+++ b/sphinx/directives/code.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import sys
import textwrap
from difflib import unified_diff
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, Any, ClassVar
from docutils import nodes
from docutils.parsers.rst import directives
@@ -20,7 +20,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
logger = logging.getLogger(__name__)
@@ -35,7 +35,7 @@ class Highlight(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'force': directives.flag,
'linenothreshold': directives.positive_int,
}
@@ -102,7 +102,7 @@ class CodeBlock(SphinxDirective):
required_arguments = 0
optional_arguments = 1
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'force': directives.flag,
'linenos': directives.flag,
'dedent': optional_int,
@@ -287,7 +287,7 @@ class LiteralIncludeReader:
'set of "lines"'))
lines = [lines[n] for n in linelist if n < len(lines)]
- if lines == []:
+ if not lines:
raise ValueError(__('Line spec %r: no lines pulled from include file %r') %
(linespec, self.filename))
@@ -393,7 +393,7 @@ class LiteralInclude(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'dedent': optional_int,
'linenos': directives.flag,
'lineno-start': int,
@@ -469,7 +469,7 @@ class LiteralInclude(SphinxDirective):
return [document.reporter.warning(exc, line=self.lineno)]
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
directives.register_directive('highlight', Highlight)
directives.register_directive('code-block', CodeBlock)
directives.register_directive('sourcecode', CodeBlock)
diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py
index 65cd90b..286db29 100644
--- a/sphinx/directives/other.py
+++ b/sphinx/directives/other.py
@@ -3,7 +3,7 @@ from __future__ import annotations
import re
from os.path import abspath, relpath
from pathlib import Path
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, Any, ClassVar, cast
from docutils import nodes
from docutils.parsers.rst import directives
@@ -13,7 +13,7 @@ from docutils.parsers.rst.directives.misc import Include as BaseInclude
from docutils.statemachine import StateMachine
from sphinx import addnodes
-from sphinx.domains.changeset import VersionChange # noqa: F401 # for compatibility
+from sphinx.domains.changeset import VersionChange # NoQA: F401 # for compatibility
from sphinx.domains.std import StandardDomain
from sphinx.locale import _, __
from sphinx.util import docname_join, logging, url_re
@@ -22,10 +22,12 @@ from sphinx.util.matching import Matcher, patfilter
from sphinx.util.nodes import explicit_title_re
if TYPE_CHECKING:
+ from collections.abc import Sequence
+
from docutils.nodes import Element, Node
from sphinx.application import Sphinx
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
glob_re = re.compile(r'.*[*?\[].*')
@@ -43,6 +45,7 @@ class TocTree(SphinxDirective):
Directive to notify Sphinx about the hierarchical structure of the docs,
and to include a table-of-contents like tree in the current document.
"""
+
has_content = True
required_arguments = 0
optional_arguments = 0
@@ -173,11 +176,12 @@ class Author(SphinxDirective):
Directive to give the name of the author of the current document
or section. Shown in the output only if the show_authors option is on.
"""
+
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
if not self.config.show_authors:
@@ -206,6 +210,7 @@ class SeeAlso(BaseAdmonition):
"""
An admonition mentioning things to look at as reference.
"""
+
node_class = addnodes.seealso
@@ -213,11 +218,12 @@ class TabularColumns(SphinxDirective):
"""
Directive to give an explicit tabulary column definition to LaTeX.
"""
+
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
node = addnodes.tabular_col_spec()
@@ -230,11 +236,12 @@ class Centered(SphinxDirective):
"""
Directive to create a centered line of bold text.
"""
+
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
if not self.arguments:
@@ -252,11 +259,12 @@ class Acks(SphinxDirective):
"""
Directive for a list of names.
"""
+
has_content = True
required_arguments = 0
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
node = addnodes.acks()
@@ -274,11 +282,12 @@ class HList(SphinxDirective):
"""
Directive for a list that gets compacted horizontally.
"""
+
has_content = True
required_arguments = 0
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'columns': int,
}
@@ -311,11 +320,12 @@ class Only(SphinxDirective):
"""
Directive to only include text if the given tag(s) are enabled.
"""
+
has_content = True
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
node = addnodes.only()
@@ -371,14 +381,14 @@ class Include(BaseInclude, SphinxDirective):
"correctly", i.e. relative to source directory.
"""
- def run(self) -> list[Node]:
+ def run(self) -> Sequence[Node]:
# To properly emit "include-read" events from included RST text,
# we must patch the ``StateMachine.insert_input()`` method.
# In the future, docutils will hopefully offer a way for Sphinx
# to provide the RST parser to use
# when parsing RST text that comes in via Include directive.
- def _insert_input(include_lines, source):
+ def _insert_input(include_lines: list[str], source: str) -> None:
# First, we need to combine the lines back into text so that
# we can send it with the include-read event.
# In docutils 0.18 and later, there are two lines at the end
@@ -405,7 +415,7 @@ class Include(BaseInclude, SphinxDirective):
# Only enable this patch if there are listeners for 'include-read'.
if self.env.app.events.listeners.get('include-read'):
# See https://github.com/python/mypy/issues/2427 for details on the mypy issue
- self.state_machine.insert_input = _insert_input # type: ignore[method-assign]
+ self.state_machine.insert_input = _insert_input
if self.arguments[0].startswith('<') and \
self.arguments[0].endswith('>'):
@@ -417,7 +427,7 @@ class Include(BaseInclude, SphinxDirective):
return super().run()
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
directives.register_directive('toctree', TocTree)
directives.register_directive('sectionauthor', Author)
directives.register_directive('moduleauthor', Author)
diff --git a/sphinx/directives/patches.py b/sphinx/directives/patches.py
index 965b385..145f1f5 100644
--- a/sphinx/directives/patches.py
+++ b/sphinx/directives/patches.py
@@ -2,13 +2,13 @@ from __future__ import annotations
import os
from os import path
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, ClassVar, cast
from docutils import nodes
from docutils.nodes import Node, make_id
from docutils.parsers.rst import directives
from docutils.parsers.rst.directives import images, tables
-from docutils.parsers.rst.directives.misc import Meta # type: ignore[attr-defined]
+from docutils.parsers.rst.directives.misc import Meta
from docutils.parsers.rst.roles import set_classes
from sphinx.directives import optional_int
@@ -21,7 +21,7 @@ from sphinx.util.osutil import SEP, os_path, relpath
if TYPE_CHECKING:
from sphinx.application import Sphinx
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
logger = logging.getLogger(__name__)
@@ -80,8 +80,9 @@ class Code(SphinxDirective):
This is compatible with docutils' :rst:dir:`code` directive.
"""
+
optional_arguments = 1
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'class': directives.class_option,
'force': directives.flag,
'name': directives.unchanged,
@@ -126,7 +127,7 @@ class MathDirective(SphinxDirective):
required_arguments = 0
optional_arguments = 1
final_argument_whitespace = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'label': directives.unchanged,
'name': directives.unchanged,
'class': directives.class_option,
@@ -175,7 +176,7 @@ class MathDirective(SphinxDirective):
ret.insert(0, target)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
directives.register_directive('figure', Figure)
directives.register_directive('meta', Meta)
directives.register_directive('csv-table', CSVTable)
diff --git a/sphinx/domains/__init__.py b/sphinx/domains/__init__.py
index 7c11220..6c2dc7b 100644
--- a/sphinx/domains/__init__.py
+++ b/sphinx/domains/__init__.py
@@ -93,7 +93,7 @@ class Index(ABC):
shortname: str | None = None
def __init__(self, domain: Domain) -> None:
- if self.name is None or self.localname is None:
+ if not self.name or self.localname is None:
raise SphinxError('Index subclass %s has no valid name or localname'
% self.__class__.__name__)
self.domain = domain
@@ -296,7 +296,7 @@ class Domain:
"""Remove traces of a document in the domain-specific inventories."""
pass
- def merge_domaindata(self, docnames: list[str], otherdata: dict) -> None:
+ def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
"""Merge in data regarding *docnames* from a different domaindata
inventory (coming from a subprocess in parallel builds).
"""
diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py
deleted file mode 100644
index 9444c6b..0000000
--- a/sphinx/domains/c.py
+++ /dev/null
@@ -1,3906 +0,0 @@
-"""The C language domain."""
-
-from __future__ import annotations
-
-import re
-from typing import TYPE_CHECKING, Any, Callable, TypeVar, Union, cast
-
-from docutils import nodes
-from docutils.parsers.rst import directives
-
-from sphinx import addnodes
-from sphinx.directives import ObjectDescription
-from sphinx.domains import Domain, ObjType
-from sphinx.locale import _, __
-from sphinx.roles import SphinxRole, XRefRole
-from sphinx.transforms import SphinxTransform
-from sphinx.transforms.post_transforms import ReferencesResolver
-from sphinx.util import logging
-from sphinx.util.cfamily import (
- ASTAttributeList,
- ASTBaseBase,
- ASTBaseParenExprList,
- BaseParser,
- DefinitionError,
- NoOldIdError,
- StringifyTransform,
- UnsupportedMultiCharacterCharLiteral,
- anon_identifier_re,
- binary_literal_re,
- char_literal_re,
- float_literal_re,
- float_literal_suffix_re,
- hex_literal_re,
- identifier_re,
- integer_literal_re,
- integers_literal_suffix_re,
- octal_literal_re,
- verify_description_mode,
-)
-from sphinx.util.docfields import Field, GroupedField, TypedField
-from sphinx.util.docutils import SphinxDirective
-from sphinx.util.nodes import make_refnode
-
-if TYPE_CHECKING:
- from collections.abc import Generator, Iterator
-
- from docutils.nodes import Element, Node, TextElement, system_message
-
- from sphinx.addnodes import pending_xref
- from sphinx.application import Sphinx
- from sphinx.builders import Builder
- from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
-
-logger = logging.getLogger(__name__)
-T = TypeVar('T')
-
-DeclarationType = Union[
- "ASTStruct", "ASTUnion", "ASTEnum", "ASTEnumerator",
- "ASTType", "ASTTypeWithInit", "ASTMacro",
-]
-
-# https://en.cppreference.com/w/c/keyword
-_keywords = [
- 'auto', 'break', 'case', 'char', 'const', 'continue', 'default', 'do', 'double',
- 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if', 'inline', 'int', 'long',
- 'register', 'restrict', 'return', 'short', 'signed', 'sizeof', 'static', 'struct',
- 'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
- '_Alignas', '_Alignof', '_Atomic', '_Bool', '_Complex',
- '_Decimal32', '_Decimal64', '_Decimal128',
- '_Generic', '_Imaginary', '_Noreturn', '_Static_assert', '_Thread_local',
-]
-# These are only keyword'y when the corresponding headers are included.
-# They are used as default value for c_extra_keywords.
-_macroKeywords = [
- 'alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert',
- 'thread_local',
-]
-
-# these are ordered by precedence
-_expression_bin_ops = [
- ['||', 'or'],
- ['&&', 'and'],
- ['|', 'bitor'],
- ['^', 'xor'],
- ['&', 'bitand'],
- ['==', '!=', 'not_eq'],
- ['<=', '>=', '<', '>'],
- ['<<', '>>'],
- ['+', '-'],
- ['*', '/', '%'],
- ['.*', '->*'],
-]
-_expression_unary_ops = ["++", "--", "*", "&", "+", "-", "!", "not", "~", "compl"]
-_expression_assignment_ops = ["=", "*=", "/=", "%=", "+=", "-=",
- ">>=", "<<=", "&=", "and_eq", "^=", "xor_eq", "|=", "or_eq"]
-
-_max_id = 1
-_id_prefix = [None, 'c.', 'Cv2.']
-# Ids are used in lookup keys which are used across pickled files,
-# so when _max_id changes, make sure to update the ENV_VERSION.
-
-_string_re = re.compile(r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
- r'|"([^"\\]*(?:\\.[^"\\]*)*)")', re.S)
-
-# bool, complex, and imaginary are macro "keywords", so they are handled separately
-_simple_type_specifiers_re = re.compile(r"""
- \b(
- void|_Bool
- |signed|unsigned
- |short|long
- |char
- |int
- |__uint128|__int128
- |__int(8|16|32|64|128) # extension
- |float|double
- |_Decimal(32|64|128)
- |_Complex|_Imaginary
- |__float80|_Float64x|__float128|_Float128|__ibm128 # extension
- |__fp16 # extension
- |_Sat|_Fract|fract|_Accum|accum # extension
- )\b
-""", re.VERBOSE)
-
-
-class _DuplicateSymbolError(Exception):
- def __init__(self, symbol: Symbol, declaration: ASTDeclaration) -> None:
- assert symbol
- assert declaration
- self.symbol = symbol
- self.declaration = declaration
-
- def __str__(self) -> str:
- return "Internal C duplicate symbol error:\n%s" % self.symbol.dump(0)
-
-
-class ASTBase(ASTBaseBase):
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- raise NotImplementedError(repr(self))
-
-
-# Names
-################################################################################
-
-class ASTIdentifier(ASTBaseBase):
- def __init__(self, identifier: str) -> None:
- assert identifier is not None
- assert len(identifier) != 0
- self.identifier = identifier
-
- def __eq__(self, other: Any) -> bool:
- return type(other) is ASTIdentifier and self.identifier == other.identifier
-
- def is_anon(self) -> bool:
- return self.identifier[0] == '@'
-
- # and this is where we finally make a difference between __str__ and the display string
-
- def __str__(self) -> str:
- return self.identifier
-
- def get_display_string(self) -> str:
- return "[anonymous]" if self.is_anon() else self.identifier
-
- def describe_signature(self, signode: TextElement, mode: str, env: BuildEnvironment,
- prefix: str, symbol: Symbol) -> None:
- # note: slightly different signature of describe_signature due to the prefix
- verify_description_mode(mode)
- if self.is_anon():
- node = addnodes.desc_sig_name(text="[anonymous]")
- else:
- node = addnodes.desc_sig_name(self.identifier, self.identifier)
- if mode == 'markType':
- targetText = prefix + self.identifier
- pnode = addnodes.pending_xref('', refdomain='c',
- reftype='identifier',
- reftarget=targetText, modname=None,
- classname=None)
- pnode['c:parent_key'] = symbol.get_lookup_key()
- pnode += node
- signode += pnode
- elif mode == 'lastIsName':
- nameNode = addnodes.desc_name()
- nameNode += node
- signode += nameNode
- elif mode == 'noneIsName':
- signode += node
- else:
- raise Exception('Unknown description mode: %s' % mode)
-
-
-class ASTNestedName(ASTBase):
- def __init__(self, names: list[ASTIdentifier], rooted: bool) -> None:
- assert len(names) > 0
- self.names = names
- self.rooted = rooted
-
- @property
- def name(self) -> ASTNestedName:
- return self
-
- def get_id(self, version: int) -> str:
- return '.'.join(str(n) for n in self.names)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = '.'.join(transform(n) for n in self.names)
- if self.rooted:
- return '.' + res
- else:
- return res
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- # just print the name part, with template args, not template params
- if mode == 'noneIsName':
- if self.rooted:
- unreachable = "Can this happen?"
- raise AssertionError(unreachable) # TODO
- signode += nodes.Text('.')
- for i in range(len(self.names)):
- if i != 0:
- unreachable = "Can this happen?"
- raise AssertionError(unreachable) # TODO
- signode += nodes.Text('.')
- n = self.names[i]
- n.describe_signature(signode, mode, env, '', symbol)
- elif mode == 'param':
- assert not self.rooted, str(self)
- assert len(self.names) == 1
- self.names[0].describe_signature(signode, 'noneIsName', env, '', symbol)
- elif mode in ('markType', 'lastIsName', 'markName'):
- # Each element should be a pending xref targeting the complete
- # prefix.
- prefix = ''
- first = True
- names = self.names[:-1] if mode == 'lastIsName' else self.names
- # If lastIsName, then wrap all of the prefix in a desc_addname,
- # else append directly to signode.
- # TODO: also for C?
- # NOTE: Breathe previously relied on the prefix being in the desc_addname node,
- # so it can remove it in inner declarations.
- dest = signode
- if mode == 'lastIsName':
- dest = addnodes.desc_addname()
- if self.rooted:
- prefix += '.'
- if mode == 'lastIsName' and len(names) == 0:
- signode += addnodes.desc_sig_punctuation('.', '.')
- else:
- dest += addnodes.desc_sig_punctuation('.', '.')
- for i in range(len(names)):
- ident = names[i]
- if not first:
- dest += addnodes.desc_sig_punctuation('.', '.')
- prefix += '.'
- first = False
- txt_ident = str(ident)
- if txt_ident != '':
- ident.describe_signature(dest, 'markType', env, prefix, symbol)
- prefix += txt_ident
- if mode == 'lastIsName':
- if len(self.names) > 1:
- dest += addnodes.desc_sig_punctuation('.', '.')
- signode += dest
- self.names[-1].describe_signature(signode, mode, env, '', symbol)
- else:
- raise Exception('Unknown description mode: %s' % mode)
-
-
-################################################################################
-# Expressions
-################################################################################
-
-class ASTExpression(ASTBase):
- pass
-
-
-# Primary expressions
-################################################################################
-
-class ASTLiteral(ASTExpression):
- pass
-
-
-class ASTBooleanLiteral(ASTLiteral):
- def __init__(self, value: bool) -> None:
- self.value = value
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.value:
- return 'true'
- else:
- return 'false'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- txt = str(self)
- signode += addnodes.desc_sig_keyword(txt, txt)
-
-
-class ASTNumberLiteral(ASTLiteral):
- def __init__(self, data: str) -> None:
- self.data = data
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return self.data
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- txt = str(self)
- signode += addnodes.desc_sig_literal_number(txt, txt)
-
-
-class ASTCharLiteral(ASTLiteral):
- def __init__(self, prefix: str, data: str) -> None:
- self.prefix = prefix # may be None when no prefix
- self.data = data
- decoded = data.encode().decode('unicode-escape')
- if len(decoded) == 1:
- self.value = ord(decoded)
- else:
- raise UnsupportedMultiCharacterCharLiteral(decoded)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.prefix is None:
- return "'" + self.data + "'"
- else:
- return self.prefix + "'" + self.data + "'"
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- txt = str(self)
- signode += addnodes.desc_sig_literal_char(txt, txt)
-
-
-class ASTStringLiteral(ASTLiteral):
- def __init__(self, data: str) -> None:
- self.data = data
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return self.data
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- txt = str(self)
- signode += addnodes.desc_sig_literal_string(txt, txt)
-
-
-class ASTIdExpression(ASTExpression):
- def __init__(self, name: ASTNestedName):
- # note: this class is basically to cast a nested name as an expression
- self.name = name
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.name)
-
- def get_id(self, version: int) -> str:
- return self.name.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.name.describe_signature(signode, mode, env, symbol)
-
-
-class ASTParenExpr(ASTExpression):
- def __init__(self, expr):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '(' + transform(self.expr) + ')'
-
- def get_id(self, version: int) -> str:
- return self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-# Postfix expressions
-################################################################################
-
-class ASTPostfixOp(ASTBase):
- pass
-
-
-class ASTPostfixCallExpr(ASTPostfixOp):
- def __init__(self, lst: ASTParenExprList | ASTBracedInitList) -> None:
- self.lst = lst
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.lst)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.lst.describe_signature(signode, mode, env, symbol)
-
-
-class ASTPostfixArray(ASTPostfixOp):
- def __init__(self, expr: ASTExpression) -> None:
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '[' + transform(self.expr) + ']'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('[', '[')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(']', ']')
-
-
-class ASTPostfixInc(ASTPostfixOp):
- def _stringify(self, transform: StringifyTransform) -> str:
- return '++'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_operator('++', '++')
-
-
-class ASTPostfixDec(ASTPostfixOp):
- def _stringify(self, transform: StringifyTransform) -> str:
- return '--'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_operator('--', '--')
-
-
-class ASTPostfixMemberOfPointer(ASTPostfixOp):
- def __init__(self, name):
- self.name = name
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '->' + transform(self.name)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_operator('->', '->')
- self.name.describe_signature(signode, 'noneIsName', env, symbol)
-
-
-class ASTPostfixExpr(ASTExpression):
- def __init__(self, prefix: ASTExpression, postFixes: list[ASTPostfixOp]):
- self.prefix = prefix
- self.postFixes = postFixes
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = [transform(self.prefix)]
- for p in self.postFixes:
- res.append(transform(p))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.prefix.describe_signature(signode, mode, env, symbol)
- for p in self.postFixes:
- p.describe_signature(signode, mode, env, symbol)
-
-
-# Unary expressions
-################################################################################
-
-class ASTUnaryOpExpr(ASTExpression):
- def __init__(self, op: str, expr: ASTExpression):
- self.op = op
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.op[0] in 'cn':
- return self.op + " " + transform(self.expr)
- else:
- return self.op + transform(self.expr)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.op[0] in 'cn':
- signode += addnodes.desc_sig_keyword(self.op, self.op)
- signode += addnodes.desc_sig_space()
- else:
- signode += addnodes.desc_sig_operator(self.op, self.op)
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTSizeofType(ASTExpression):
- def __init__(self, typ):
- self.typ = typ
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "sizeof(" + transform(self.typ) + ")"
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTSizeofExpr(ASTExpression):
- def __init__(self, expr: ASTExpression):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "sizeof " + transform(self.expr)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
- signode += addnodes.desc_sig_space()
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTAlignofExpr(ASTExpression):
- def __init__(self, typ: ASTType):
- self.typ = typ
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "alignof(" + transform(self.typ) + ")"
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('alignof', 'alignof')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-# Other expressions
-################################################################################
-
-class ASTCastExpr(ASTExpression):
- def __init__(self, typ: ASTType, expr: ASTExpression):
- self.typ = typ
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['(']
- res.append(transform(self.typ))
- res.append(')')
- res.append(transform(self.expr))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTBinOpExpr(ASTBase):
- def __init__(self, exprs: list[ASTExpression], ops: list[str]):
- assert len(exprs) > 0
- assert len(exprs) == len(ops) + 1
- self.exprs = exprs
- self.ops = ops
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.exprs[0]))
- for i in range(1, len(self.exprs)):
- res.append(' ')
- res.append(self.ops[i - 1])
- res.append(' ')
- res.append(transform(self.exprs[i]))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.exprs[0].describe_signature(signode, mode, env, symbol)
- for i in range(1, len(self.exprs)):
- signode += addnodes.desc_sig_space()
- op = self.ops[i - 1]
- if ord(op[0]) >= ord('a') and ord(op[0]) <= ord('z'):
- signode += addnodes.desc_sig_keyword(op, op)
- else:
- signode += addnodes.desc_sig_operator(op, op)
- signode += addnodes.desc_sig_space()
- self.exprs[i].describe_signature(signode, mode, env, symbol)
-
-
-class ASTAssignmentExpr(ASTExpression):
- def __init__(self, exprs: list[ASTExpression], ops: list[str]):
- assert len(exprs) > 0
- assert len(exprs) == len(ops) + 1
- self.exprs = exprs
- self.ops = ops
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.exprs[0]))
- for i in range(1, len(self.exprs)):
- res.append(' ')
- res.append(self.ops[i - 1])
- res.append(' ')
- res.append(transform(self.exprs[i]))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.exprs[0].describe_signature(signode, mode, env, symbol)
- for i in range(1, len(self.exprs)):
- signode += addnodes.desc_sig_space()
- op = self.ops[i - 1]
- if ord(op[0]) >= ord('a') and ord(op[0]) <= ord('z'):
- signode += addnodes.desc_sig_keyword(op, op)
- else:
- signode += addnodes.desc_sig_operator(op, op)
- signode += addnodes.desc_sig_space()
- self.exprs[i].describe_signature(signode, mode, env, symbol)
-
-
-class ASTFallbackExpr(ASTExpression):
- def __init__(self, expr: str):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return self.expr
-
- def get_id(self, version: int) -> str:
- return str(self.expr)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += nodes.literal(self.expr, self.expr)
-
-
-################################################################################
-# Types
-################################################################################
-
-class ASTTrailingTypeSpec(ASTBase):
- pass
-
-
-class ASTTrailingTypeSpecFundamental(ASTTrailingTypeSpec):
- def __init__(self, names: list[str]) -> None:
- assert len(names) != 0
- self.names = names
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return ' '.join(self.names)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- first = True
- for n in self.names:
- if not first:
- signode += addnodes.desc_sig_space()
- else:
- first = False
- signode += addnodes.desc_sig_keyword_type(n, n)
-
-
-class ASTTrailingTypeSpecName(ASTTrailingTypeSpec):
- def __init__(self, prefix: str, nestedName: ASTNestedName) -> None:
- self.prefix = prefix
- self.nestedName = nestedName
-
- @property
- def name(self) -> ASTNestedName:
- return self.nestedName
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.prefix:
- res.append(self.prefix)
- res.append(' ')
- res.append(transform(self.nestedName))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.prefix:
- signode += addnodes.desc_sig_keyword(self.prefix, self.prefix)
- signode += addnodes.desc_sig_space()
- self.nestedName.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTFunctionParameter(ASTBase):
- def __init__(self, arg: ASTTypeWithInit | None, ellipsis: bool = False) -> None:
- self.arg = arg
- self.ellipsis = ellipsis
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=False)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.ellipsis:
- return '...'
- else:
- return transform(self.arg)
-
- def describe_signature(self, signode: Any, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.ellipsis:
- signode += addnodes.desc_sig_punctuation('...', '...')
- else:
- self.arg.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTParameters(ASTBase):
- def __init__(self, args: list[ASTFunctionParameter], attrs: ASTAttributeList) -> None:
- self.args = args
- self.attrs = attrs
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.args
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append('(')
- first = True
- for a in self.args:
- if not first:
- res.append(', ')
- first = False
- res.append(str(a))
- res.append(')')
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.attrs))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- multi_line_parameter_list = False
- test_node: Element = signode
- while test_node.parent:
- if not isinstance(test_node, addnodes.desc_signature):
- test_node = test_node.parent
- continue
- multi_line_parameter_list = test_node.get('multi_line_parameter_list', False)
- break
-
- # only use the desc_parameterlist for the outer list, not for inner lists
- if mode == 'lastIsName':
- paramlist = addnodes.desc_parameterlist()
- paramlist['multi_line_parameter_list'] = multi_line_parameter_list
- for arg in self.args:
- param = addnodes.desc_parameter('', '', noemph=True)
- arg.describe_signature(param, 'param', env, symbol=symbol)
- paramlist += param
- signode += paramlist
- else:
- signode += addnodes.desc_sig_punctuation('(', '(')
- first = True
- for arg in self.args:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- first = False
- arg.describe_signature(signode, 'markType', env, symbol=symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.attrs.describe_signature(signode)
-
-
-class ASTDeclSpecsSimple(ASTBaseBase):
- def __init__(self, storage: str, threadLocal: str, inline: bool,
- restrict: bool, volatile: bool, const: bool, attrs: ASTAttributeList) -> None:
- self.storage = storage
- self.threadLocal = threadLocal
- self.inline = inline
- self.restrict = restrict
- self.volatile = volatile
- self.const = const
- self.attrs = attrs
-
- def mergeWith(self, other: ASTDeclSpecsSimple) -> ASTDeclSpecsSimple:
- if not other:
- return self
- return ASTDeclSpecsSimple(self.storage or other.storage,
- self.threadLocal or other.threadLocal,
- self.inline or other.inline,
- self.volatile or other.volatile,
- self.const or other.const,
- self.restrict or other.restrict,
- self.attrs + other.attrs)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res: list[str] = []
- if len(self.attrs) != 0:
- res.append(transform(self.attrs))
- if self.storage:
- res.append(self.storage)
- if self.threadLocal:
- res.append(self.threadLocal)
- if self.inline:
- res.append('inline')
- if self.restrict:
- res.append('restrict')
- if self.volatile:
- res.append('volatile')
- if self.const:
- res.append('const')
- return ' '.join(res)
-
- def describe_signature(self, modifiers: list[Node]) -> None:
- def _add(modifiers: list[Node], text: str) -> None:
- if len(modifiers) != 0:
- modifiers.append(addnodes.desc_sig_space())
- modifiers.append(addnodes.desc_sig_keyword(text, text))
-
- if len(modifiers) != 0 and len(self.attrs) != 0:
- modifiers.append(addnodes.desc_sig_space())
- tempNode = nodes.TextElement()
- self.attrs.describe_signature(tempNode)
- modifiers.extend(tempNode.children)
- if self.storage:
- _add(modifiers, self.storage)
- if self.threadLocal:
- _add(modifiers, self.threadLocal)
- if self.inline:
- _add(modifiers, 'inline')
- if self.restrict:
- _add(modifiers, 'restrict')
- if self.volatile:
- _add(modifiers, 'volatile')
- if self.const:
- _add(modifiers, 'const')
-
-
-class ASTDeclSpecs(ASTBase):
- def __init__(self, outer: str,
- leftSpecs: ASTDeclSpecsSimple,
- rightSpecs: ASTDeclSpecsSimple,
- trailing: ASTTrailingTypeSpec) -> None:
- # leftSpecs and rightSpecs are used for output
- # allSpecs are used for id generation TODO: remove?
- self.outer = outer
- self.leftSpecs = leftSpecs
- self.rightSpecs = rightSpecs
- self.allSpecs = self.leftSpecs.mergeWith(self.rightSpecs)
- self.trailingTypeSpec = trailing
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res: list[str] = []
- l = transform(self.leftSpecs)
- if len(l) > 0:
- res.append(l)
- if self.trailingTypeSpec:
- if len(res) > 0:
- res.append(" ")
- res.append(transform(self.trailingTypeSpec))
- r = str(self.rightSpecs)
- if len(r) > 0:
- if len(res) > 0:
- res.append(" ")
- res.append(r)
- return "".join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- modifiers: list[Node] = []
-
- self.leftSpecs.describe_signature(modifiers)
-
- for m in modifiers:
- signode += m
- if self.trailingTypeSpec:
- if len(modifiers) > 0:
- signode += addnodes.desc_sig_space()
- self.trailingTypeSpec.describe_signature(signode, mode, env,
- symbol=symbol)
- modifiers = []
- self.rightSpecs.describe_signature(modifiers)
- if len(modifiers) > 0:
- signode += addnodes.desc_sig_space()
- for m in modifiers:
- signode += m
-
-
-# Declarator
-################################################################################
-
-class ASTArray(ASTBase):
- def __init__(self, static: bool, const: bool, volatile: bool, restrict: bool,
- vla: bool, size: ASTExpression):
- self.static = static
- self.const = const
- self.volatile = volatile
- self.restrict = restrict
- self.vla = vla
- self.size = size
- if vla:
- assert size is None
- if size is not None:
- assert not vla
-
- def _stringify(self, transform: StringifyTransform) -> str:
- el = []
- if self.static:
- el.append('static')
- if self.restrict:
- el.append('restrict')
- if self.volatile:
- el.append('volatile')
- if self.const:
- el.append('const')
- if self.vla:
- return '[' + ' '.join(el) + '*]'
- elif self.size:
- el.append(transform(self.size))
- return '[' + ' '.join(el) + ']'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('[', '[')
- addSpace = False
-
- def _add(signode: TextElement, text: str) -> bool:
- if addSpace:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_keyword(text, text)
- return True
-
- if self.static:
- addSpace = _add(signode, 'static')
- if self.restrict:
- addSpace = _add(signode, 'restrict')
- if self.volatile:
- addSpace = _add(signode, 'volatile')
- if self.const:
- addSpace = _add(signode, 'const')
- if self.vla:
- signode += addnodes.desc_sig_punctuation('*', '*')
- elif self.size:
- if addSpace:
- signode += addnodes.desc_sig_space()
- self.size.describe_signature(signode, 'markType', env, symbol)
- signode += addnodes.desc_sig_punctuation(']', ']')
-
-
-class ASTDeclarator(ASTBase):
- @property
- def name(self) -> ASTNestedName:
- raise NotImplementedError(repr(self))
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- raise NotImplementedError(repr(self))
-
- def require_space_after_declSpecs(self) -> bool:
- raise NotImplementedError(repr(self))
-
-
-class ASTDeclaratorNameParam(ASTDeclarator):
- def __init__(self, declId: ASTNestedName,
- arrayOps: list[ASTArray], param: ASTParameters) -> None:
- self.declId = declId
- self.arrayOps = arrayOps
- self.param = param
-
- @property
- def name(self) -> ASTNestedName:
- return self.declId
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.param.function_params
-
- # ------------------------------------------------------------------------
-
- def require_space_after_declSpecs(self) -> bool:
- return self.declId is not None
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.declId:
- res.append(transform(self.declId))
- for op in self.arrayOps:
- res.append(transform(op))
- if self.param:
- res.append(transform(self.param))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.declId:
- self.declId.describe_signature(signode, mode, env, symbol)
- for op in self.arrayOps:
- op.describe_signature(signode, mode, env, symbol)
- if self.param:
- self.param.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorNameBitField(ASTDeclarator):
- def __init__(self, declId: ASTNestedName, size: ASTExpression):
- self.declId = declId
- self.size = size
-
- @property
- def name(self) -> ASTNestedName:
- return self.declId
-
- # ------------------------------------------------------------------------
-
- def require_space_after_declSpecs(self) -> bool:
- return self.declId is not None
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.declId:
- res.append(transform(self.declId))
- res.append(" : ")
- res.append(transform(self.size))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.declId:
- self.declId.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation(':', ':')
- signode += addnodes.desc_sig_space()
- self.size.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorPtr(ASTDeclarator):
- def __init__(self, next: ASTDeclarator, restrict: bool, volatile: bool, const: bool,
- attrs: ASTAttributeList) -> None:
- assert next
- self.next = next
- self.restrict = restrict
- self.volatile = volatile
- self.const = const
- self.attrs = attrs
-
- @property
- def name(self) -> ASTNestedName:
- return self.next.name
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.next.function_params
-
- def require_space_after_declSpecs(self) -> bool:
- return self.const or self.volatile or self.restrict or \
- len(self.attrs) > 0 or \
- self.next.require_space_after_declSpecs()
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['*']
- res.append(transform(self.attrs))
- if len(self.attrs) != 0 and (self.restrict or self.volatile or self.const):
- res.append(' ')
- if self.restrict:
- res.append('restrict')
- if self.volatile:
- if self.restrict:
- res.append(' ')
- res.append('volatile')
- if self.const:
- if self.restrict or self.volatile:
- res.append(' ')
- res.append('const')
- if self.const or self.volatile or self.restrict or len(self.attrs) > 0:
- if self.next.require_space_after_declSpecs():
- res.append(' ')
- res.append(transform(self.next))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('*', '*')
- self.attrs.describe_signature(signode)
- if len(self.attrs) != 0 and (self.restrict or self.volatile or self.const):
- signode += addnodes.desc_sig_space()
-
- def _add_anno(signode: TextElement, text: str) -> None:
- signode += addnodes.desc_sig_keyword(text, text)
-
- if self.restrict:
- _add_anno(signode, 'restrict')
- if self.volatile:
- if self.restrict:
- signode += addnodes.desc_sig_space()
- _add_anno(signode, 'volatile')
- if self.const:
- if self.restrict or self.volatile:
- signode += addnodes.desc_sig_space()
- _add_anno(signode, 'const')
- if self.const or self.volatile or self.restrict or len(self.attrs) > 0:
- if self.next.require_space_after_declSpecs():
- signode += addnodes.desc_sig_space()
- self.next.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorParen(ASTDeclarator):
- def __init__(self, inner: ASTDeclarator, next: ASTDeclarator) -> None:
- assert inner
- assert next
- self.inner = inner
- self.next = next
- # TODO: we assume the name and params are in inner
-
- @property
- def name(self) -> ASTNestedName:
- return self.inner.name
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.inner.function_params
-
- def require_space_after_declSpecs(self) -> bool:
- return True
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['(']
- res.append(transform(self.inner))
- res.append(')')
- res.append(transform(self.next))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.inner.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
- self.next.describe_signature(signode, "noneIsName", env, symbol)
-
-
-# Initializer
-################################################################################
-
-class ASTParenExprList(ASTBaseParenExprList):
- def __init__(self, exprs: list[ASTExpression]) -> None:
- self.exprs = exprs
-
- def _stringify(self, transform: StringifyTransform) -> str:
- exprs = [transform(e) for e in self.exprs]
- return '(%s)' % ', '.join(exprs)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('(', '(')
- first = True
- for e in self.exprs:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- else:
- first = False
- e.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTBracedInitList(ASTBase):
- def __init__(self, exprs: list[ASTExpression], trailingComma: bool) -> None:
- self.exprs = exprs
- self.trailingComma = trailingComma
-
- def _stringify(self, transform: StringifyTransform) -> str:
- exprs = ', '.join(transform(e) for e in self.exprs)
- trailingComma = ',' if self.trailingComma else ''
- return f'{{{exprs}{trailingComma}}}'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('{', '{')
- first = True
- for e in self.exprs:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- else:
- first = False
- e.describe_signature(signode, mode, env, symbol)
- if self.trailingComma:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_punctuation('}', '}')
-
-
-class ASTInitializer(ASTBase):
- def __init__(self, value: ASTBracedInitList | ASTExpression,
- hasAssign: bool = True) -> None:
- self.value = value
- self.hasAssign = hasAssign
-
- def _stringify(self, transform: StringifyTransform) -> str:
- val = transform(self.value)
- if self.hasAssign:
- return ' = ' + val
- else:
- return val
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.hasAssign:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('=', '=')
- signode += addnodes.desc_sig_space()
- self.value.describe_signature(signode, 'markType', env, symbol)
-
-
-class ASTType(ASTBase):
- def __init__(self, declSpecs: ASTDeclSpecs, decl: ASTDeclarator) -> None:
- assert declSpecs
- assert decl
- self.declSpecs = declSpecs
- self.decl = decl
-
- @property
- def name(self) -> ASTNestedName:
- return self.decl.name
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.decl.function_params
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- declSpecs = transform(self.declSpecs)
- res.append(declSpecs)
- if self.decl.require_space_after_declSpecs() and len(declSpecs) > 0:
- res.append(' ')
- res.append(transform(self.decl))
- return ''.join(res)
-
- def get_type_declaration_prefix(self) -> str:
- if self.declSpecs.trailingTypeSpec:
- return 'typedef'
- else:
- return 'type'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.declSpecs.describe_signature(signode, 'markType', env, symbol)
- if (self.decl.require_space_after_declSpecs() and
- len(str(self.declSpecs)) > 0):
- signode += addnodes.desc_sig_space()
- # for parameters that don't really declare new names we get 'markType',
- # this should not be propagated, but be 'noneIsName'.
- if mode == 'markType':
- mode = 'noneIsName'
- self.decl.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTypeWithInit(ASTBase):
- def __init__(self, type: ASTType, init: ASTInitializer) -> None:
- self.type = type
- self.init = init
-
- @property
- def name(self) -> ASTNestedName:
- return self.type.name
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return self.type.get_id(version, objectType, symbol)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.type))
- if self.init:
- res.append(transform(self.init))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.type.describe_signature(signode, mode, env, symbol)
- if self.init:
- self.init.describe_signature(signode, mode, env, symbol)
-
-
-class ASTMacroParameter(ASTBase):
- def __init__(self, arg: ASTNestedName | None, ellipsis: bool = False,
- variadic: bool = False) -> None:
- self.arg = arg
- self.ellipsis = ellipsis
- self.variadic = variadic
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.ellipsis:
- return '...'
- elif self.variadic:
- return transform(self.arg) + '...'
- else:
- return transform(self.arg)
-
- def describe_signature(self, signode: Any, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.ellipsis:
- signode += addnodes.desc_sig_punctuation('...', '...')
- elif self.variadic:
- name = str(self)
- signode += addnodes.desc_sig_name(name, name)
- else:
- self.arg.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTMacro(ASTBase):
- def __init__(self, ident: ASTNestedName, args: list[ASTMacroParameter] | None) -> None:
- self.ident = ident
- self.args = args
-
- @property
- def name(self) -> ASTNestedName:
- return self.ident
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.ident))
- if self.args is not None:
- res.append('(')
- first = True
- for arg in self.args:
- if not first:
- res.append(', ')
- first = False
- res.append(transform(arg))
- res.append(')')
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.ident.describe_signature(signode, mode, env, symbol)
- if self.args is None:
- return
- paramlist = addnodes.desc_parameterlist()
- for arg in self.args:
- param = addnodes.desc_parameter('', '', noemph=True)
- arg.describe_signature(param, 'param', env, symbol=symbol)
- paramlist += param
- signode += paramlist
-
-
-class ASTStruct(ASTBase):
- def __init__(self, name: ASTNestedName) -> None:
- self.name = name
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.name)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.name.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTUnion(ASTBase):
- def __init__(self, name: ASTNestedName) -> None:
- self.name = name
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.name)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.name.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTEnum(ASTBase):
- def __init__(self, name: ASTNestedName) -> None:
- self.name = name
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.name)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.name.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTEnumerator(ASTBase):
- def __init__(self, name: ASTNestedName, init: ASTInitializer | None,
- attrs: ASTAttributeList) -> None:
- self.name = name
- self.init = init
- self.attrs = attrs
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.name))
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.attrs))
- if self.init:
- res.append(transform(self.init))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.name.describe_signature(signode, mode, env, symbol)
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.attrs.describe_signature(signode)
- if self.init:
- self.init.describe_signature(signode, 'markType', env, symbol)
-
-
-class ASTDeclaration(ASTBaseBase):
- def __init__(self, objectType: str, directiveType: str | None,
- declaration: DeclarationType | ASTFunctionParameter,
- semicolon: bool = False) -> None:
- self.objectType = objectType
- self.directiveType = directiveType
- self.declaration = declaration
- self.semicolon = semicolon
-
- self.symbol: Symbol = None
- # set by CObject._add_enumerator_to_parent
- self.enumeratorScopedSymbol: Symbol = None
-
- def clone(self) -> ASTDeclaration:
- return ASTDeclaration(self.objectType, self.directiveType,
- self.declaration.clone(), self.semicolon)
-
- @property
- def name(self) -> ASTNestedName:
- decl = cast(DeclarationType, self.declaration)
- return decl.name
-
- @property
- def function_params(self) -> list[ASTFunctionParameter] | None:
- if self.objectType != 'function':
- return None
- decl = cast(ASTType, self.declaration)
- return decl.function_params
-
- def get_id(self, version: int, prefixed: bool = True) -> str:
- if self.objectType == 'enumerator' and self.enumeratorScopedSymbol:
- return self.enumeratorScopedSymbol.declaration.get_id(version, prefixed)
- id_ = self.declaration.get_id(version, self.objectType, self.symbol)
- if prefixed:
- return _id_prefix[version] + id_
- else:
- return id_
-
- def get_newest_id(self) -> str:
- return self.get_id(_max_id, True)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = transform(self.declaration)
- if self.semicolon:
- res += ';'
- return res
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, options: dict) -> None:
- verify_description_mode(mode)
- assert self.symbol
- # The caller of the domain added a desc_signature node.
- # Always enable multiline:
- signode['is_multiline'] = True
- # Put each line in a desc_signature_line node.
- mainDeclNode = addnodes.desc_signature_line()
- mainDeclNode.sphinx_line_type = 'declarator'
- mainDeclNode['add_permalink'] = not self.symbol.isRedeclaration
- signode += mainDeclNode
-
- if self.objectType in {'member', 'function', 'macro'}:
- pass
- elif self.objectType == 'struct':
- mainDeclNode += addnodes.desc_sig_keyword('struct', 'struct')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'union':
- mainDeclNode += addnodes.desc_sig_keyword('union', 'union')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'enum':
- mainDeclNode += addnodes.desc_sig_keyword('enum', 'enum')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'enumerator':
- mainDeclNode += addnodes.desc_sig_keyword('enumerator', 'enumerator')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'type':
- decl = cast(ASTType, self.declaration)
- prefix = decl.get_type_declaration_prefix()
- mainDeclNode += addnodes.desc_sig_keyword(prefix, prefix)
- mainDeclNode += addnodes.desc_sig_space()
- else:
- raise AssertionError
- self.declaration.describe_signature(mainDeclNode, mode, env, self.symbol)
- if self.semicolon:
- mainDeclNode += addnodes.desc_sig_punctuation(';', ';')
-
-
-class SymbolLookupResult:
- def __init__(self, symbols: Iterator[Symbol], parentSymbol: Symbol,
- ident: ASTIdentifier) -> None:
- self.symbols = symbols
- self.parentSymbol = parentSymbol
- self.ident = ident
-
-
-class LookupKey:
- def __init__(self, data: list[tuple[ASTIdentifier, str]]) -> None:
- self.data = data
-
- def __str__(self) -> str:
- inner = ', '.join(f"({ident}, {id_})" for ident, id_ in self.data)
- return f'[{inner}]'
-
-
-class Symbol:
- debug_indent = 0
- debug_indent_string = " "
- debug_lookup = False
- debug_show_tree = False
-
- def __copy__(self):
- raise AssertionError # shouldn't happen
-
- def __deepcopy__(self, memo):
- if self.parent:
- raise AssertionError # shouldn't happen
- # the domain base class makes a copy of the initial data, which is fine
- return Symbol(None, None, None, None, None)
-
- @staticmethod
- def debug_print(*args: Any) -> None:
- logger.debug(Symbol.debug_indent_string * Symbol.debug_indent, end="")
- logger.debug(*args)
-
- def _assert_invariants(self) -> None:
- if not self.parent:
- # parent == None means global scope, so declaration means a parent
- assert not self.declaration
- assert not self.docname
- else:
- if self.declaration:
- assert self.docname
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key == "children":
- raise AssertionError
- return super().__setattr__(key, value)
-
- def __init__(
- self,
- parent: Symbol,
- ident: ASTIdentifier,
- declaration: ASTDeclaration | None,
- docname: str | None,
- line: int | None,
- ) -> None:
- self.parent = parent
- # declarations in a single directive are linked together
- self.siblingAbove: Symbol = None
- self.siblingBelow: Symbol = None
- self.ident = ident
- self.declaration = declaration
- self.docname = docname
- self.line = line
- self.isRedeclaration = False
- self._assert_invariants()
-
- # Remember to modify Symbol.remove if modifications to the parent change.
- self._children: list[Symbol] = []
- self._anonChildren: list[Symbol] = []
- # note: _children includes _anonChildren
- if self.parent:
- self.parent._children.append(self)
- if self.declaration:
- self.declaration.symbol = self
-
- # Do symbol addition after self._children has been initialised.
- self._add_function_params()
-
- def _fill_empty(self, declaration: ASTDeclaration, docname: str, line: int) -> None:
- self._assert_invariants()
- assert self.declaration is None
- assert self.docname is None
- assert self.line is None
- assert declaration is not None
- assert docname is not None
- assert line is not None
- self.declaration = declaration
- self.declaration.symbol = self
- self.docname = docname
- self.line = line
- self._assert_invariants()
- # and symbol addition should be done as well
- self._add_function_params()
-
- def _add_function_params(self) -> None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_add_function_params:")
- # Note: we may be called from _fill_empty, so the symbols we want
- # to add may actually already be present (as empty symbols).
-
- # add symbols for function parameters, if any
- if self.declaration is not None and self.declaration.function_params is not None:
- for p in self.declaration.function_params:
- if p.arg is None:
- continue
- nn = p.arg.name
- if nn is None:
- continue
- # (comparing to the template params: we have checked that we are a declaration)
- decl = ASTDeclaration('functionParam', None, p)
- assert not nn.rooted
- assert len(nn.names) == 1
- self._add_symbols(nn, decl, self.docname, self.line)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
-
- def remove(self) -> None:
- if self.parent is None:
- return
- assert self in self.parent._children
- self.parent._children.remove(self)
- self.parent = None
-
- def clear_doc(self, docname: str) -> None:
- for sChild in self._children:
- sChild.clear_doc(docname)
- if sChild.declaration and sChild.docname == docname:
- sChild.declaration = None
- sChild.docname = None
- sChild.line = None
- if sChild.siblingAbove is not None:
- sChild.siblingAbove.siblingBelow = sChild.siblingBelow
- if sChild.siblingBelow is not None:
- sChild.siblingBelow.siblingAbove = sChild.siblingAbove
- sChild.siblingAbove = None
- sChild.siblingBelow = None
-
- def get_all_symbols(self) -> Iterator[Symbol]:
- yield self
- for sChild in self._children:
- yield from sChild.get_all_symbols()
-
- @property
- def children(self) -> Iterator[Symbol]:
- yield from self._children
-
- @property
- def children_recurse_anon(self) -> Iterator[Symbol]:
- for c in self._children:
- yield c
- if not c.ident.is_anon():
- continue
- yield from c.children_recurse_anon
-
- def get_lookup_key(self) -> LookupKey:
- # The pickle files for the environment and for each document are distinct.
- # The environment has all the symbols, but the documents has xrefs that
- # must know their scope. A lookup key is essentially a specification of
- # how to find a specific symbol.
- symbols = []
- s = self
- while s.parent:
- symbols.append(s)
- s = s.parent
- symbols.reverse()
- key = []
- for s in symbols:
- if s.declaration is not None:
- # TODO: do we need the ID?
- key.append((s.ident, s.declaration.get_newest_id()))
- else:
- key.append((s.ident, None))
- return LookupKey(key)
-
- def get_full_nested_name(self) -> ASTNestedName:
- symbols = []
- s = self
- while s.parent:
- symbols.append(s)
- s = s.parent
- symbols.reverse()
- names = []
- for s in symbols:
- names.append(s.ident)
- return ASTNestedName(names, rooted=False)
-
- def _find_first_named_symbol(self, ident: ASTIdentifier,
- matchSelf: bool, recurseInAnon: bool) -> Symbol | None:
- # TODO: further simplification from C++ to C
- if Symbol.debug_lookup:
- Symbol.debug_print("_find_first_named_symbol ->")
- res = self._find_named_symbols(ident, matchSelf, recurseInAnon,
- searchInSiblings=False)
- try:
- return next(res)
- except StopIteration:
- return None
-
- def _find_named_symbols(self, ident: ASTIdentifier,
- matchSelf: bool, recurseInAnon: bool,
- searchInSiblings: bool) -> Iterator[Symbol]:
- # TODO: further simplification from C++ to C
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_find_named_symbols:")
- Symbol.debug_indent += 1
- Symbol.debug_print("self:")
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_print("ident: ", ident)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("searchInSiblings: ", searchInSiblings)
-
- def candidates() -> Generator[Symbol, None, None]:
- s = self
- if Symbol.debug_lookup:
- Symbol.debug_print("searching in self:")
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
- while True:
- if matchSelf:
- yield s
- if recurseInAnon:
- yield from s.children_recurse_anon
- else:
- yield from s._children
-
- if s.siblingAbove is None:
- break
- s = s.siblingAbove
- if Symbol.debug_lookup:
- Symbol.debug_print("searching in sibling:")
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
-
- for s in candidates():
- if Symbol.debug_lookup:
- Symbol.debug_print("candidate:")
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
- if s.ident == ident:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("matches")
- Symbol.debug_indent -= 3
- yield s
- if Symbol.debug_lookup:
- Symbol.debug_indent += 2
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
-
- def _symbol_lookup(
- self,
- nestedName: ASTNestedName,
- onMissingQualifiedSymbol: Callable[[Symbol, ASTIdentifier], Symbol | None],
- ancestorLookupType: str | None,
- matchSelf: bool,
- recurseInAnon: bool,
- searchInSiblings: bool,
- ) -> SymbolLookupResult | None:
- # TODO: further simplification from C++ to C
- # ancestorLookupType: if not None, specifies the target type of the lookup
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_symbol_lookup:")
- Symbol.debug_indent += 1
- Symbol.debug_print("self:")
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_print("nestedName: ", nestedName)
- Symbol.debug_print("ancestorLookupType:", ancestorLookupType)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("searchInSiblings: ", searchInSiblings)
-
- names = nestedName.names
-
- # find the right starting point for lookup
- parentSymbol = self
- if nestedName.rooted:
- while parentSymbol.parent:
- parentSymbol = parentSymbol.parent
- if ancestorLookupType is not None:
- # walk up until we find the first identifier
- firstName = names[0]
- while parentSymbol.parent:
- if parentSymbol.find_identifier(firstName,
- matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- searchInSiblings=searchInSiblings):
- break
- parentSymbol = parentSymbol.parent
-
- if Symbol.debug_lookup:
- Symbol.debug_print("starting point:")
- logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1), end="")
-
- # and now the actual lookup
- for ident in names[:-1]:
- symbol = parentSymbol._find_first_named_symbol(
- ident, matchSelf=matchSelf, recurseInAnon=recurseInAnon)
- if symbol is None:
- symbol = onMissingQualifiedSymbol(parentSymbol, ident)
- if symbol is None:
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return None
- # We have now matched part of a nested name, and need to match more
- # so even if we should matchSelf before, we definitely shouldn't
- # even more. (see also issue #2666)
- matchSelf = False
- parentSymbol = symbol
-
- if Symbol.debug_lookup:
- Symbol.debug_print("handle last name from:")
- logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1), end="")
-
- # handle the last name
- ident = names[-1]
-
- symbols = parentSymbol._find_named_symbols(
- ident, matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- searchInSiblings=searchInSiblings)
- if Symbol.debug_lookup:
- symbols = list(symbols) # type: ignore[assignment]
- Symbol.debug_indent -= 2
- return SymbolLookupResult(symbols, parentSymbol, ident)
-
- def _add_symbols(
- self,
- nestedName: ASTNestedName,
- declaration: ASTDeclaration | None,
- docname: str | None,
- line: int | None,
- ) -> Symbol:
- # TODO: further simplification from C++ to C
- # Used for adding a whole path of symbols, where the last may or may not
- # be an actual declaration.
-
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_add_symbols:")
- Symbol.debug_indent += 1
- Symbol.debug_print("nn: ", nestedName)
- Symbol.debug_print("decl: ", declaration)
- Symbol.debug_print(f"location: {docname}:{line}")
-
- def onMissingQualifiedSymbol(parentSymbol: Symbol, ident: ASTIdentifier) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_add_symbols, onMissingQualifiedSymbol:")
- Symbol.debug_indent += 1
- Symbol.debug_print("ident: ", ident)
- Symbol.debug_indent -= 2
- return Symbol(parent=parentSymbol, ident=ident,
- declaration=None, docname=None, line=None)
-
- lookupResult = self._symbol_lookup(nestedName,
- onMissingQualifiedSymbol,
- ancestorLookupType=None,
- matchSelf=False,
- recurseInAnon=False,
- searchInSiblings=False)
- assert lookupResult is not None # we create symbols all the way, so that can't happen
- symbols = list(lookupResult.symbols)
- if len(symbols) == 0:
- if Symbol.debug_lookup:
- Symbol.debug_print("_add_symbols, result, no symbol:")
- Symbol.debug_indent += 1
- Symbol.debug_print("ident: ", lookupResult.ident)
- Symbol.debug_print("declaration: ", declaration)
- Symbol.debug_print(f"location: {docname}:{line}")
- Symbol.debug_indent -= 1
- symbol = Symbol(parent=lookupResult.parentSymbol,
- ident=lookupResult.ident,
- declaration=declaration,
- docname=docname, line=line)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return symbol
-
- if Symbol.debug_lookup:
- Symbol.debug_print("_add_symbols, result, symbols:")
- Symbol.debug_indent += 1
- Symbol.debug_print("number symbols:", len(symbols))
- Symbol.debug_indent -= 1
-
- if not declaration:
- if Symbol.debug_lookup:
- Symbol.debug_print("no declaration")
- Symbol.debug_indent -= 2
- # good, just a scope creation
- # TODO: what if we have more than one symbol?
- return symbols[0]
-
- noDecl = []
- withDecl = []
- dupDecl = []
- for s in symbols:
- if s.declaration is None:
- noDecl.append(s)
- elif s.isRedeclaration:
- dupDecl.append(s)
- else:
- withDecl.append(s)
- if Symbol.debug_lookup:
- Symbol.debug_print("#noDecl: ", len(noDecl))
- Symbol.debug_print("#withDecl:", len(withDecl))
- Symbol.debug_print("#dupDecl: ", len(dupDecl))
-
- # With partial builds we may start with a large symbol tree stripped of declarations.
- # Essentially any combination of noDecl, withDecl, and dupDecls seems possible.
- # TODO: make partial builds fully work. What should happen when the primary symbol gets
- # deleted, and other duplicates exist? The full document should probably be rebuild.
-
- # First check if one of those with a declaration matches.
- # If it's a function, we need to compare IDs,
- # otherwise there should be only one symbol with a declaration.
- def makeCandSymbol() -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_print("begin: creating candidate symbol")
- symbol = Symbol(parent=lookupResult.parentSymbol,
- ident=lookupResult.ident,
- declaration=declaration,
- docname=docname, line=line)
- if Symbol.debug_lookup:
- Symbol.debug_print("end: creating candidate symbol")
- return symbol
-
- if len(withDecl) == 0:
- candSymbol = None
- else:
- candSymbol = makeCandSymbol()
-
- def handleDuplicateDeclaration(symbol: Symbol, candSymbol: Symbol) -> None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("redeclaration")
- Symbol.debug_indent -= 1
- Symbol.debug_indent -= 2
- # Redeclaration of the same symbol.
- # Let the new one be there, but raise an error to the client
- # so it can use the real symbol as subscope.
- # This will probably result in a duplicate id warning.
- candSymbol.isRedeclaration = True
- raise _DuplicateSymbolError(symbol, declaration)
-
- if declaration.objectType != "function":
- assert len(withDecl) <= 1
- handleDuplicateDeclaration(withDecl[0], candSymbol)
- # (not reachable)
-
- # a function, so compare IDs
- candId = declaration.get_newest_id()
- if Symbol.debug_lookup:
- Symbol.debug_print("candId:", candId)
- for symbol in withDecl:
- oldId = symbol.declaration.get_newest_id()
- if Symbol.debug_lookup:
- Symbol.debug_print("oldId: ", oldId)
- if candId == oldId:
- handleDuplicateDeclaration(symbol, candSymbol)
- # (not reachable)
- # no candidate symbol found with matching ID
- # if there is an empty symbol, fill that one
- if len(noDecl) == 0:
- if Symbol.debug_lookup:
- Symbol.debug_print(
- "no match, no empty, candSybmol is not None?:", candSymbol is not None,
- )
- Symbol.debug_indent -= 2
- if candSymbol is not None:
- return candSymbol
- else:
- return makeCandSymbol()
- else:
- if Symbol.debug_lookup:
- Symbol.debug_print(
- "no match, but fill an empty declaration, candSybmol is not None?:",
- candSymbol is not None)
- Symbol.debug_indent -= 2
- if candSymbol is not None:
- candSymbol.remove()
- # assert len(noDecl) == 1
- # TODO: enable assertion when we at some point find out how to do cleanup
- # for now, just take the first one, it should work fine ... right?
- symbol = noDecl[0]
- # If someone first opened the scope, and then later
- # declares it, e.g,
- # .. namespace:: Test
- # .. namespace:: nullptr
- # .. class:: Test
- symbol._fill_empty(declaration, docname, line)
- return symbol
-
- def merge_with(self, other: Symbol, docnames: list[str],
- env: BuildEnvironment) -> None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("merge_with:")
- assert other is not None
- for otherChild in other._children:
- ourChild = self._find_first_named_symbol(
- ident=otherChild.ident, matchSelf=False,
- recurseInAnon=False)
- if ourChild is None:
- # TODO: hmm, should we prune by docnames?
- self._children.append(otherChild)
- otherChild.parent = self
- otherChild._assert_invariants()
- continue
- if otherChild.declaration and otherChild.docname in docnames:
- if not ourChild.declaration:
- ourChild._fill_empty(otherChild.declaration,
- otherChild.docname, otherChild.line)
- elif ourChild.docname != otherChild.docname:
- name = str(ourChild.declaration)
- msg = __("Duplicate C declaration, also defined at %s:%s.\n"
- "Declaration is '.. c:%s:: %s'.")
- msg = msg % (ourChild.docname, ourChild.line,
- ourChild.declaration.directiveType, name)
- logger.warning(msg, location=(otherChild.docname, otherChild.line))
- else:
- # Both have declarations, and in the same docname.
- # This can apparently happen, it should be safe to
- # just ignore it, right?
- pass
- ourChild.merge_with(otherChild, docnames, env)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
-
- def add_name(self, nestedName: ASTNestedName) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("add_name:")
- res = self._add_symbols(nestedName, declaration=None, docname=None, line=None)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- return res
-
- def add_declaration(self, declaration: ASTDeclaration,
- docname: str, line: int) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("add_declaration:")
- assert declaration is not None
- assert docname is not None
- assert line is not None
- nestedName = declaration.name
- res = self._add_symbols(nestedName, declaration, docname, line)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- return res
-
- def find_identifier(self, ident: ASTIdentifier,
- matchSelf: bool, recurseInAnon: bool, searchInSiblings: bool,
- ) -> Symbol | None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("find_identifier:")
- Symbol.debug_indent += 1
- Symbol.debug_print("ident: ", ident)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("searchInSiblings:", searchInSiblings)
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_indent -= 2
- current = self
- while current is not None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 2
- Symbol.debug_print("trying:")
- logger.debug(current.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_indent -= 2
- if matchSelf and current.ident == ident:
- return current
- children = current.children_recurse_anon if recurseInAnon else current._children
- for s in children:
- if s.ident == ident:
- return s
- if not searchInSiblings:
- break
- current = current.siblingAbove
- return None
-
- def direct_lookup(self, key: LookupKey) -> Symbol | None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("direct_lookup:")
- Symbol.debug_indent += 1
- s = self
- for name, id_ in key.data:
- res = None
- for cand in s._children:
- if cand.ident == name:
- res = cand
- break
- s = res
- if Symbol.debug_lookup:
- Symbol.debug_print("name: ", name)
- Symbol.debug_print("id: ", id_)
- if s is not None:
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
- else:
- Symbol.debug_print("not found")
- if s is None:
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return None
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return s
-
- def find_declaration(self, nestedName: ASTNestedName, typ: str,
- matchSelf: bool, recurseInAnon: bool) -> Symbol | None:
- # templateShorthand: missing template parameter lists for templates is ok
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("find_declaration:")
-
- def onMissingQualifiedSymbol(
- parentSymbol: Symbol,
- ident: ASTIdentifier,
- ) -> Symbol | None:
- return None
-
- lookupResult = self._symbol_lookup(nestedName,
- onMissingQualifiedSymbol,
- ancestorLookupType=typ,
- matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- searchInSiblings=False)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- if lookupResult is None:
- return None
-
- symbols = list(lookupResult.symbols)
- if len(symbols) == 0:
- return None
- return symbols[0]
-
- def to_string(self, indent: int) -> str:
- res = [Symbol.debug_indent_string * indent]
- if not self.parent:
- res.append('::')
- else:
- if self.ident:
- res.append(str(self.ident))
- else:
- res.append(str(self.declaration))
- if self.declaration:
- res.append(": ")
- if self.isRedeclaration:
- res.append('!!duplicate!! ')
- res.append(str(self.declaration))
- if self.docname:
- res.append('\t(')
- res.append(self.docname)
- res.append(')')
- res.append('\n')
- return ''.join(res)
-
- def dump(self, indent: int) -> str:
- res = [self.to_string(indent)]
- for c in self._children:
- res.append(c.dump(indent + 1))
- return ''.join(res)
-
-
-class DefinitionParser(BaseParser):
- @property
- def language(self) -> str:
- return 'C'
-
- @property
- def id_attributes(self):
- return self.config.c_id_attributes
-
- @property
- def paren_attributes(self):
- return self.config.c_paren_attributes
-
- def _parse_string(self) -> str | None:
- if self.current_char != '"':
- return None
- startPos = self.pos
- self.pos += 1
- escape = False
- while True:
- if self.eof:
- self.fail("Unexpected end during inside string.")
- elif self.current_char == '"' and not escape:
- self.pos += 1
- break
- elif self.current_char == '\\':
- escape = True
- else:
- escape = False
- self.pos += 1
- return self.definition[startPos:self.pos]
-
- def _parse_literal(self) -> ASTLiteral | None:
- # -> integer-literal
- # | character-literal
- # | floating-literal
- # | string-literal
- # | boolean-literal -> "false" | "true"
- self.skip_ws()
- if self.skip_word('true'):
- return ASTBooleanLiteral(True)
- if self.skip_word('false'):
- return ASTBooleanLiteral(False)
- pos = self.pos
- if self.match(float_literal_re):
- self.match(float_literal_suffix_re)
- return ASTNumberLiteral(self.definition[pos:self.pos])
- for regex in [binary_literal_re, hex_literal_re,
- integer_literal_re, octal_literal_re]:
- if self.match(regex):
- self.match(integers_literal_suffix_re)
- return ASTNumberLiteral(self.definition[pos:self.pos])
-
- string = self._parse_string()
- if string is not None:
- return ASTStringLiteral(string)
-
- # character-literal
- if self.match(char_literal_re):
- prefix = self.last_match.group(1) # may be None when no prefix
- data = self.last_match.group(2)
- try:
- return ASTCharLiteral(prefix, data)
- except UnicodeDecodeError as e:
- self.fail("Can not handle character literal. Internal error was: %s" % e)
- except UnsupportedMultiCharacterCharLiteral:
- self.fail("Can not handle character literal"
- " resulting in multiple decoded characters.")
- return None
-
- def _parse_paren_expression(self) -> ASTExpression | None:
- # "(" expression ")"
- if self.current_char != '(':
- return None
- self.pos += 1
- res = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expected ')' in end of parenthesized expression.")
- return ASTParenExpr(res)
-
- def _parse_primary_expression(self) -> ASTExpression | None:
- # literal
- # "(" expression ")"
- # id-expression -> we parse this with _parse_nested_name
- self.skip_ws()
- res: ASTExpression | None = self._parse_literal()
- if res is not None:
- return res
- res = self._parse_paren_expression()
- if res is not None:
- return res
- nn = self._parse_nested_name()
- if nn is not None:
- return ASTIdExpression(nn)
- return None
-
- def _parse_initializer_list(self, name: str, open: str, close: str,
- ) -> tuple[list[ASTExpression], bool]:
- # Parse open and close with the actual initializer-list in between
- # -> initializer-clause '...'[opt]
- # | initializer-list ',' initializer-clause '...'[opt]
- # TODO: designators
- self.skip_ws()
- if not self.skip_string_and_ws(open):
- return None, None
- if self.skip_string(close):
- return [], False
-
- exprs = []
- trailingComma = False
- while True:
- self.skip_ws()
- expr = self._parse_expression()
- self.skip_ws()
- exprs.append(expr)
- self.skip_ws()
- if self.skip_string(close):
- break
- if not self.skip_string_and_ws(','):
- self.fail(f"Error in {name}, expected ',' or '{close}'.")
- if self.current_char == close and close == '}':
- self.pos += 1
- trailingComma = True
- break
- return exprs, trailingComma
-
- def _parse_paren_expression_list(self) -> ASTParenExprList | None:
- # -> '(' expression-list ')'
- # though, we relax it to also allow empty parens
- # as it's needed in some cases
- #
- # expression-list
- # -> initializer-list
- exprs, trailingComma = self._parse_initializer_list("parenthesized expression-list",
- '(', ')')
- if exprs is None:
- return None
- return ASTParenExprList(exprs)
-
- def _parse_braced_init_list(self) -> ASTBracedInitList | None:
- # -> '{' initializer-list ','[opt] '}'
- # | '{' '}'
- exprs, trailingComma = self._parse_initializer_list("braced-init-list", '{', '}')
- if exprs is None:
- return None
- return ASTBracedInitList(exprs, trailingComma)
-
- def _parse_postfix_expression(self) -> ASTPostfixExpr:
- # -> primary
- # | postfix "[" expression "]"
- # | postfix "[" braced-init-list [opt] "]"
- # | postfix "(" expression-list [opt] ")"
- # | postfix "." id-expression // taken care of in primary by nested name
- # | postfix "->" id-expression
- # | postfix "++"
- # | postfix "--"
-
- prefix = self._parse_primary_expression()
-
- # and now parse postfixes
- postFixes: list[ASTPostfixOp] = []
- while True:
- self.skip_ws()
- if self.skip_string_and_ws('['):
- expr = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(']'):
- self.fail("Expected ']' in end of postfix expression.")
- postFixes.append(ASTPostfixArray(expr))
- continue
- if self.skip_string('->'):
- if self.skip_string('*'):
- # don't steal the arrow
- self.pos -= 3
- else:
- name = self._parse_nested_name()
- postFixes.append(ASTPostfixMemberOfPointer(name))
- continue
- if self.skip_string('++'):
- postFixes.append(ASTPostfixInc())
- continue
- if self.skip_string('--'):
- postFixes.append(ASTPostfixDec())
- continue
- lst = self._parse_paren_expression_list()
- if lst is not None:
- postFixes.append(ASTPostfixCallExpr(lst))
- continue
- break
- return ASTPostfixExpr(prefix, postFixes)
-
- def _parse_unary_expression(self) -> ASTExpression:
- # -> postfix
- # | "++" cast
- # | "--" cast
- # | unary-operator cast -> (* | & | + | - | ! | ~) cast
- # The rest:
- # | "sizeof" unary
- # | "sizeof" "(" type-id ")"
- # | "alignof" "(" type-id ")"
- self.skip_ws()
- for op in _expression_unary_ops:
- # TODO: hmm, should we be able to backtrack here?
- if op[0] in 'cn':
- res = self.skip_word(op)
- else:
- res = self.skip_string(op)
- if res:
- expr = self._parse_cast_expression()
- return ASTUnaryOpExpr(op, expr)
- if self.skip_word_and_ws('sizeof'):
- if self.skip_string_and_ws('('):
- typ = self._parse_type(named=False)
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expecting ')' to end 'sizeof'.")
- return ASTSizeofType(typ)
- expr = self._parse_unary_expression()
- return ASTSizeofExpr(expr)
- if self.skip_word_and_ws('alignof'):
- if not self.skip_string_and_ws('('):
- self.fail("Expecting '(' after 'alignof'.")
- typ = self._parse_type(named=False)
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expecting ')' to end 'alignof'.")
- return ASTAlignofExpr(typ)
- return self._parse_postfix_expression()
-
- def _parse_cast_expression(self) -> ASTExpression:
- # -> unary | "(" type-id ")" cast
- pos = self.pos
- self.skip_ws()
- if self.skip_string('('):
- try:
- typ = self._parse_type(False)
- if not self.skip_string(')'):
- self.fail("Expected ')' in cast expression.")
- expr = self._parse_cast_expression()
- return ASTCastExpr(typ, expr)
- except DefinitionError as exCast:
- self.pos = pos
- try:
- return self._parse_unary_expression()
- except DefinitionError as exUnary:
- errs = []
- errs.append((exCast, "If type cast expression"))
- errs.append((exUnary, "If unary expression"))
- raise self._make_multi_error(errs,
- "Error in cast expression.") from exUnary
- else:
- return self._parse_unary_expression()
-
- def _parse_logical_or_expression(self) -> ASTExpression:
- # logical-or = logical-and ||
- # logical-and = inclusive-or &&
- # inclusive-or = exclusive-or |
- # exclusive-or = and ^
- # and = equality &
- # equality = relational ==, !=
- # relational = shift <, >, <=, >=
- # shift = additive <<, >>
- # additive = multiplicative +, -
- # multiplicative = pm *, /, %
- # pm = cast .*, ->*
- def _parse_bin_op_expr(self, opId):
- if opId + 1 == len(_expression_bin_ops):
- def parser() -> ASTExpression:
- return self._parse_cast_expression()
- else:
- def parser() -> ASTExpression:
- return _parse_bin_op_expr(self, opId + 1)
- exprs = []
- ops = []
- exprs.append(parser())
- while True:
- self.skip_ws()
- pos = self.pos
- oneMore = False
- for op in _expression_bin_ops[opId]:
- if op[0] in 'abcnox':
- if not self.skip_word(op):
- continue
- else:
- if not self.skip_string(op):
- continue
- if op == '&' and self.current_char == '&':
- # don't split the && 'token'
- self.pos -= 1
- # and btw. && has lower precedence, so we are done
- break
- try:
- expr = parser()
- exprs.append(expr)
- ops.append(op)
- oneMore = True
- break
- except DefinitionError:
- self.pos = pos
- if not oneMore:
- break
- return ASTBinOpExpr(exprs, ops)
- return _parse_bin_op_expr(self, 0)
-
- def _parse_conditional_expression_tail(self, orExprHead: Any) -> ASTExpression | None:
- # -> "?" expression ":" assignment-expression
- return None
-
- def _parse_assignment_expression(self) -> ASTExpression:
- # -> conditional-expression
- # | logical-or-expression assignment-operator initializer-clause
- # -> conditional-expression ->
- # logical-or-expression
- # | logical-or-expression "?" expression ":" assignment-expression
- # | logical-or-expression assignment-operator initializer-clause
- exprs = []
- ops = []
- orExpr = self._parse_logical_or_expression()
- exprs.append(orExpr)
- # TODO: handle ternary with _parse_conditional_expression_tail
- while True:
- oneMore = False
- self.skip_ws()
- for op in _expression_assignment_ops:
- if op[0] in 'abcnox':
- if not self.skip_word(op):
- continue
- else:
- if not self.skip_string(op):
- continue
- expr = self._parse_logical_or_expression()
- exprs.append(expr)
- ops.append(op)
- oneMore = True
- if not oneMore:
- break
- return ASTAssignmentExpr(exprs, ops)
-
- def _parse_constant_expression(self) -> ASTExpression:
- # -> conditional-expression
- orExpr = self._parse_logical_or_expression()
- # TODO: use _parse_conditional_expression_tail
- return orExpr
-
- def _parse_expression(self) -> ASTExpression:
- # -> assignment-expression
- # | expression "," assignment-expression
- # TODO: actually parse the second production
- return self._parse_assignment_expression()
-
- def _parse_expression_fallback(
- self, end: list[str],
- parser: Callable[[], ASTExpression],
- allow: bool = True) -> ASTExpression:
- # Stupidly "parse" an expression.
- # 'end' should be a list of characters which ends the expression.
-
- # first try to use the provided parser
- prevPos = self.pos
- try:
- return parser()
- except DefinitionError as e:
- # some places (e.g., template parameters) we really don't want to use fallback,
- # and for testing we may want to globally disable it
- if not allow or not self.allowFallbackExpressionParsing:
- raise
- self.warn("Parsing of expression failed. Using fallback parser."
- " Error was:\n%s" % e)
- self.pos = prevPos
- # and then the fallback scanning
- assert end is not None
- self.skip_ws()
- startPos = self.pos
- if self.match(_string_re):
- value = self.matched_text
- else:
- # TODO: add handling of more bracket-like things, and quote handling
- brackets = {'(': ')', '{': '}', '[': ']'}
- symbols: list[str] = []
- while not self.eof:
- if (len(symbols) == 0 and self.current_char in end):
- break
- if self.current_char in brackets:
- symbols.append(brackets[self.current_char])
- elif len(symbols) > 0 and self.current_char == symbols[-1]:
- symbols.pop()
- self.pos += 1
- if len(end) > 0 and self.eof:
- self.fail("Could not find end of expression starting at %d."
- % startPos)
- value = self.definition[startPos:self.pos].strip()
- return ASTFallbackExpr(value.strip())
-
- def _parse_nested_name(self) -> ASTNestedName:
- names: list[Any] = []
-
- self.skip_ws()
- rooted = False
- if self.skip_string('.'):
- rooted = True
- while 1:
- self.skip_ws()
- if not self.match(identifier_re):
- self.fail("Expected identifier in nested name.")
- identifier = self.matched_text
- # make sure there isn't a keyword
- if identifier in _keywords:
- self.fail("Expected identifier in nested name, "
- "got keyword: %s" % identifier)
- if self.matched_text in self.config.c_extra_keywords:
- msg = "Expected identifier, got user-defined keyword: %s." \
- + " Remove it from c_extra_keywords to allow it as identifier.\n" \
- + "Currently c_extra_keywords is %s."
- self.fail(msg % (self.matched_text,
- str(self.config.c_extra_keywords)))
- ident = ASTIdentifier(identifier)
- names.append(ident)
-
- self.skip_ws()
- if not self.skip_string('.'):
- break
- return ASTNestedName(names, rooted)
-
- def _parse_simple_type_specifier(self) -> str | None:
- if self.match(_simple_type_specifiers_re):
- return self.matched_text
- for t in ('bool', 'complex', 'imaginary'):
- if t in self.config.c_extra_keywords:
- if self.skip_word(t):
- return t
- return None
-
- def _parse_simple_type_specifiers(self) -> ASTTrailingTypeSpecFundamental | None:
- names: list[str] = []
-
- self.skip_ws()
- while True:
- t = self._parse_simple_type_specifier()
- if t is None:
- break
- names.append(t)
- self.skip_ws()
- if len(names) == 0:
- return None
- return ASTTrailingTypeSpecFundamental(names)
-
- def _parse_trailing_type_spec(self) -> ASTTrailingTypeSpec:
- # fundamental types, https://en.cppreference.com/w/c/language/type
- # and extensions
- self.skip_ws()
- res = self._parse_simple_type_specifiers()
- if res is not None:
- return res
-
- # prefixed
- prefix = None
- self.skip_ws()
- for k in ('struct', 'enum', 'union'):
- if self.skip_word_and_ws(k):
- prefix = k
- break
-
- nestedName = self._parse_nested_name()
- return ASTTrailingTypeSpecName(prefix, nestedName)
-
- def _parse_parameters(self, paramMode: str) -> ASTParameters | None:
- self.skip_ws()
- if not self.skip_string('('):
- if paramMode == 'function':
- self.fail('Expecting "(" in parameters.')
- else:
- return None
-
- args = []
- self.skip_ws()
- if not self.skip_string(')'):
- while 1:
- self.skip_ws()
- if self.skip_string('...'):
- args.append(ASTFunctionParameter(None, True))
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail('Expected ")" after "..." in parameters.')
- break
- # note: it seems that function arguments can always be named,
- # even in function pointers and similar.
- arg = self._parse_type_with_init(outer=None, named='single')
- # TODO: parse default parameters # TODO: didn't we just do that?
- args.append(ASTFunctionParameter(arg))
-
- self.skip_ws()
- if self.skip_string(','):
- continue
- if self.skip_string(')'):
- break
- self.fail(f'Expecting "," or ")" in parameters, got "{self.current_char}".')
-
- attrs = self._parse_attribute_list()
- return ASTParameters(args, attrs)
-
- def _parse_decl_specs_simple(
- self, outer: str | None, typed: bool,
- ) -> ASTDeclSpecsSimple:
- """Just parse the simple ones."""
- storage = None
- threadLocal = None
- inline = None
- restrict = None
- volatile = None
- const = None
- attrs = []
- while 1: # accept any permutation of a subset of some decl-specs
- self.skip_ws()
- if not storage:
- if outer == 'member':
- if self.skip_word('auto'):
- storage = 'auto'
- continue
- if self.skip_word('register'):
- storage = 'register'
- continue
- if outer in ('member', 'function'):
- if self.skip_word('static'):
- storage = 'static'
- continue
- if self.skip_word('extern'):
- storage = 'extern'
- continue
- if outer == 'member' and not threadLocal:
- if self.skip_word('thread_local'):
- threadLocal = 'thread_local'
- continue
- if self.skip_word('_Thread_local'):
- threadLocal = '_Thread_local'
- continue
- if outer == 'function' and not inline:
- inline = self.skip_word('inline')
- if inline:
- continue
-
- if not restrict and typed:
- restrict = self.skip_word('restrict')
- if restrict:
- continue
- if not volatile and typed:
- volatile = self.skip_word('volatile')
- if volatile:
- continue
- if not const and typed:
- const = self.skip_word('const')
- if const:
- continue
- attr = self._parse_attribute()
- if attr:
- attrs.append(attr)
- continue
- break
- return ASTDeclSpecsSimple(storage, threadLocal, inline,
- restrict, volatile, const, ASTAttributeList(attrs))
-
- def _parse_decl_specs(self, outer: str | None, typed: bool = True) -> ASTDeclSpecs:
- if outer:
- if outer not in ('type', 'member', 'function'):
- raise Exception('Internal error, unknown outer "%s".' % outer)
- leftSpecs = self._parse_decl_specs_simple(outer, typed)
- rightSpecs = None
-
- if typed:
- trailing = self._parse_trailing_type_spec()
- rightSpecs = self._parse_decl_specs_simple(outer, typed)
- else:
- trailing = None
- return ASTDeclSpecs(outer, leftSpecs, rightSpecs, trailing)
-
- def _parse_declarator_name_suffix(
- self, named: bool | str, paramMode: str, typed: bool,
- ) -> ASTDeclarator:
- assert named in (True, False, 'single')
- # now we should parse the name, and then suffixes
- if named == 'single':
- if self.match(identifier_re):
- if self.matched_text in _keywords:
- self.fail("Expected identifier, "
- "got keyword: %s" % self.matched_text)
- if self.matched_text in self.config.c_extra_keywords:
- msg = "Expected identifier, got user-defined keyword: %s." \
- + " Remove it from c_extra_keywords to allow it as identifier.\n" \
- + "Currently c_extra_keywords is %s."
- self.fail(msg % (self.matched_text,
- str(self.config.c_extra_keywords)))
- identifier = ASTIdentifier(self.matched_text)
- declId = ASTNestedName([identifier], rooted=False)
- else:
- declId = None
- elif named:
- declId = self._parse_nested_name()
- else:
- declId = None
- arrayOps = []
- while 1:
- self.skip_ws()
- if typed and self.skip_string('['):
- self.skip_ws()
- static = False
- const = False
- volatile = False
- restrict = False
- while True:
- if not static:
- if self.skip_word_and_ws('static'):
- static = True
- continue
- if not const:
- if self.skip_word_and_ws('const'):
- const = True
- continue
- if not volatile:
- if self.skip_word_and_ws('volatile'):
- volatile = True
- continue
- if not restrict:
- if self.skip_word_and_ws('restrict'):
- restrict = True
- continue
- break
- vla = False if static else self.skip_string_and_ws('*')
- if vla:
- if not self.skip_string(']'):
- self.fail("Expected ']' in end of array operator.")
- size = None
- else:
- if self.skip_string(']'):
- size = None
- else:
-
- def parser():
- return self._parse_expression()
- size = self._parse_expression_fallback([']'], parser)
- self.skip_ws()
- if not self.skip_string(']'):
- self.fail("Expected ']' in end of array operator.")
- arrayOps.append(ASTArray(static, const, volatile, restrict, vla, size))
- else:
- break
- param = self._parse_parameters(paramMode)
- if param is None and len(arrayOps) == 0:
- # perhaps a bit-field
- if named and paramMode == 'type' and typed:
- self.skip_ws()
- if self.skip_string(':'):
- size = self._parse_constant_expression()
- return ASTDeclaratorNameBitField(declId=declId, size=size)
- return ASTDeclaratorNameParam(declId=declId, arrayOps=arrayOps,
- param=param)
-
- def _parse_declarator(self, named: bool | str, paramMode: str,
- typed: bool = True) -> ASTDeclarator:
- # 'typed' here means 'parse return type stuff'
- if paramMode not in ('type', 'function'):
- raise Exception(
- "Internal error, unknown paramMode '%s'." % paramMode)
- prevErrors = []
- self.skip_ws()
- if typed and self.skip_string('*'):
- self.skip_ws()
- restrict = False
- volatile = False
- const = False
- attrs = []
- while 1:
- if not restrict:
- restrict = self.skip_word_and_ws('restrict')
- if restrict:
- continue
- if not volatile:
- volatile = self.skip_word_and_ws('volatile')
- if volatile:
- continue
- if not const:
- const = self.skip_word_and_ws('const')
- if const:
- continue
- attr = self._parse_attribute()
- if attr is not None:
- attrs.append(attr)
- continue
- break
- next = self._parse_declarator(named, paramMode, typed)
- return ASTDeclaratorPtr(next=next,
- restrict=restrict, volatile=volatile, const=const,
- attrs=ASTAttributeList(attrs))
- if typed and self.current_char == '(': # note: peeking, not skipping
- # maybe this is the beginning of params, try that first,
- # otherwise assume it's noptr->declarator > ( ptr-declarator )
- pos = self.pos
- try:
- # assume this is params
- res = self._parse_declarator_name_suffix(named, paramMode,
- typed)
- return res
- except DefinitionError as exParamQual:
- msg = "If declarator-id with parameters"
- if paramMode == 'function':
- msg += " (e.g., 'void f(int arg)')"
- prevErrors.append((exParamQual, msg))
- self.pos = pos
- try:
- assert self.current_char == '('
- self.skip_string('(')
- # TODO: hmm, if there is a name, it must be in inner, right?
- # TODO: hmm, if there must be parameters, they must b
- # inside, right?
- inner = self._parse_declarator(named, paramMode, typed)
- if not self.skip_string(')'):
- self.fail("Expected ')' in \"( ptr-declarator )\"")
- next = self._parse_declarator(named=False,
- paramMode="type",
- typed=typed)
- return ASTDeclaratorParen(inner=inner, next=next)
- except DefinitionError as exNoPtrParen:
- self.pos = pos
- msg = "If parenthesis in noptr-declarator"
- if paramMode == 'function':
- msg += " (e.g., 'void (*f(int arg))(double)')"
- prevErrors.append((exNoPtrParen, msg))
- header = "Error in declarator"
- raise self._make_multi_error(prevErrors, header) from exNoPtrParen
- pos = self.pos
- try:
- return self._parse_declarator_name_suffix(named, paramMode, typed)
- except DefinitionError as e:
- self.pos = pos
- prevErrors.append((e, "If declarator-id"))
- header = "Error in declarator or parameters"
- raise self._make_multi_error(prevErrors, header) from e
-
- def _parse_initializer(self, outer: str | None = None, allowFallback: bool = True,
- ) -> ASTInitializer | None:
- self.skip_ws()
- if outer == 'member' and False: # NoQA: SIM223 # TODO
- bracedInit = self._parse_braced_init_list()
- if bracedInit is not None:
- return ASTInitializer(bracedInit, hasAssign=False)
-
- if not self.skip_string('='):
- return None
-
- bracedInit = self._parse_braced_init_list()
- if bracedInit is not None:
- return ASTInitializer(bracedInit)
-
- if outer == 'member':
- fallbackEnd: list[str] = []
- elif outer is None: # function parameter
- fallbackEnd = [',', ')']
- else:
- self.fail("Internal error, initializer for outer '%s' not "
- "implemented." % outer)
-
- def parser():
- return self._parse_assignment_expression()
-
- value = self._parse_expression_fallback(fallbackEnd, parser, allow=allowFallback)
- return ASTInitializer(value)
-
- def _parse_type(self, named: bool | str, outer: str | None = None) -> ASTType:
- """
- named=False|'single'|True: 'single' is e.g., for function objects which
- doesn't need to name the arguments, but otherwise is a single name
- """
- if outer: # always named
- if outer not in ('type', 'member', 'function'):
- raise Exception('Internal error, unknown outer "%s".' % outer)
- assert named
-
- if outer == 'type':
- # We allow type objects to just be a name.
- prevErrors = []
- startPos = self.pos
- # first try without the type
- try:
- declSpecs = self._parse_decl_specs(outer=outer, typed=False)
- decl = self._parse_declarator(named=True, paramMode=outer,
- typed=False)
- self.assert_end(allowSemicolon=True)
- except DefinitionError as exUntyped:
- desc = "If just a name"
- prevErrors.append((exUntyped, desc))
- self.pos = startPos
- try:
- declSpecs = self._parse_decl_specs(outer=outer)
- decl = self._parse_declarator(named=True, paramMode=outer)
- except DefinitionError as exTyped:
- self.pos = startPos
- desc = "If typedef-like declaration"
- prevErrors.append((exTyped, desc))
- # Retain the else branch for easier debugging.
- # TODO: it would be nice to save the previous stacktrace
- # and output it here.
- if True:
- header = "Type must be either just a name or a "
- header += "typedef-like declaration."
- raise self._make_multi_error(prevErrors, header) from exTyped
- else: # NoQA: RET506
- # For testing purposes.
- # do it again to get the proper traceback (how do you
- # reliably save a traceback when an exception is
- # constructed?)
- self.pos = startPos
- typed = True
- declSpecs = self._parse_decl_specs(outer=outer, typed=typed)
- decl = self._parse_declarator(named=True, paramMode=outer,
- typed=typed)
- elif outer == 'function':
- declSpecs = self._parse_decl_specs(outer=outer)
- decl = self._parse_declarator(named=True, paramMode=outer)
- else:
- paramMode = 'type'
- if outer == 'member': # i.e., member
- named = True
- declSpecs = self._parse_decl_specs(outer=outer)
- decl = self._parse_declarator(named=named, paramMode=paramMode)
- return ASTType(declSpecs, decl)
-
- def _parse_type_with_init(self, named: bool | str, outer: str | None) -> ASTTypeWithInit:
- if outer:
- assert outer in ('type', 'member', 'function')
- type = self._parse_type(outer=outer, named=named)
- init = self._parse_initializer(outer=outer)
- return ASTTypeWithInit(type, init)
-
- def _parse_macro(self) -> ASTMacro:
- self.skip_ws()
- ident = self._parse_nested_name()
- if ident is None:
- self.fail("Expected identifier in macro definition.")
- self.skip_ws()
- if not self.skip_string_and_ws('('):
- return ASTMacro(ident, None)
- if self.skip_string(')'):
- return ASTMacro(ident, [])
- args = []
- while 1:
- self.skip_ws()
- if self.skip_string('...'):
- args.append(ASTMacroParameter(None, True))
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail('Expected ")" after "..." in macro parameters.')
- break
- if not self.match(identifier_re):
- self.fail("Expected identifier in macro parameters.")
- nn = ASTNestedName([ASTIdentifier(self.matched_text)], rooted=False)
- # Allow named variadic args:
- # https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
- self.skip_ws()
- if self.skip_string_and_ws('...'):
- args.append(ASTMacroParameter(nn, False, True))
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail('Expected ")" after "..." in macro parameters.')
- break
- args.append(ASTMacroParameter(nn))
- if self.skip_string_and_ws(','):
- continue
- if self.skip_string_and_ws(')'):
- break
- self.fail("Expected identifier, ')', or ',' in macro parameter list.")
- return ASTMacro(ident, args)
-
- def _parse_struct(self) -> ASTStruct:
- name = self._parse_nested_name()
- return ASTStruct(name)
-
- def _parse_union(self) -> ASTUnion:
- name = self._parse_nested_name()
- return ASTUnion(name)
-
- def _parse_enum(self) -> ASTEnum:
- name = self._parse_nested_name()
- return ASTEnum(name)
-
- def _parse_enumerator(self) -> ASTEnumerator:
- name = self._parse_nested_name()
- attrs = self._parse_attribute_list()
- self.skip_ws()
- init = None
- if self.skip_string('='):
- self.skip_ws()
-
- def parser() -> ASTExpression:
- return self._parse_constant_expression()
-
- initVal = self._parse_expression_fallback([], parser)
- init = ASTInitializer(initVal)
- return ASTEnumerator(name, init, attrs)
-
- def parse_declaration(self, objectType: str, directiveType: str) -> ASTDeclaration:
- if objectType not in ('function', 'member',
- 'macro', 'struct', 'union', 'enum', 'enumerator', 'type'):
- raise Exception('Internal error, unknown objectType "%s".' % objectType)
- if directiveType not in ('function', 'member', 'var',
- 'macro', 'struct', 'union', 'enum', 'enumerator', 'type'):
- raise Exception('Internal error, unknown directiveType "%s".' % directiveType)
-
- declaration: DeclarationType = None
- if objectType == 'member':
- declaration = self._parse_type_with_init(named=True, outer='member')
- elif objectType == 'function':
- declaration = self._parse_type(named=True, outer='function')
- elif objectType == 'macro':
- declaration = self._parse_macro()
- elif objectType == 'struct':
- declaration = self._parse_struct()
- elif objectType == 'union':
- declaration = self._parse_union()
- elif objectType == 'enum':
- declaration = self._parse_enum()
- elif objectType == 'enumerator':
- declaration = self._parse_enumerator()
- elif objectType == 'type':
- declaration = self._parse_type(named=True, outer='type')
- else:
- raise AssertionError
- if objectType != 'macro':
- self.skip_ws()
- semicolon = self.skip_string(';')
- else:
- semicolon = False
- return ASTDeclaration(objectType, directiveType, declaration, semicolon)
-
- def parse_namespace_object(self) -> ASTNestedName:
- return self._parse_nested_name()
-
- def parse_xref_object(self) -> ASTNestedName:
- name = self._parse_nested_name()
- # if there are '()' left, just skip them
- self.skip_ws()
- self.skip_string('()')
- self.assert_end()
- return name
-
- def parse_expression(self) -> ASTExpression | ASTType:
- pos = self.pos
- res: ASTExpression | ASTType = None
- try:
- res = self._parse_expression()
- self.skip_ws()
- self.assert_end()
- except DefinitionError as exExpr:
- self.pos = pos
- try:
- res = self._parse_type(False)
- self.skip_ws()
- self.assert_end()
- except DefinitionError as exType:
- header = "Error when parsing (type) expression."
- errs = []
- errs.append((exExpr, "If expression"))
- errs.append((exType, "If type"))
- raise self._make_multi_error(errs, header) from exType
- return res
-
-
-def _make_phony_error_name() -> ASTNestedName:
- return ASTNestedName([ASTIdentifier("PhonyNameDueToError")], rooted=False)
-
-
-class CObject(ObjectDescription[ASTDeclaration]):
- """
- Description of a C language object.
- """
-
- option_spec: OptionSpec = {
- 'no-index-entry': directives.flag,
- 'no-contents-entry': directives.flag,
- 'no-typesetting': directives.flag,
- 'noindexentry': directives.flag,
- 'nocontentsentry': directives.flag,
- 'single-line-parameter-list': directives.flag,
- }
-
- def _add_enumerator_to_parent(self, ast: ASTDeclaration) -> None:
- assert ast.objectType == 'enumerator'
- # find the parent, if it exists && is an enum
- # then add the name to the parent scope
- symbol = ast.symbol
- assert symbol
- assert symbol.ident is not None
- parentSymbol = symbol.parent
- assert parentSymbol
- if parentSymbol.parent is None:
- # TODO: we could warn, but it is somewhat equivalent to
- # enumeratorss, without the enum
- return # no parent
- parentDecl = parentSymbol.declaration
- if parentDecl is None:
- # the parent is not explicitly declared
- # TODO: we could warn, but?
- return
- if parentDecl.objectType != 'enum':
- # TODO: maybe issue a warning, enumerators in non-enums is weird,
- # but it is somewhat equivalent to enumeratorss, without the enum
- return
- if parentDecl.directiveType != 'enum':
- return
-
- targetSymbol = parentSymbol.parent
- s = targetSymbol.find_identifier(symbol.ident, matchSelf=False, recurseInAnon=True,
- searchInSiblings=False)
- if s is not None:
- # something is already declared with that name
- return
- declClone = symbol.declaration.clone()
- declClone.enumeratorScopedSymbol = symbol
- Symbol(parent=targetSymbol, ident=symbol.ident,
- declaration=declClone,
- docname=self.env.docname, line=self.get_source_info()[1])
-
- def add_target_and_index(self, ast: ASTDeclaration, sig: str,
- signode: TextElement) -> None:
- ids = []
- for i in range(1, _max_id + 1):
- try:
- id = ast.get_id(version=i)
- ids.append(id)
- except NoOldIdError:
- assert i < _max_id
- # let's keep the newest first
- ids = list(reversed(ids))
- newestId = ids[0]
- assert newestId # shouldn't be None
-
- name = ast.symbol.get_full_nested_name().get_display_string().lstrip('.')
- if newestId not in self.state.document.ids:
- # always add the newest id
- assert newestId
- signode['ids'].append(newestId)
- # only add compatibility ids when there are no conflicts
- for id in ids[1:]:
- if not id: # is None when the element didn't exist in that version
- continue
- if id not in self.state.document.ids:
- signode['ids'].append(id)
-
- self.state.document.note_explicit_target(signode)
-
- if 'no-index-entry' not in self.options:
- indexText = self.get_index_text(name)
- self.indexnode['entries'].append(('single', indexText, newestId, '', None))
-
- @property
- def object_type(self) -> str:
- raise NotImplementedError
-
- @property
- def display_object_type(self) -> str:
- return self.object_type
-
- def get_index_text(self, name: str) -> str:
- return _('%s (C %s)') % (name, self.display_object_type)
-
- def parse_definition(self, parser: DefinitionParser) -> ASTDeclaration:
- return parser.parse_declaration(self.object_type, self.objtype)
-
- def describe_signature(self, signode: TextElement, ast: ASTDeclaration,
- options: dict) -> None:
- ast.describe_signature(signode, 'lastIsName', self.env, options)
-
- def run(self) -> list[Node]:
- env = self.state.document.settings.env # from ObjectDescription.run
- if 'c:parent_symbol' not in env.temp_data:
- root = env.domaindata['c']['root_symbol']
- env.temp_data['c:parent_symbol'] = root
- env.ref_context['c:parent_key'] = root.get_lookup_key()
-
- # When multiple declarations are made in the same directive
- # they need to know about each other to provide symbol lookup for function parameters.
- # We use last_symbol to store the latest added declaration in a directive.
- env.temp_data['c:last_symbol'] = None
- return super().run()
-
- def handle_signature(self, sig: str, signode: TextElement) -> ASTDeclaration:
- parentSymbol: Symbol = self.env.temp_data['c:parent_symbol']
-
- max_len = (self.env.config.c_maximum_signature_line_length
- or self.env.config.maximum_signature_line_length
- or 0)
- signode['multi_line_parameter_list'] = (
- 'single-line-parameter-list' not in self.options
- and (len(sig) > max_len > 0)
- )
-
- parser = DefinitionParser(sig, location=signode, config=self.env.config)
- try:
- ast = self.parse_definition(parser)
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=signode)
- # It is easier to assume some phony name than handling the error in
- # the possibly inner declarations.
- name = _make_phony_error_name()
- symbol = parentSymbol.add_name(name)
- self.env.temp_data['c:last_symbol'] = symbol
- raise ValueError from e
-
- try:
- symbol = parentSymbol.add_declaration(
- ast, docname=self.env.docname, line=self.get_source_info()[1])
- # append the new declaration to the sibling list
- assert symbol.siblingAbove is None
- assert symbol.siblingBelow is None
- symbol.siblingAbove = self.env.temp_data['c:last_symbol']
- if symbol.siblingAbove is not None:
- assert symbol.siblingAbove.siblingBelow is None
- symbol.siblingAbove.siblingBelow = symbol
- self.env.temp_data['c:last_symbol'] = symbol
- except _DuplicateSymbolError as e:
- # Assume we are actually in the old symbol,
- # instead of the newly created duplicate.
- self.env.temp_data['c:last_symbol'] = e.symbol
- msg = __("Duplicate C declaration, also defined at %s:%s.\n"
- "Declaration is '.. c:%s:: %s'.")
- msg = msg % (e.symbol.docname, e.symbol.line, self.display_object_type, sig)
- logger.warning(msg, location=signode)
-
- if ast.objectType == 'enumerator':
- self._add_enumerator_to_parent(ast)
-
- # note: handle_signature may be called multiple time per directive,
- # if it has multiple signatures, so don't mess with the original options.
- options = dict(self.options)
- self.describe_signature(signode, ast, options)
- return ast
-
- def before_content(self) -> None:
- lastSymbol: Symbol = self.env.temp_data['c:last_symbol']
- assert lastSymbol
- self.oldParentSymbol = self.env.temp_data['c:parent_symbol']
- self.oldParentKey: LookupKey = self.env.ref_context['c:parent_key']
- self.env.temp_data['c:parent_symbol'] = lastSymbol
- self.env.ref_context['c:parent_key'] = lastSymbol.get_lookup_key()
-
- def after_content(self) -> None:
- self.env.temp_data['c:parent_symbol'] = self.oldParentSymbol
- self.env.ref_context['c:parent_key'] = self.oldParentKey
-
-
-class CMemberObject(CObject):
- object_type = 'member'
-
- @property
- def display_object_type(self) -> str:
- # the distinction between var and member is only cosmetic
- assert self.objtype in ('member', 'var')
- return self.objtype
-
-
-_function_doc_field_types = [
- TypedField('parameter', label=_('Parameters'),
- names=('param', 'parameter', 'arg', 'argument'),
- typerolename='expr', typenames=('type',)),
- GroupedField('retval', label=_('Return values'),
- names=('retvals', 'retval'),
- can_collapse=True),
- Field('returnvalue', label=_('Returns'), has_arg=False,
- names=('returns', 'return')),
- Field('returntype', label=_('Return type'), has_arg=False,
- names=('rtype',)),
-]
-
-
-class CFunctionObject(CObject):
- object_type = 'function'
-
- doc_field_types = _function_doc_field_types.copy()
-
-
-class CMacroObject(CObject):
- object_type = 'macro'
-
- doc_field_types = _function_doc_field_types.copy()
-
-
-class CStructObject(CObject):
- object_type = 'struct'
-
-
-class CUnionObject(CObject):
- object_type = 'union'
-
-
-class CEnumObject(CObject):
- object_type = 'enum'
-
-
-class CEnumeratorObject(CObject):
- object_type = 'enumerator'
-
-
-class CTypeObject(CObject):
- object_type = 'type'
-
-
-class CNamespaceObject(SphinxDirective):
- """
- This directive is just to tell Sphinx that we're documenting stuff in
- namespace foo.
- """
-
- has_content = False
- required_arguments = 1
- optional_arguments = 0
- final_argument_whitespace = True
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- rootSymbol = self.env.domaindata['c']['root_symbol']
- if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
- symbol = rootSymbol
- stack: list[Symbol] = []
- else:
- parser = DefinitionParser(self.arguments[0],
- location=self.get_location(),
- config=self.env.config)
- try:
- name = parser.parse_namespace_object()
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=self.get_location())
- name = _make_phony_error_name()
- symbol = rootSymbol.add_name(name)
- stack = [symbol]
- self.env.temp_data['c:parent_symbol'] = symbol
- self.env.temp_data['c:namespace_stack'] = stack
- self.env.ref_context['c:parent_key'] = symbol.get_lookup_key()
- return []
-
-
-class CNamespacePushObject(SphinxDirective):
- has_content = False
- required_arguments = 1
- optional_arguments = 0
- final_argument_whitespace = True
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
- return []
- parser = DefinitionParser(self.arguments[0],
- location=self.get_location(),
- config=self.env.config)
- try:
- name = parser.parse_namespace_object()
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=self.get_location())
- name = _make_phony_error_name()
- oldParent = self.env.temp_data.get('c:parent_symbol', None)
- if not oldParent:
- oldParent = self.env.domaindata['c']['root_symbol']
- symbol = oldParent.add_name(name)
- stack = self.env.temp_data.get('c:namespace_stack', [])
- stack.append(symbol)
- self.env.temp_data['c:parent_symbol'] = symbol
- self.env.temp_data['c:namespace_stack'] = stack
- self.env.ref_context['c:parent_key'] = symbol.get_lookup_key()
- return []
-
-
-class CNamespacePopObject(SphinxDirective):
- has_content = False
- required_arguments = 0
- optional_arguments = 0
- final_argument_whitespace = True
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- stack = self.env.temp_data.get('c:namespace_stack', None)
- if not stack or len(stack) == 0:
- logger.warning("C namespace pop on empty stack. Defaulting to global scope.",
- location=self.get_location())
- stack = []
- else:
- stack.pop()
- if len(stack) > 0:
- symbol = stack[-1]
- else:
- symbol = self.env.domaindata['c']['root_symbol']
- self.env.temp_data['c:parent_symbol'] = symbol
- self.env.temp_data['c:namespace_stack'] = stack
- self.env.ref_context['cp:parent_key'] = symbol.get_lookup_key()
- return []
-
-
-class AliasNode(nodes.Element):
- def __init__(
- self,
- sig: str,
- aliasOptions: dict,
- document: Any,
- env: BuildEnvironment | None = None,
- parentKey: LookupKey | None = None,
- ) -> None:
- super().__init__()
- self.sig = sig
- self.aliasOptions = aliasOptions
- self.document = document
- if env is not None:
- if 'c:parent_symbol' not in env.temp_data:
- root = env.domaindata['c']['root_symbol']
- env.temp_data['c:parent_symbol'] = root
- env.ref_context['c:parent_key'] = root.get_lookup_key()
- self.parentKey = env.ref_context['c:parent_key']
- else:
- assert parentKey is not None
- self.parentKey = parentKey
-
- def copy(self) -> AliasNode:
- return self.__class__(self.sig, self.aliasOptions, self.document,
- env=None, parentKey=self.parentKey)
-
-
-class AliasTransform(SphinxTransform):
- default_priority = ReferencesResolver.default_priority - 1
-
- def _render_symbol(self, s: Symbol, maxdepth: int, skipThis: bool,
- aliasOptions: dict, renderOptions: dict,
- document: Any) -> list[Node]:
- if maxdepth == 0:
- recurse = True
- elif maxdepth == 1:
- recurse = False
- else:
- maxdepth -= 1
- recurse = True
-
- nodes: list[Node] = []
- if not skipThis:
- signode = addnodes.desc_signature('', '')
- nodes.append(signode)
- s.declaration.describe_signature(signode, 'markName', self.env, renderOptions)
-
- if recurse:
- if skipThis:
- childContainer: list[Node] | addnodes.desc = nodes
- else:
- content = addnodes.desc_content()
- desc = addnodes.desc()
- content.append(desc)
- desc.document = document
- desc['domain'] = 'c'
- # 'desctype' is a backwards compatible attribute
- desc['objtype'] = desc['desctype'] = 'alias'
- desc['no-index'] = True
- childContainer = desc
-
- for sChild in s.children:
- if sChild.declaration is None:
- continue
- childNodes = self._render_symbol(
- sChild, maxdepth=maxdepth, skipThis=False,
- aliasOptions=aliasOptions, renderOptions=renderOptions,
- document=document)
- childContainer.extend(childNodes)
-
- if not skipThis and len(desc.children) != 0:
- nodes.append(content)
- return nodes
-
- def apply(self, **kwargs: Any) -> None:
- for node in self.document.findall(AliasNode):
- sig = node.sig
- parentKey = node.parentKey
- try:
- parser = DefinitionParser(sig, location=node,
- config=self.env.config)
- name = parser.parse_xref_object()
- except DefinitionError as e:
- logger.warning(e, location=node)
- name = None
-
- if name is None:
- # could not be parsed, so stop here
- signode = addnodes.desc_signature(sig, '')
- signode.clear()
- signode += addnodes.desc_name(sig, sig)
- node.replace_self(signode)
- continue
-
- rootSymbol: Symbol = self.env.domains['c'].data['root_symbol']
- parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
- if not parentSymbol:
- logger.debug("Target: %s", sig)
- logger.debug("ParentKey: %s", parentKey)
- logger.debug(rootSymbol.dump(1))
- assert parentSymbol # should be there
-
- s = parentSymbol.find_declaration(
- name, 'any',
- matchSelf=True, recurseInAnon=True)
- if s is None:
- signode = addnodes.desc_signature(sig, '')
- node.append(signode)
- signode.clear()
- signode += addnodes.desc_name(sig, sig)
-
- logger.warning("Could not find C declaration for alias '%s'." % name,
- location=node)
- node.replace_self(signode)
- continue
- # Declarations like .. var:: int Missing::var
- # may introduce symbols without declarations.
- # But if we skip the root then it is ok to start recursion from it.
- if not node.aliasOptions['noroot'] and s.declaration is None:
- signode = addnodes.desc_signature(sig, '')
- node.append(signode)
- signode.clear()
- signode += addnodes.desc_name(sig, sig)
-
- logger.warning(
- "Can not render C declaration for alias '%s'. No such declaration." % name,
- location=node)
- node.replace_self(signode)
- continue
-
- nodes = self._render_symbol(s, maxdepth=node.aliasOptions['maxdepth'],
- skipThis=node.aliasOptions['noroot'],
- aliasOptions=node.aliasOptions,
- renderOptions={}, document=node.document)
- node.replace_self(nodes)
-
-
-class CAliasObject(ObjectDescription):
- option_spec: OptionSpec = {
- 'maxdepth': directives.nonnegative_int,
- 'noroot': directives.flag,
- }
-
- def run(self) -> list[Node]:
- """
- On purpose this doesn't call the ObjectDescription version, but is based on it.
- Each alias signature may expand into multiple real signatures if 'noroot'.
- The code is therefore based on the ObjectDescription version.
- """
- if ':' in self.name:
- self.domain, self.objtype = self.name.split(':', 1)
- else:
- self.domain, self.objtype = '', self.name
-
- node = addnodes.desc()
- node.document = self.state.document
- node['domain'] = self.domain
- # 'desctype' is a backwards compatible attribute
- node['objtype'] = node['desctype'] = self.objtype
- node['no-index'] = True
-
- self.names: list[str] = []
- aliasOptions = {
- 'maxdepth': self.options.get('maxdepth', 1),
- 'noroot': 'noroot' in self.options,
- }
- if aliasOptions['noroot'] and aliasOptions['maxdepth'] == 1:
- logger.warning("Error in C alias declaration."
- " Requested 'noroot' but 'maxdepth' 1."
- " When skipping the root declaration,"
- " need 'maxdepth' 0 for infinite or at least 2.",
- location=self.get_location())
- for sig in self.get_signatures():
- node.append(AliasNode(sig, aliasOptions, self.state.document, env=self.env))
- return [node]
-
-
-class CXRefRole(XRefRole):
- def process_link(self, env: BuildEnvironment, refnode: Element,
- has_explicit_title: bool, title: str, target: str) -> tuple[str, str]:
- refnode.attributes.update(env.ref_context)
-
- if not has_explicit_title:
- # major hax: replace anon names via simple string manipulation.
- # Can this actually fail?
- title = anon_identifier_re.sub("[anonymous]", str(title))
-
- if not has_explicit_title:
- target = target.lstrip('~') # only has a meaning for the title
- # if the first character is a tilde, don't display the module/class
- # parts of the contents
- if title[0:1] == '~':
- title = title[1:]
- dot = title.rfind('.')
- if dot != -1:
- title = title[dot + 1:]
- return title, target
-
-
-class CExprRole(SphinxRole):
- def __init__(self, asCode: bool) -> None:
- super().__init__()
- if asCode:
- # render the expression as inline code
- self.class_type = 'c-expr'
- else:
- # render the expression as inline text
- self.class_type = 'c-texpr'
-
- def run(self) -> tuple[list[Node], list[system_message]]:
- text = self.text.replace('\n', ' ')
- parser = DefinitionParser(text, location=self.get_location(),
- config=self.env.config)
- # attempt to mimic XRefRole classes, except that...
- try:
- ast = parser.parse_expression()
- except DefinitionError as ex:
- logger.warning('Unparseable C expression: %r\n%s', text, ex,
- location=self.get_location())
- # see below
- return [addnodes.desc_inline('c', text, text, classes=[self.class_type])], []
- parentSymbol = self.env.temp_data.get('c:parent_symbol', None)
- if parentSymbol is None:
- parentSymbol = self.env.domaindata['c']['root_symbol']
- # ...most if not all of these classes should really apply to the individual references,
- # not the container node
- signode = addnodes.desc_inline('c', classes=[self.class_type])
- ast.describe_signature(signode, 'markType', self.env, parentSymbol)
- return [signode], []
-
-
-class CDomain(Domain):
- """C language domain."""
- name = 'c'
- label = 'C'
- object_types = {
- # 'identifier' is the one used for xrefs generated in signatures, not in roles
- 'member': ObjType(_('member'), 'var', 'member', 'data', 'identifier'),
- 'var': ObjType(_('variable'), 'var', 'member', 'data', 'identifier'),
- 'function': ObjType(_('function'), 'func', 'identifier', 'type'),
- 'macro': ObjType(_('macro'), 'macro', 'identifier'),
- 'struct': ObjType(_('struct'), 'struct', 'identifier', 'type'),
- 'union': ObjType(_('union'), 'union', 'identifier', 'type'),
- 'enum': ObjType(_('enum'), 'enum', 'identifier', 'type'),
- 'enumerator': ObjType(_('enumerator'), 'enumerator', 'identifier'),
- 'type': ObjType(_('type'), 'identifier', 'type'),
- # generated object types
- 'functionParam': ObjType(_('function parameter'), 'identifier', 'var', 'member', 'data'), # noqa: E501
- }
-
- directives = {
- 'member': CMemberObject,
- 'var': CMemberObject,
- 'function': CFunctionObject,
- 'macro': CMacroObject,
- 'struct': CStructObject,
- 'union': CUnionObject,
- 'enum': CEnumObject,
- 'enumerator': CEnumeratorObject,
- 'type': CTypeObject,
- # scope control
- 'namespace': CNamespaceObject,
- 'namespace-push': CNamespacePushObject,
- 'namespace-pop': CNamespacePopObject,
- # other
- 'alias': CAliasObject,
- }
- roles = {
- 'member': CXRefRole(),
- 'data': CXRefRole(),
- 'var': CXRefRole(),
- 'func': CXRefRole(fix_parens=True),
- 'macro': CXRefRole(),
- 'struct': CXRefRole(),
- 'union': CXRefRole(),
- 'enum': CXRefRole(),
- 'enumerator': CXRefRole(),
- 'type': CXRefRole(),
- 'expr': CExprRole(asCode=True),
- 'texpr': CExprRole(asCode=False),
- }
- initial_data: dict[str, Symbol | dict[str, tuple[str, str, str]]] = {
- 'root_symbol': Symbol(None, None, None, None, None),
- 'objects': {}, # fullname -> docname, node_id, objtype
- }
-
- def clear_doc(self, docname: str) -> None:
- if Symbol.debug_show_tree:
- logger.debug("clear_doc: %s", docname)
- logger.debug("\tbefore:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tbefore end")
-
- rootSymbol = self.data['root_symbol']
- rootSymbol.clear_doc(docname)
-
- if Symbol.debug_show_tree:
- logger.debug("\tafter:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tafter end")
- logger.debug("clear_doc end: %s", docname)
-
- def process_doc(self, env: BuildEnvironment, docname: str,
- document: nodes.document) -> None:
- if Symbol.debug_show_tree:
- logger.debug("process_doc: %s", docname)
- logger.debug(self.data['root_symbol'].dump(0))
- logger.debug("process_doc end: %s", docname)
-
- def process_field_xref(self, pnode: pending_xref) -> None:
- pnode.attributes.update(self.env.ref_context)
-
- def merge_domaindata(self, docnames: list[str], otherdata: dict) -> None:
- if Symbol.debug_show_tree:
- logger.debug("merge_domaindata:")
- logger.debug("\tself:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tself end")
- logger.debug("\tother:")
- logger.debug(otherdata['root_symbol'].dump(1))
- logger.debug("\tother end")
- logger.debug("merge_domaindata end")
-
- self.data['root_symbol'].merge_with(otherdata['root_symbol'],
- docnames, self.env)
- ourObjects = self.data['objects']
- for fullname, (fn, id_, objtype) in otherdata['objects'].items():
- if fn in docnames:
- if fullname not in ourObjects:
- ourObjects[fullname] = (fn, id_, objtype)
- # no need to warn on duplicates, the symbol merge already does that
-
- def _resolve_xref_inner(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- typ: str, target: str, node: pending_xref,
- contnode: Element) -> tuple[Element | None, str | None]:
- parser = DefinitionParser(target, location=node, config=env.config)
- try:
- name = parser.parse_xref_object()
- except DefinitionError as e:
- logger.warning('Unparseable C cross-reference: %r\n%s', target, e,
- location=node)
- return None, None
- parentKey: LookupKey = node.get("c:parent_key", None)
- rootSymbol = self.data['root_symbol']
- if parentKey:
- parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
- if not parentSymbol:
- logger.debug("Target: %s", target)
- logger.debug("ParentKey: %s", parentKey)
- logger.debug(rootSymbol.dump(1))
- assert parentSymbol # should be there
- else:
- parentSymbol = rootSymbol
- s = parentSymbol.find_declaration(name, typ,
- matchSelf=True, recurseInAnon=True)
- if s is None or s.declaration is None:
- return None, None
-
- # TODO: check role type vs. object type
-
- declaration = s.declaration
- displayName = name.get_display_string()
- docname = s.docname
- assert docname
-
- return make_refnode(builder, fromdocname, docname,
- declaration.get_newest_id(), contnode, displayName,
- ), declaration.objectType
-
- def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- typ: str, target: str, node: pending_xref,
- contnode: Element) -> Element | None:
- return self._resolve_xref_inner(env, fromdocname, builder, typ,
- target, node, contnode)[0]
-
- def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- target: str, node: pending_xref, contnode: Element,
- ) -> list[tuple[str, Element]]:
- with logging.suppress_logging():
- retnode, objtype = self._resolve_xref_inner(env, fromdocname, builder,
- 'any', target, node, contnode)
- if retnode:
- return [('c:' + self.role_for_objtype(objtype), retnode)]
- return []
-
- def get_objects(self) -> Iterator[tuple[str, str, str, str, str, int]]:
- rootSymbol = self.data['root_symbol']
- for symbol in rootSymbol.get_all_symbols():
- if symbol.declaration is None:
- continue
- assert symbol.docname
- fullNestedName = symbol.get_full_nested_name()
- name = str(fullNestedName).lstrip('.')
- dispname = fullNestedName.get_display_string().lstrip('.')
- objectType = symbol.declaration.objectType
- docname = symbol.docname
- newestId = symbol.declaration.get_newest_id()
- yield (name, dispname, objectType, docname, newestId, 1)
-
-
-def setup(app: Sphinx) -> dict[str, Any]:
- app.add_domain(CDomain)
- app.add_config_value("c_id_attributes", [], 'env')
- app.add_config_value("c_paren_attributes", [], 'env')
- app.add_config_value("c_extra_keywords", _macroKeywords, 'env')
- app.add_config_value("c_maximum_signature_line_length", None, 'env', types={int, None})
- app.add_post_transform(AliasTransform)
-
- return {
- 'version': 'builtin',
- 'env_version': 3,
- 'parallel_read_safe': True,
- 'parallel_write_safe': True,
- }
diff --git a/sphinx/domains/c/__init__.py b/sphinx/domains/c/__init__.py
new file mode 100644
index 0000000..903fa4c
--- /dev/null
+++ b/sphinx/domains/c/__init__.py
@@ -0,0 +1,849 @@
+"""The C language domain."""
+
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any, ClassVar
+
+from docutils import nodes
+from docutils.parsers.rst import directives
+
+from sphinx import addnodes
+from sphinx.directives import ObjectDescription
+from sphinx.domains import Domain, ObjType
+from sphinx.domains.c._ast import (
+ ASTDeclaration,
+ ASTIdentifier,
+ ASTNestedName,
+)
+from sphinx.domains.c._ids import _macroKeywords, _max_id
+from sphinx.domains.c._parser import DefinitionParser
+from sphinx.domains.c._symbol import Symbol, _DuplicateSymbolError
+from sphinx.locale import _, __
+from sphinx.roles import SphinxRole, XRefRole
+from sphinx.transforms import SphinxTransform
+from sphinx.transforms.post_transforms import ReferencesResolver
+from sphinx.util import logging
+from sphinx.util.cfamily import (
+ DefinitionError,
+ NoOldIdError,
+ anon_identifier_re,
+)
+from sphinx.util.docfields import Field, GroupedField, TypedField
+from sphinx.util.docutils import SphinxDirective
+from sphinx.util.nodes import make_refnode
+
+if TYPE_CHECKING:
+ from collections.abc import Iterator
+
+ from docutils.nodes import Element, Node, TextElement, system_message
+
+ from sphinx.addnodes import pending_xref
+ from sphinx.application import Sphinx
+ from sphinx.builders import Builder
+ from sphinx.domains.c._symbol import LookupKey
+ from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
+
+# re-export objects for backwards compatibility
+# xref https://github.com/sphinx-doc/sphinx/issues/12295
+from sphinx.domains.c._ast import ( # NoQA: F401
+ ASTAlignofExpr,
+ ASTArray,
+ ASTAssignmentExpr,
+ ASTBase,
+ ASTBinOpExpr,
+ ASTBooleanLiteral,
+ ASTBracedInitList,
+ ASTCastExpr,
+ ASTCharLiteral,
+ ASTDeclarator,
+ ASTDeclaratorNameBitField,
+ ASTDeclaratorNameParam,
+ ASTDeclaratorParen,
+ ASTDeclaratorPtr,
+ ASTDeclSpecs,
+ ASTDeclSpecsSimple,
+ ASTEnum,
+ ASTEnumerator,
+ ASTExpression,
+ ASTFallbackExpr,
+ ASTFunctionParameter,
+ ASTIdExpression,
+ ASTInitializer,
+ ASTLiteral,
+ ASTMacro,
+ ASTMacroParameter,
+ ASTNumberLiteral,
+ ASTParameters,
+ ASTParenExpr,
+ ASTParenExprList,
+ ASTPostfixArray,
+ ASTPostfixCallExpr,
+ ASTPostfixDec,
+ ASTPostfixExpr,
+ ASTPostfixInc,
+ ASTPostfixMemberOfPointer,
+ ASTPostfixOp,
+ ASTSizeofExpr,
+ ASTSizeofType,
+ ASTStringLiteral,
+ ASTStruct,
+ ASTTrailingTypeSpec,
+ ASTTrailingTypeSpecFundamental,
+ ASTTrailingTypeSpecName,
+ ASTType,
+ ASTTypeWithInit,
+ ASTUnaryOpExpr,
+ ASTUnion,
+)
+
+logger = logging.getLogger(__name__)
+
+
+def _make_phony_error_name() -> ASTNestedName:
+ return ASTNestedName([ASTIdentifier("PhonyNameDueToError")], rooted=False)
+
+
+class CObject(ObjectDescription[ASTDeclaration]):
+ """
+ Description of a C language object.
+ """
+
+ option_spec: ClassVar[OptionSpec] = {
+ 'no-index-entry': directives.flag,
+ 'no-contents-entry': directives.flag,
+ 'no-typesetting': directives.flag,
+ 'noindexentry': directives.flag,
+ 'nocontentsentry': directives.flag,
+ 'single-line-parameter-list': directives.flag,
+ }
+
+ def _add_enumerator_to_parent(self, ast: ASTDeclaration) -> None:
+ assert ast.objectType == 'enumerator'
+ # find the parent, if it exists && is an enum
+ # then add the name to the parent scope
+ symbol = ast.symbol
+ assert symbol
+ assert symbol.ident is not None
+ parentSymbol = symbol.parent
+ assert parentSymbol
+ if parentSymbol.parent is None:
+ # TODO: we could warn, but it is somewhat equivalent to
+ # enumeratorss, without the enum
+ return # no parent
+ parentDecl = parentSymbol.declaration
+ if parentDecl is None:
+ # the parent is not explicitly declared
+ # TODO: we could warn, but?
+ return
+ if parentDecl.objectType != 'enum':
+ # TODO: maybe issue a warning, enumerators in non-enums is weird,
+ # but it is somewhat equivalent to enumeratorss, without the enum
+ return
+ if parentDecl.directiveType != 'enum':
+ return
+
+ targetSymbol = parentSymbol.parent
+ s = targetSymbol.find_identifier(symbol.ident, matchSelf=False, recurseInAnon=True,
+ searchInSiblings=False)
+ if s is not None:
+ # something is already declared with that name
+ return
+ declClone = symbol.declaration.clone()
+ declClone.enumeratorScopedSymbol = symbol
+ Symbol(parent=targetSymbol, ident=symbol.ident,
+ declaration=declClone,
+ docname=self.env.docname, line=self.get_source_info()[1])
+
+ def add_target_and_index(self, ast: ASTDeclaration, sig: str,
+ signode: TextElement) -> None:
+ ids = []
+ for i in range(1, _max_id + 1):
+ try:
+ id = ast.get_id(version=i)
+ ids.append(id)
+ except NoOldIdError:
+ assert i < _max_id
+ # let's keep the newest first
+ ids.reverse()
+ newestId = ids[0]
+ assert newestId # shouldn't be None
+
+ name = ast.symbol.get_full_nested_name().get_display_string().lstrip('.')
+ if newestId not in self.state.document.ids:
+ # always add the newest id
+ assert newestId
+ signode['ids'].append(newestId)
+ # only add compatibility ids when there are no conflicts
+ for id in ids[1:]:
+ if not id: # is None when the element didn't exist in that version
+ continue
+ if id not in self.state.document.ids:
+ signode['ids'].append(id)
+
+ self.state.document.note_explicit_target(signode)
+
+ if 'no-index-entry' not in self.options:
+ indexText = self.get_index_text(name)
+ self.indexnode['entries'].append(('single', indexText, newestId, '', None))
+
+ @property
+ def object_type(self) -> str:
+ raise NotImplementedError
+
+ @property
+ def display_object_type(self) -> str:
+ return self.object_type
+
+ def get_index_text(self, name: str) -> str:
+ return _('%s (C %s)') % (name, self.display_object_type)
+
+ def parse_definition(self, parser: DefinitionParser) -> ASTDeclaration:
+ return parser.parse_declaration(self.object_type, self.objtype)
+
+ def describe_signature(self, signode: TextElement, ast: ASTDeclaration,
+ options: dict) -> None:
+ ast.describe_signature(signode, 'lastIsName', self.env, options)
+
+ def run(self) -> list[Node]:
+ env = self.state.document.settings.env # from ObjectDescription.run
+ if 'c:parent_symbol' not in env.temp_data:
+ root = env.domaindata['c']['root_symbol']
+ env.temp_data['c:parent_symbol'] = root
+ env.ref_context['c:parent_key'] = root.get_lookup_key()
+
+ # When multiple declarations are made in the same directive
+ # they need to know about each other to provide symbol lookup for function parameters.
+ # We use last_symbol to store the latest added declaration in a directive.
+ env.temp_data['c:last_symbol'] = None
+ return super().run()
+
+ def handle_signature(self, sig: str, signode: TextElement) -> ASTDeclaration:
+ parentSymbol: Symbol = self.env.temp_data['c:parent_symbol']
+
+ max_len = (self.env.config.c_maximum_signature_line_length
+ or self.env.config.maximum_signature_line_length
+ or 0)
+ signode['multi_line_parameter_list'] = (
+ 'single-line-parameter-list' not in self.options
+ and (len(sig) > max_len > 0)
+ )
+
+ parser = DefinitionParser(sig, location=signode, config=self.env.config)
+ try:
+ ast = self.parse_definition(parser)
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=signode)
+ # It is easier to assume some phony name than handling the error in
+ # the possibly inner declarations.
+ name = _make_phony_error_name()
+ symbol = parentSymbol.add_name(name)
+ self.env.temp_data['c:last_symbol'] = symbol
+ raise ValueError from e
+
+ try:
+ symbol = parentSymbol.add_declaration(
+ ast, docname=self.env.docname, line=self.get_source_info()[1])
+ # append the new declaration to the sibling list
+ assert symbol.siblingAbove is None
+ assert symbol.siblingBelow is None
+ symbol.siblingAbove = self.env.temp_data['c:last_symbol']
+ if symbol.siblingAbove is not None:
+ assert symbol.siblingAbove.siblingBelow is None
+ symbol.siblingAbove.siblingBelow = symbol
+ self.env.temp_data['c:last_symbol'] = symbol
+ except _DuplicateSymbolError as e:
+ # Assume we are actually in the old symbol,
+ # instead of the newly created duplicate.
+ self.env.temp_data['c:last_symbol'] = e.symbol
+ msg = __("Duplicate C declaration, also defined at %s:%s.\n"
+ "Declaration is '.. c:%s:: %s'.")
+ msg = msg % (e.symbol.docname, e.symbol.line, self.display_object_type, sig)
+ logger.warning(msg, location=signode)
+
+ if ast.objectType == 'enumerator':
+ self._add_enumerator_to_parent(ast)
+
+ # note: handle_signature may be called multiple time per directive,
+ # if it has multiple signatures, so don't mess with the original options.
+ options = dict(self.options)
+ self.describe_signature(signode, ast, options)
+ return ast
+
+ def before_content(self) -> None:
+ lastSymbol: Symbol = self.env.temp_data['c:last_symbol']
+ assert lastSymbol
+ self.oldParentSymbol = self.env.temp_data['c:parent_symbol']
+ self.oldParentKey: LookupKey = self.env.ref_context['c:parent_key']
+ self.env.temp_data['c:parent_symbol'] = lastSymbol
+ self.env.ref_context['c:parent_key'] = lastSymbol.get_lookup_key()
+
+ def after_content(self) -> None:
+ self.env.temp_data['c:parent_symbol'] = self.oldParentSymbol
+ self.env.ref_context['c:parent_key'] = self.oldParentKey
+
+
+class CMemberObject(CObject):
+ object_type = 'member'
+
+ @property
+ def display_object_type(self) -> str:
+ # the distinction between var and member is only cosmetic
+ assert self.objtype in ('member', 'var')
+ return self.objtype
+
+
+_function_doc_field_types = [
+ TypedField('parameter', label=_('Parameters'),
+ names=('param', 'parameter', 'arg', 'argument'),
+ typerolename='expr', typenames=('type',)),
+ GroupedField('retval', label=_('Return values'),
+ names=('retvals', 'retval'),
+ can_collapse=True),
+ Field('returnvalue', label=_('Returns'), has_arg=False,
+ names=('returns', 'return')),
+ Field('returntype', label=_('Return type'), has_arg=False,
+ names=('rtype',)),
+]
+
+
+class CFunctionObject(CObject):
+ object_type = 'function'
+
+ doc_field_types = _function_doc_field_types.copy()
+
+
+class CMacroObject(CObject):
+ object_type = 'macro'
+
+ doc_field_types = _function_doc_field_types.copy()
+
+
+class CStructObject(CObject):
+ object_type = 'struct'
+
+
+class CUnionObject(CObject):
+ object_type = 'union'
+
+
+class CEnumObject(CObject):
+ object_type = 'enum'
+
+
+class CEnumeratorObject(CObject):
+ object_type = 'enumerator'
+
+
+class CTypeObject(CObject):
+ object_type = 'type'
+
+
+class CNamespaceObject(SphinxDirective):
+ """
+ This directive is just to tell Sphinx that we're documenting stuff in
+ namespace foo.
+ """
+
+ has_content = False
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ rootSymbol = self.env.domaindata['c']['root_symbol']
+ if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
+ symbol = rootSymbol
+ stack: list[Symbol] = []
+ else:
+ parser = DefinitionParser(self.arguments[0],
+ location=self.get_location(),
+ config=self.env.config)
+ try:
+ name = parser.parse_namespace_object()
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=self.get_location())
+ name = _make_phony_error_name()
+ symbol = rootSymbol.add_name(name)
+ stack = [symbol]
+ self.env.temp_data['c:parent_symbol'] = symbol
+ self.env.temp_data['c:namespace_stack'] = stack
+ self.env.ref_context['c:parent_key'] = symbol.get_lookup_key()
+ return []
+
+
+class CNamespacePushObject(SphinxDirective):
+ has_content = False
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
+ return []
+ parser = DefinitionParser(self.arguments[0],
+ location=self.get_location(),
+ config=self.env.config)
+ try:
+ name = parser.parse_namespace_object()
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=self.get_location())
+ name = _make_phony_error_name()
+ oldParent = self.env.temp_data.get('c:parent_symbol', None)
+ if not oldParent:
+ oldParent = self.env.domaindata['c']['root_symbol']
+ symbol = oldParent.add_name(name)
+ stack = self.env.temp_data.get('c:namespace_stack', [])
+ stack.append(symbol)
+ self.env.temp_data['c:parent_symbol'] = symbol
+ self.env.temp_data['c:namespace_stack'] = stack
+ self.env.ref_context['c:parent_key'] = symbol.get_lookup_key()
+ return []
+
+
+class CNamespacePopObject(SphinxDirective):
+ has_content = False
+ required_arguments = 0
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ stack = self.env.temp_data.get('c:namespace_stack', None)
+ if not stack or len(stack) == 0:
+ logger.warning("C namespace pop on empty stack. Defaulting to global scope.",
+ location=self.get_location())
+ stack = []
+ else:
+ stack.pop()
+ if len(stack) > 0:
+ symbol = stack[-1]
+ else:
+ symbol = self.env.domaindata['c']['root_symbol']
+ self.env.temp_data['c:parent_symbol'] = symbol
+ self.env.temp_data['c:namespace_stack'] = stack
+ self.env.ref_context['c:parent_key'] = symbol.get_lookup_key()
+ return []
+
+
+class AliasNode(nodes.Element):
+ def __init__(
+ self,
+ sig: str,
+ aliasOptions: dict,
+ document: Any,
+ env: BuildEnvironment | None = None,
+ parentKey: LookupKey | None = None,
+ ) -> None:
+ super().__init__()
+ self.sig = sig
+ self.aliasOptions = aliasOptions
+ self.document = document
+ if env is not None:
+ if 'c:parent_symbol' not in env.temp_data:
+ root = env.domaindata['c']['root_symbol']
+ env.temp_data['c:parent_symbol'] = root
+ env.ref_context['c:parent_key'] = root.get_lookup_key()
+ self.parentKey = env.ref_context['c:parent_key']
+ else:
+ assert parentKey is not None
+ self.parentKey = parentKey
+
+ def copy(self) -> AliasNode:
+ return self.__class__(self.sig, self.aliasOptions, self.document,
+ env=None, parentKey=self.parentKey)
+
+
+class AliasTransform(SphinxTransform):
+ default_priority = ReferencesResolver.default_priority - 1
+
+ def _render_symbol(self, s: Symbol, maxdepth: int, skipThis: bool,
+ aliasOptions: dict, renderOptions: dict,
+ document: Any) -> list[Node]:
+ if maxdepth == 0:
+ recurse = True
+ elif maxdepth == 1:
+ recurse = False
+ else:
+ maxdepth -= 1
+ recurse = True
+
+ nodes: list[Node] = []
+ if not skipThis:
+ signode = addnodes.desc_signature('', '')
+ nodes.append(signode)
+ s.declaration.describe_signature(signode, 'markName', self.env, renderOptions)
+
+ if recurse:
+ if skipThis:
+ childContainer: list[Node] | addnodes.desc = nodes
+ else:
+ content = addnodes.desc_content()
+ desc = addnodes.desc()
+ content.append(desc)
+ desc.document = document
+ desc['domain'] = 'c'
+ # 'desctype' is a backwards compatible attribute
+ desc['objtype'] = desc['desctype'] = 'alias'
+ desc['no-index'] = True
+ childContainer = desc
+
+ for sChild in s.children:
+ if sChild.declaration is None:
+ continue
+ childNodes = self._render_symbol(
+ sChild, maxdepth=maxdepth, skipThis=False,
+ aliasOptions=aliasOptions, renderOptions=renderOptions,
+ document=document)
+ childContainer.extend(childNodes)
+
+ if not skipThis and len(desc.children) != 0:
+ nodes.append(content)
+ return nodes
+
+ def apply(self, **kwargs: Any) -> None:
+ for node in self.document.findall(AliasNode):
+ sig = node.sig
+ parentKey = node.parentKey
+ try:
+ parser = DefinitionParser(sig, location=node,
+ config=self.env.config)
+ name = parser.parse_xref_object()
+ except DefinitionError as e:
+ logger.warning(e, location=node)
+ name = None
+
+ if name is None:
+ # could not be parsed, so stop here
+ signode = addnodes.desc_signature(sig, '')
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+ node.replace_self(signode)
+ continue
+
+ rootSymbol: Symbol = self.env.domains['c'].data['root_symbol']
+ parentSymbol: Symbol | None = rootSymbol.direct_lookup(parentKey)
+ if not parentSymbol:
+ logger.debug("Target: %s", sig)
+ logger.debug("ParentKey: %s", parentKey)
+ logger.debug(rootSymbol.dump(1))
+ assert parentSymbol # should be there
+
+ s = parentSymbol.find_declaration(
+ name, 'any',
+ matchSelf=True, recurseInAnon=True)
+ if s is None:
+ signode = addnodes.desc_signature(sig, '')
+ node.append(signode)
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+
+ logger.warning("Could not find C declaration for alias '%s'." % name,
+ location=node)
+ node.replace_self(signode)
+ continue
+ # Declarations like .. var:: int Missing::var
+ # may introduce symbols without declarations.
+ # But if we skip the root then it is ok to start recursion from it.
+ if not node.aliasOptions['noroot'] and s.declaration is None:
+ signode = addnodes.desc_signature(sig, '')
+ node.append(signode)
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+
+ logger.warning(
+ "Can not render C declaration for alias '%s'. No such declaration." % name,
+ location=node)
+ node.replace_self(signode)
+ continue
+
+ nodes = self._render_symbol(s, maxdepth=node.aliasOptions['maxdepth'],
+ skipThis=node.aliasOptions['noroot'],
+ aliasOptions=node.aliasOptions,
+ renderOptions={}, document=node.document)
+ node.replace_self(nodes)
+
+
+class CAliasObject(ObjectDescription):
+ option_spec: ClassVar[OptionSpec] = {
+ 'maxdepth': directives.nonnegative_int,
+ 'noroot': directives.flag,
+ }
+
+ def run(self) -> list[Node]:
+ """
+ On purpose this doesn't call the ObjectDescription version, but is based on it.
+ Each alias signature may expand into multiple real signatures if 'noroot'.
+ The code is therefore based on the ObjectDescription version.
+ """
+ if ':' in self.name:
+ self.domain, self.objtype = self.name.split(':', 1)
+ else:
+ self.domain, self.objtype = '', self.name
+
+ node = addnodes.desc()
+ node.document = self.state.document
+ node['domain'] = self.domain
+ # 'desctype' is a backwards compatible attribute
+ node['objtype'] = node['desctype'] = self.objtype
+ node['no-index'] = True
+
+ self.names: list[str] = []
+ aliasOptions = {
+ 'maxdepth': self.options.get('maxdepth', 1),
+ 'noroot': 'noroot' in self.options,
+ }
+ if aliasOptions['noroot'] and aliasOptions['maxdepth'] == 1:
+ logger.warning("Error in C alias declaration."
+ " Requested 'noroot' but 'maxdepth' 1."
+ " When skipping the root declaration,"
+ " need 'maxdepth' 0 for infinite or at least 2.",
+ location=self.get_location())
+ for sig in self.get_signatures():
+ node.append(AliasNode(sig, aliasOptions, self.state.document, env=self.env))
+ return [node]
+
+
+class CXRefRole(XRefRole):
+ def process_link(self, env: BuildEnvironment, refnode: Element,
+ has_explicit_title: bool, title: str, target: str) -> tuple[str, str]:
+ refnode.attributes.update(env.ref_context)
+
+ if not has_explicit_title:
+ # major hax: replace anon names via simple string manipulation.
+ # Can this actually fail?
+ title = anon_identifier_re.sub("[anonymous]", str(title))
+
+ if not has_explicit_title:
+ target = target.lstrip('~') # only has a meaning for the title
+ # if the first character is a tilde, don't display the module/class
+ # parts of the contents
+ if title[0:1] == '~':
+ title = title[1:]
+ dot = title.rfind('.')
+ if dot != -1:
+ title = title[dot + 1:]
+ return title, target
+
+
+class CExprRole(SphinxRole):
+ def __init__(self, asCode: bool) -> None:
+ super().__init__()
+ if asCode:
+ # render the expression as inline code
+ self.class_type = 'c-expr'
+ else:
+ # render the expression as inline text
+ self.class_type = 'c-texpr'
+
+ def run(self) -> tuple[list[Node], list[system_message]]:
+ text = self.text.replace('\n', ' ')
+ parser = DefinitionParser(text, location=self.get_location(),
+ config=self.env.config)
+ # attempt to mimic XRefRole classes, except that...
+ try:
+ ast = parser.parse_expression()
+ except DefinitionError as ex:
+ logger.warning('Unparseable C expression: %r\n%s', text, ex,
+ location=self.get_location())
+ # see below
+ return [addnodes.desc_inline('c', text, text, classes=[self.class_type])], []
+ parentSymbol = self.env.temp_data.get('c:parent_symbol', None)
+ if parentSymbol is None:
+ parentSymbol = self.env.domaindata['c']['root_symbol']
+ # ...most if not all of these classes should really apply to the individual references,
+ # not the container node
+ signode = addnodes.desc_inline('c', classes=[self.class_type])
+ ast.describe_signature(signode, 'markType', self.env, parentSymbol)
+ return [signode], []
+
+
+class CDomain(Domain):
+ """C language domain."""
+
+ name = 'c'
+ label = 'C'
+ object_types = {
+ # 'identifier' is the one used for xrefs generated in signatures, not in roles
+ 'member': ObjType(_('member'), 'var', 'member', 'data', 'identifier'),
+ 'var': ObjType(_('variable'), 'var', 'member', 'data', 'identifier'),
+ 'function': ObjType(_('function'), 'func', 'identifier', 'type'),
+ 'macro': ObjType(_('macro'), 'macro', 'identifier'),
+ 'struct': ObjType(_('struct'), 'struct', 'identifier', 'type'),
+ 'union': ObjType(_('union'), 'union', 'identifier', 'type'),
+ 'enum': ObjType(_('enum'), 'enum', 'identifier', 'type'),
+ 'enumerator': ObjType(_('enumerator'), 'enumerator', 'identifier'),
+ 'type': ObjType(_('type'), 'identifier', 'type'),
+ # generated object types
+ 'functionParam': ObjType(_('function parameter'), 'identifier', 'var', 'member', 'data'), # NoQA: E501
+ }
+
+ directives = {
+ 'member': CMemberObject,
+ 'var': CMemberObject,
+ 'function': CFunctionObject,
+ 'macro': CMacroObject,
+ 'struct': CStructObject,
+ 'union': CUnionObject,
+ 'enum': CEnumObject,
+ 'enumerator': CEnumeratorObject,
+ 'type': CTypeObject,
+ # scope control
+ 'namespace': CNamespaceObject,
+ 'namespace-push': CNamespacePushObject,
+ 'namespace-pop': CNamespacePopObject,
+ # other
+ 'alias': CAliasObject,
+ }
+ roles = {
+ 'member': CXRefRole(),
+ 'data': CXRefRole(),
+ 'var': CXRefRole(),
+ 'func': CXRefRole(fix_parens=True),
+ 'macro': CXRefRole(),
+ 'struct': CXRefRole(),
+ 'union': CXRefRole(),
+ 'enum': CXRefRole(),
+ 'enumerator': CXRefRole(),
+ 'type': CXRefRole(),
+ 'expr': CExprRole(asCode=True),
+ 'texpr': CExprRole(asCode=False),
+ }
+ initial_data: dict[str, Symbol | dict[str, tuple[str, str, str]]] = {
+ 'root_symbol': Symbol(None, None, None, None, None),
+ 'objects': {}, # fullname -> docname, node_id, objtype
+ }
+
+ def clear_doc(self, docname: str) -> None:
+ if Symbol.debug_show_tree:
+ logger.debug("clear_doc: %s", docname)
+ logger.debug("\tbefore:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tbefore end")
+
+ rootSymbol = self.data['root_symbol']
+ rootSymbol.clear_doc(docname)
+
+ if Symbol.debug_show_tree:
+ logger.debug("\tafter:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tafter end")
+ logger.debug("clear_doc end: %s", docname)
+
+ def process_doc(self, env: BuildEnvironment, docname: str,
+ document: nodes.document) -> None:
+ if Symbol.debug_show_tree:
+ logger.debug("process_doc: %s", docname)
+ logger.debug(self.data['root_symbol'].dump(0))
+ logger.debug("process_doc end: %s", docname)
+
+ def process_field_xref(self, pnode: pending_xref) -> None:
+ pnode.attributes.update(self.env.ref_context)
+
+ def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
+ if Symbol.debug_show_tree:
+ logger.debug("merge_domaindata:")
+ logger.debug("\tself:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tself end")
+ logger.debug("\tother:")
+ logger.debug(otherdata['root_symbol'].dump(1))
+ logger.debug("\tother end")
+ logger.debug("merge_domaindata end")
+
+ self.data['root_symbol'].merge_with(otherdata['root_symbol'],
+ docnames, self.env)
+ ourObjects = self.data['objects']
+ for fullname, (fn, id_, objtype) in otherdata['objects'].items():
+ if fn in docnames:
+ if fullname not in ourObjects:
+ ourObjects[fullname] = (fn, id_, objtype)
+ # no need to warn on duplicates, the symbol merge already does that
+
+ def _resolve_xref_inner(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ typ: str, target: str, node: pending_xref,
+ contnode: Element) -> tuple[Element | None, str | None]:
+ parser = DefinitionParser(target, location=node, config=env.config)
+ try:
+ name = parser.parse_xref_object()
+ except DefinitionError as e:
+ logger.warning('Unparseable C cross-reference: %r\n%s', target, e,
+ location=node)
+ return None, None
+ parentKey: LookupKey = node.get("c:parent_key", None)
+ rootSymbol = self.data['root_symbol']
+ if parentKey:
+ parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
+ if not parentSymbol:
+ logger.debug("Target: %s", target)
+ logger.debug("ParentKey: %s", parentKey)
+ logger.debug(rootSymbol.dump(1))
+ assert parentSymbol # should be there
+ else:
+ parentSymbol = rootSymbol
+ s = parentSymbol.find_declaration(name, typ,
+ matchSelf=True, recurseInAnon=True)
+ if s is None or s.declaration is None:
+ return None, None
+
+ # TODO: check role type vs. object type
+
+ declaration = s.declaration
+ displayName = name.get_display_string()
+ docname = s.docname
+ assert docname
+
+ return make_refnode(builder, fromdocname, docname,
+ declaration.get_newest_id(), contnode, displayName,
+ ), declaration.objectType
+
+ def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ typ: str, target: str, node: pending_xref,
+ contnode: Element) -> Element | None:
+ return self._resolve_xref_inner(env, fromdocname, builder, typ,
+ target, node, contnode)[0]
+
+ def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ target: str, node: pending_xref, contnode: Element,
+ ) -> list[tuple[str, Element]]:
+ with logging.suppress_logging():
+ retnode, objtype = self._resolve_xref_inner(env, fromdocname, builder,
+ 'any', target, node, contnode)
+ if retnode:
+ return [('c:' + self.role_for_objtype(objtype), retnode)]
+ return []
+
+ def get_objects(self) -> Iterator[tuple[str, str, str, str, str, int]]:
+ rootSymbol = self.data['root_symbol']
+ for symbol in rootSymbol.get_all_symbols():
+ if symbol.declaration is None:
+ continue
+ assert symbol.docname
+ fullNestedName = symbol.get_full_nested_name()
+ name = str(fullNestedName).lstrip('.')
+ dispname = fullNestedName.get_display_string().lstrip('.')
+ objectType = symbol.declaration.objectType
+ docname = symbol.docname
+ newestId = symbol.declaration.get_newest_id()
+ yield (name, dispname, objectType, docname, newestId, 1)
+
+
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.add_domain(CDomain)
+ app.add_config_value("c_id_attributes", [], 'env')
+ app.add_config_value("c_paren_attributes", [], 'env')
+ app.add_config_value("c_extra_keywords", _macroKeywords, 'env')
+ app.add_config_value("c_maximum_signature_line_length", None, 'env', types={int, None})
+ app.add_post_transform(AliasTransform)
+
+ return {
+ 'version': 'builtin',
+ 'env_version': 3,
+ 'parallel_read_safe': True,
+ 'parallel_write_safe': True,
+ }
diff --git a/sphinx/domains/c/_ast.py b/sphinx/domains/c/_ast.py
new file mode 100644
index 0000000..3a8e2a2
--- /dev/null
+++ b/sphinx/domains/c/_ast.py
@@ -0,0 +1,1421 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any, Union, cast
+
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.domains.c._ids import _id_prefix, _max_id
+from sphinx.util.cfamily import (
+ ASTAttributeList,
+ ASTBaseBase,
+ ASTBaseParenExprList,
+ StringifyTransform,
+ UnsupportedMultiCharacterCharLiteral,
+ verify_description_mode,
+)
+
+if TYPE_CHECKING:
+
+ from docutils.nodes import Element, Node, TextElement
+
+ from sphinx.domains.c._symbol import Symbol
+ from sphinx.environment import BuildEnvironment
+
+DeclarationType = Union[
+ "ASTStruct", "ASTUnion", "ASTEnum", "ASTEnumerator",
+ "ASTType", "ASTTypeWithInit", "ASTMacro",
+]
+
+
+class ASTBase(ASTBaseBase):
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ raise NotImplementedError(repr(self))
+
+
+# Names
+################################################################################
+
+class ASTIdentifier(ASTBaseBase):
+ def __init__(self, identifier: str) -> None:
+ assert identifier is not None
+ assert len(identifier) != 0
+ self.identifier = identifier
+
+ # ASTBaseBase already implements this method,
+ # but specialising it here improves performance
+ def __eq__(self, other: object) -> bool:
+ if type(other) is not ASTIdentifier:
+ return NotImplemented
+ return self.identifier == other.identifier
+
+ def is_anon(self) -> bool:
+ return self.identifier[0] == '@'
+
+ # and this is where we finally make a difference between __str__ and the display string
+
+ def __str__(self) -> str:
+ return self.identifier
+
+ def get_display_string(self) -> str:
+ return "[anonymous]" if self.is_anon() else self.identifier
+
+ def describe_signature(self, signode: TextElement, mode: str, env: BuildEnvironment,
+ prefix: str, symbol: Symbol) -> None:
+ # note: slightly different signature of describe_signature due to the prefix
+ verify_description_mode(mode)
+ if self.is_anon():
+ node = addnodes.desc_sig_name(text="[anonymous]")
+ else:
+ node = addnodes.desc_sig_name(self.identifier, self.identifier)
+ if mode == 'markType':
+ targetText = prefix + self.identifier
+ pnode = addnodes.pending_xref('', refdomain='c',
+ reftype='identifier',
+ reftarget=targetText, modname=None,
+ classname=None)
+ pnode['c:parent_key'] = symbol.get_lookup_key()
+ pnode += node
+ signode += pnode
+ elif mode == 'lastIsName':
+ nameNode = addnodes.desc_name()
+ nameNode += node
+ signode += nameNode
+ elif mode == 'noneIsName':
+ signode += node
+ else:
+ raise Exception('Unknown description mode: %s' % mode)
+
+
+class ASTNestedName(ASTBase):
+ def __init__(self, names: list[ASTIdentifier], rooted: bool) -> None:
+ assert len(names) > 0
+ self.names = names
+ self.rooted = rooted
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self
+
+ def get_id(self, version: int) -> str:
+ return '.'.join(str(n) for n in self.names)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = '.'.join(transform(n) for n in self.names)
+ if self.rooted:
+ return '.' + res
+ else:
+ return res
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ # just print the name part, with template args, not template params
+ if mode == 'noneIsName':
+ if self.rooted:
+ unreachable = "Can this happen?"
+ raise AssertionError(unreachable) # TODO
+ signode += nodes.Text('.')
+ for i in range(len(self.names)):
+ if i != 0:
+ unreachable = "Can this happen?"
+ raise AssertionError(unreachable) # TODO
+ signode += nodes.Text('.')
+ n = self.names[i]
+ n.describe_signature(signode, mode, env, '', symbol)
+ elif mode == 'param':
+ assert not self.rooted, str(self)
+ assert len(self.names) == 1
+ self.names[0].describe_signature(signode, 'noneIsName', env, '', symbol)
+ elif mode in ('markType', 'lastIsName', 'markName'):
+ # Each element should be a pending xref targeting the complete
+ # prefix.
+ prefix = ''
+ first = True
+ names = self.names[:-1] if mode == 'lastIsName' else self.names
+ # If lastIsName, then wrap all of the prefix in a desc_addname,
+ # else append directly to signode.
+ # TODO: also for C?
+ # NOTE: Breathe previously relied on the prefix being in the desc_addname node,
+ # so it can remove it in inner declarations.
+ dest = signode
+ if mode == 'lastIsName':
+ dest = addnodes.desc_addname()
+ if self.rooted:
+ prefix += '.'
+ if mode == 'lastIsName' and len(names) == 0:
+ signode += addnodes.desc_sig_punctuation('.', '.')
+ else:
+ dest += addnodes.desc_sig_punctuation('.', '.')
+ for i in range(len(names)):
+ ident = names[i]
+ if not first:
+ dest += addnodes.desc_sig_punctuation('.', '.')
+ prefix += '.'
+ first = False
+ txt_ident = str(ident)
+ if txt_ident != '':
+ ident.describe_signature(dest, 'markType', env, prefix, symbol)
+ prefix += txt_ident
+ if mode == 'lastIsName':
+ if len(self.names) > 1:
+ dest += addnodes.desc_sig_punctuation('.', '.')
+ signode += dest
+ self.names[-1].describe_signature(signode, mode, env, '', symbol)
+ else:
+ raise Exception('Unknown description mode: %s' % mode)
+
+
+################################################################################
+# Expressions
+################################################################################
+
+class ASTExpression(ASTBase):
+ pass
+
+
+# Primary expressions
+################################################################################
+
+class ASTLiteral(ASTExpression):
+ pass
+
+
+class ASTBooleanLiteral(ASTLiteral):
+ def __init__(self, value: bool) -> None:
+ self.value = value
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.value:
+ return 'true'
+ else:
+ return 'false'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ txt = str(self)
+ signode += addnodes.desc_sig_keyword(txt, txt)
+
+
+class ASTNumberLiteral(ASTLiteral):
+ def __init__(self, data: str) -> None:
+ self.data = data
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return self.data
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ txt = str(self)
+ signode += addnodes.desc_sig_literal_number(txt, txt)
+
+
+class ASTCharLiteral(ASTLiteral):
+ def __init__(self, prefix: str, data: str) -> None:
+ self.prefix = prefix # may be None when no prefix
+ self.data = data
+ decoded = data.encode().decode('unicode-escape')
+ if len(decoded) == 1:
+ self.value = ord(decoded)
+ else:
+ raise UnsupportedMultiCharacterCharLiteral(decoded)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.prefix is None:
+ return "'" + self.data + "'"
+ else:
+ return self.prefix + "'" + self.data + "'"
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ txt = str(self)
+ signode += addnodes.desc_sig_literal_char(txt, txt)
+
+
+class ASTStringLiteral(ASTLiteral):
+ def __init__(self, data: str) -> None:
+ self.data = data
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return self.data
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ txt = str(self)
+ signode += addnodes.desc_sig_literal_string(txt, txt)
+
+
+class ASTIdExpression(ASTExpression):
+ def __init__(self, name: ASTNestedName) -> None:
+ # note: this class is basically to cast a nested name as an expression
+ self.name = name
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.name)
+
+ def get_id(self, version: int) -> str:
+ return self.name.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.name.describe_signature(signode, mode, env, symbol)
+
+
+class ASTParenExpr(ASTExpression):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '(' + transform(self.expr) + ')'
+
+ def get_id(self, version: int) -> str:
+ return self.expr.get_id(version) # type: ignore[attr-defined]
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+# Postfix expressions
+################################################################################
+
+class ASTPostfixOp(ASTBase):
+ pass
+
+
+class ASTPostfixCallExpr(ASTPostfixOp):
+ def __init__(self, lst: ASTParenExprList | ASTBracedInitList) -> None:
+ self.lst = lst
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.lst)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.lst.describe_signature(signode, mode, env, symbol)
+
+
+class ASTPostfixArray(ASTPostfixOp):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '[' + transform(self.expr) + ']'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('[', '[')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(']', ']')
+
+
+class ASTPostfixInc(ASTPostfixOp):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '++'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_operator('++', '++')
+
+
+class ASTPostfixDec(ASTPostfixOp):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '--'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_operator('--', '--')
+
+
+class ASTPostfixMemberOfPointer(ASTPostfixOp):
+ def __init__(self, name: ASTNestedName) -> None:
+ self.name = name
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '->' + transform(self.name)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_operator('->', '->')
+ self.name.describe_signature(signode, 'noneIsName', env, symbol)
+
+
+class ASTPostfixExpr(ASTExpression):
+ def __init__(self, prefix: ASTExpression, postFixes: list[ASTPostfixOp]) -> None:
+ self.prefix = prefix
+ self.postFixes = postFixes
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return ''.join([transform(self.prefix), *(transform(p) for p in self.postFixes)])
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.prefix.describe_signature(signode, mode, env, symbol)
+ for p in self.postFixes:
+ p.describe_signature(signode, mode, env, symbol)
+
+
+# Unary expressions
+################################################################################
+
+class ASTUnaryOpExpr(ASTExpression):
+ def __init__(self, op: str, expr: ASTExpression) -> None:
+ self.op = op
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.op[0] in 'cn':
+ return self.op + " " + transform(self.expr)
+ else:
+ return self.op + transform(self.expr)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.op[0] in 'cn':
+ signode += addnodes.desc_sig_keyword(self.op, self.op)
+ signode += addnodes.desc_sig_space()
+ else:
+ signode += addnodes.desc_sig_operator(self.op, self.op)
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTSizeofType(ASTExpression):
+ def __init__(self, typ: ASTType) -> None:
+ self.typ = typ
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "sizeof(" + transform(self.typ) + ")"
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTSizeofExpr(ASTExpression):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "sizeof " + transform(self.expr)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
+ signode += addnodes.desc_sig_space()
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTAlignofExpr(ASTExpression):
+ def __init__(self, typ: ASTType) -> None:
+ self.typ = typ
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "alignof(" + transform(self.typ) + ")"
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('alignof', 'alignof')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+# Other expressions
+################################################################################
+
+class ASTCastExpr(ASTExpression):
+ def __init__(self, typ: ASTType, expr: ASTExpression) -> None:
+ self.typ = typ
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['(']
+ res.append(transform(self.typ))
+ res.append(')')
+ res.append(transform(self.expr))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTBinOpExpr(ASTBase):
+ def __init__(self, exprs: list[ASTExpression], ops: list[str]) -> None:
+ assert len(exprs) > 0
+ assert len(exprs) == len(ops) + 1
+ self.exprs = exprs
+ self.ops = ops
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.exprs[0]))
+ for i in range(1, len(self.exprs)):
+ res.append(' ')
+ res.append(self.ops[i - 1])
+ res.append(' ')
+ res.append(transform(self.exprs[i]))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.exprs[0].describe_signature(signode, mode, env, symbol)
+ for i in range(1, len(self.exprs)):
+ signode += addnodes.desc_sig_space()
+ op = self.ops[i - 1]
+ if ord(op[0]) >= ord('a') and ord(op[0]) <= ord('z'):
+ signode += addnodes.desc_sig_keyword(op, op)
+ else:
+ signode += addnodes.desc_sig_operator(op, op)
+ signode += addnodes.desc_sig_space()
+ self.exprs[i].describe_signature(signode, mode, env, symbol)
+
+
+class ASTAssignmentExpr(ASTExpression):
+ def __init__(self, exprs: list[ASTExpression], ops: list[str]) -> None:
+ assert len(exprs) > 0
+ assert len(exprs) == len(ops) + 1
+ self.exprs = exprs
+ self.ops = ops
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.exprs[0]))
+ for i in range(1, len(self.exprs)):
+ res.append(' ')
+ res.append(self.ops[i - 1])
+ res.append(' ')
+ res.append(transform(self.exprs[i]))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.exprs[0].describe_signature(signode, mode, env, symbol)
+ for i in range(1, len(self.exprs)):
+ signode += addnodes.desc_sig_space()
+ op = self.ops[i - 1]
+ if ord(op[0]) >= ord('a') and ord(op[0]) <= ord('z'):
+ signode += addnodes.desc_sig_keyword(op, op)
+ else:
+ signode += addnodes.desc_sig_operator(op, op)
+ signode += addnodes.desc_sig_space()
+ self.exprs[i].describe_signature(signode, mode, env, symbol)
+
+
+class ASTFallbackExpr(ASTExpression):
+ def __init__(self, expr: str) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return self.expr
+
+ def get_id(self, version: int) -> str:
+ return str(self.expr)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += nodes.literal(self.expr, self.expr)
+
+
+################################################################################
+# Types
+################################################################################
+
+class ASTTrailingTypeSpec(ASTBase):
+ pass
+
+
+class ASTTrailingTypeSpecFundamental(ASTTrailingTypeSpec):
+ def __init__(self, names: list[str]) -> None:
+ assert len(names) != 0
+ self.names = names
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return ' '.join(self.names)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ first = True
+ for n in self.names:
+ if not first:
+ signode += addnodes.desc_sig_space()
+ else:
+ first = False
+ signode += addnodes.desc_sig_keyword_type(n, n)
+
+
+class ASTTrailingTypeSpecName(ASTTrailingTypeSpec):
+ def __init__(self, prefix: str, nestedName: ASTNestedName) -> None:
+ self.prefix = prefix
+ self.nestedName = nestedName
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.nestedName
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.prefix:
+ res.append(self.prefix)
+ res.append(' ')
+ res.append(transform(self.nestedName))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.prefix:
+ signode += addnodes.desc_sig_keyword(self.prefix, self.prefix)
+ signode += addnodes.desc_sig_space()
+ self.nestedName.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTFunctionParameter(ASTBase):
+ def __init__(self, arg: ASTTypeWithInit | None, ellipsis: bool = False) -> None:
+ self.arg = arg
+ self.ellipsis = ellipsis
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=False)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.ellipsis:
+ return '...'
+ else:
+ return transform(self.arg)
+
+ def describe_signature(self, signode: Any, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.ellipsis:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ else:
+ self.arg.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTParameters(ASTBase):
+ def __init__(self, args: list[ASTFunctionParameter], attrs: ASTAttributeList) -> None:
+ self.args = args
+ self.attrs = attrs
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.args
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append('(')
+ first = True
+ for a in self.args:
+ if not first:
+ res.append(', ')
+ first = False
+ res.append(str(a))
+ res.append(')')
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.attrs))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ multi_line_parameter_list = False
+ test_node: Element = signode
+ while test_node.parent:
+ if not isinstance(test_node, addnodes.desc_signature):
+ test_node = test_node.parent
+ continue
+ multi_line_parameter_list = test_node.get('multi_line_parameter_list', False)
+ break
+
+ # only use the desc_parameterlist for the outer list, not for inner lists
+ if mode == 'lastIsName':
+ paramlist = addnodes.desc_parameterlist()
+ paramlist['multi_line_parameter_list'] = multi_line_parameter_list
+ for arg in self.args:
+ param = addnodes.desc_parameter('', '', noemph=True)
+ arg.describe_signature(param, 'param', env, symbol=symbol)
+ paramlist += param
+ signode += paramlist
+ else:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ first = True
+ for arg in self.args:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ first = False
+ arg.describe_signature(signode, 'markType', env, symbol=symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.attrs.describe_signature(signode)
+
+
+class ASTDeclSpecsSimple(ASTBaseBase):
+ def __init__(self, storage: str, threadLocal: str, inline: bool,
+ restrict: bool, volatile: bool, const: bool, attrs: ASTAttributeList) -> None:
+ self.storage = storage
+ self.threadLocal = threadLocal
+ self.inline = inline
+ self.restrict = restrict
+ self.volatile = volatile
+ self.const = const
+ self.attrs = attrs
+
+ def mergeWith(self, other: ASTDeclSpecsSimple) -> ASTDeclSpecsSimple:
+ if not other:
+ return self
+ return ASTDeclSpecsSimple(self.storage or other.storage,
+ self.threadLocal or other.threadLocal,
+ self.inline or other.inline,
+ self.volatile or other.volatile,
+ self.const or other.const,
+ self.restrict or other.restrict,
+ self.attrs + other.attrs)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res: list[str] = []
+ if len(self.attrs) != 0:
+ res.append(transform(self.attrs))
+ if self.storage:
+ res.append(self.storage)
+ if self.threadLocal:
+ res.append(self.threadLocal)
+ if self.inline:
+ res.append('inline')
+ if self.restrict:
+ res.append('restrict')
+ if self.volatile:
+ res.append('volatile')
+ if self.const:
+ res.append('const')
+ return ' '.join(res)
+
+ def describe_signature(self, modifiers: list[Node]) -> None:
+ def _add(modifiers: list[Node], text: str) -> None:
+ if len(modifiers) != 0:
+ modifiers.append(addnodes.desc_sig_space())
+ modifiers.append(addnodes.desc_sig_keyword(text, text))
+
+ if len(modifiers) != 0 and len(self.attrs) != 0:
+ modifiers.append(addnodes.desc_sig_space())
+ tempNode = nodes.TextElement()
+ self.attrs.describe_signature(tempNode)
+ modifiers.extend(tempNode.children)
+ if self.storage:
+ _add(modifiers, self.storage)
+ if self.threadLocal:
+ _add(modifiers, self.threadLocal)
+ if self.inline:
+ _add(modifiers, 'inline')
+ if self.restrict:
+ _add(modifiers, 'restrict')
+ if self.volatile:
+ _add(modifiers, 'volatile')
+ if self.const:
+ _add(modifiers, 'const')
+
+
+class ASTDeclSpecs(ASTBase):
+ def __init__(self, outer: str,
+ leftSpecs: ASTDeclSpecsSimple,
+ rightSpecs: ASTDeclSpecsSimple,
+ trailing: ASTTrailingTypeSpec) -> None:
+ # leftSpecs and rightSpecs are used for output
+ # allSpecs are used for id generation TODO: remove?
+ self.outer = outer
+ self.leftSpecs = leftSpecs
+ self.rightSpecs = rightSpecs
+ self.allSpecs = self.leftSpecs.mergeWith(self.rightSpecs)
+ self.trailingTypeSpec = trailing
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res: list[str] = []
+ l = transform(self.leftSpecs)
+ if len(l) > 0:
+ res.append(l)
+ if self.trailingTypeSpec:
+ if len(res) > 0:
+ res.append(" ")
+ res.append(transform(self.trailingTypeSpec))
+ r = str(self.rightSpecs)
+ if len(r) > 0:
+ if len(res) > 0:
+ res.append(" ")
+ res.append(r)
+ return "".join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ modifiers: list[Node] = []
+
+ self.leftSpecs.describe_signature(modifiers)
+
+ for m in modifiers:
+ signode += m
+ if self.trailingTypeSpec:
+ if len(modifiers) > 0:
+ signode += addnodes.desc_sig_space()
+ self.trailingTypeSpec.describe_signature(signode, mode, env,
+ symbol=symbol)
+ modifiers = []
+ self.rightSpecs.describe_signature(modifiers)
+ if len(modifiers) > 0:
+ signode += addnodes.desc_sig_space()
+ for m in modifiers:
+ signode += m
+
+
+# Declarator
+################################################################################
+
+class ASTArray(ASTBase):
+ def __init__(self, static: bool, const: bool, volatile: bool, restrict: bool,
+ vla: bool, size: ASTExpression) -> None:
+ self.static = static
+ self.const = const
+ self.volatile = volatile
+ self.restrict = restrict
+ self.vla = vla
+ self.size = size
+ if vla:
+ assert size is None
+ if size is not None:
+ assert not vla
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ el = []
+ if self.static:
+ el.append('static')
+ if self.restrict:
+ el.append('restrict')
+ if self.volatile:
+ el.append('volatile')
+ if self.const:
+ el.append('const')
+ if self.vla:
+ return '[' + ' '.join(el) + '*]'
+ elif self.size:
+ el.append(transform(self.size))
+ return '[' + ' '.join(el) + ']'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('[', '[')
+ addSpace = False
+
+ def _add(signode: TextElement, text: str) -> bool:
+ if addSpace:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_keyword(text, text)
+ return True
+
+ if self.static:
+ addSpace = _add(signode, 'static')
+ if self.restrict:
+ addSpace = _add(signode, 'restrict')
+ if self.volatile:
+ addSpace = _add(signode, 'volatile')
+ if self.const:
+ addSpace = _add(signode, 'const')
+ if self.vla:
+ signode += addnodes.desc_sig_punctuation('*', '*')
+ elif self.size:
+ if addSpace:
+ signode += addnodes.desc_sig_space()
+ self.size.describe_signature(signode, 'markType', env, symbol)
+ signode += addnodes.desc_sig_punctuation(']', ']')
+
+
+class ASTDeclarator(ASTBase):
+ @property
+ def name(self) -> ASTNestedName:
+ raise NotImplementedError(repr(self))
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ raise NotImplementedError(repr(self))
+
+ def require_space_after_declSpecs(self) -> bool:
+ raise NotImplementedError(repr(self))
+
+
+class ASTDeclaratorNameParam(ASTDeclarator):
+ def __init__(self, declId: ASTNestedName,
+ arrayOps: list[ASTArray], param: ASTParameters) -> None:
+ self.declId = declId
+ self.arrayOps = arrayOps
+ self.param = param
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.declId
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.param.function_params
+
+ # ------------------------------------------------------------------------
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.declId is not None
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.declId:
+ res.append(transform(self.declId))
+ res.extend(transform(op) for op in self.arrayOps)
+ if self.param:
+ res.append(transform(self.param))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.declId:
+ self.declId.describe_signature(signode, mode, env, symbol)
+ for op in self.arrayOps:
+ op.describe_signature(signode, mode, env, symbol)
+ if self.param:
+ self.param.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorNameBitField(ASTDeclarator):
+ def __init__(self, declId: ASTNestedName, size: ASTExpression) -> None:
+ self.declId = declId
+ self.size = size
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.declId
+
+ # ------------------------------------------------------------------------
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.declId is not None
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.declId:
+ res.append(transform(self.declId))
+ res.append(" : ")
+ res.append(transform(self.size))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.declId:
+ self.declId.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation(':', ':')
+ signode += addnodes.desc_sig_space()
+ self.size.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorPtr(ASTDeclarator):
+ def __init__(self, next: ASTDeclarator, restrict: bool, volatile: bool, const: bool,
+ attrs: ASTAttributeList) -> None:
+ assert next
+ self.next = next
+ self.restrict = restrict
+ self.volatile = volatile
+ self.const = const
+ self.attrs = attrs
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.next.name
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.next.function_params
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.const or self.volatile or self.restrict or \
+ len(self.attrs) > 0 or \
+ self.next.require_space_after_declSpecs()
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['*']
+ res.append(transform(self.attrs))
+ if len(self.attrs) != 0 and (self.restrict or self.volatile or self.const):
+ res.append(' ')
+ if self.restrict:
+ res.append('restrict')
+ if self.volatile:
+ if self.restrict:
+ res.append(' ')
+ res.append('volatile')
+ if self.const:
+ if self.restrict or self.volatile:
+ res.append(' ')
+ res.append('const')
+ if self.const or self.volatile or self.restrict or len(self.attrs) > 0:
+ if self.next.require_space_after_declSpecs():
+ res.append(' ')
+ res.append(transform(self.next))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('*', '*')
+ self.attrs.describe_signature(signode)
+ if len(self.attrs) != 0 and (self.restrict or self.volatile or self.const):
+ signode += addnodes.desc_sig_space()
+
+ def _add_anno(signode: TextElement, text: str) -> None:
+ signode += addnodes.desc_sig_keyword(text, text)
+
+ if self.restrict:
+ _add_anno(signode, 'restrict')
+ if self.volatile:
+ if self.restrict:
+ signode += addnodes.desc_sig_space()
+ _add_anno(signode, 'volatile')
+ if self.const:
+ if self.restrict or self.volatile:
+ signode += addnodes.desc_sig_space()
+ _add_anno(signode, 'const')
+ if self.const or self.volatile or self.restrict or len(self.attrs) > 0:
+ if self.next.require_space_after_declSpecs():
+ signode += addnodes.desc_sig_space()
+ self.next.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorParen(ASTDeclarator):
+ def __init__(self, inner: ASTDeclarator, next: ASTDeclarator) -> None:
+ assert inner
+ assert next
+ self.inner = inner
+ self.next = next
+ # TODO: we assume the name and params are in inner
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.inner.name
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.inner.function_params
+
+ def require_space_after_declSpecs(self) -> bool:
+ return True
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['(']
+ res.append(transform(self.inner))
+ res.append(')')
+ res.append(transform(self.next))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.inner.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+ self.next.describe_signature(signode, "noneIsName", env, symbol)
+
+
+# Initializer
+################################################################################
+
+class ASTParenExprList(ASTBaseParenExprList):
+ def __init__(self, exprs: list[ASTExpression]) -> None:
+ self.exprs = exprs
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ exprs = [transform(e) for e in self.exprs]
+ return '(%s)' % ', '.join(exprs)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ first = True
+ for e in self.exprs:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ else:
+ first = False
+ e.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTBracedInitList(ASTBase):
+ def __init__(self, exprs: list[ASTExpression], trailingComma: bool) -> None:
+ self.exprs = exprs
+ self.trailingComma = trailingComma
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ exprs = ', '.join(transform(e) for e in self.exprs)
+ trailingComma = ',' if self.trailingComma else ''
+ return f'{{{exprs}{trailingComma}}}'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('{', '{')
+ first = True
+ for e in self.exprs:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ else:
+ first = False
+ e.describe_signature(signode, mode, env, symbol)
+ if self.trailingComma:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_punctuation('}', '}')
+
+
+class ASTInitializer(ASTBase):
+ def __init__(self, value: ASTBracedInitList | ASTExpression,
+ hasAssign: bool = True) -> None:
+ self.value = value
+ self.hasAssign = hasAssign
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ val = transform(self.value)
+ if self.hasAssign:
+ return ' = ' + val
+ else:
+ return val
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.hasAssign:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('=', '=')
+ signode += addnodes.desc_sig_space()
+ self.value.describe_signature(signode, 'markType', env, symbol)
+
+
+class ASTType(ASTBase):
+ def __init__(self, declSpecs: ASTDeclSpecs, decl: ASTDeclarator) -> None:
+ assert declSpecs
+ assert decl
+ self.declSpecs = declSpecs
+ self.decl = decl
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.decl.name
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.decl.function_params
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ declSpecs = transform(self.declSpecs)
+ res.append(declSpecs)
+ if self.decl.require_space_after_declSpecs() and len(declSpecs) > 0:
+ res.append(' ')
+ res.append(transform(self.decl))
+ return ''.join(res)
+
+ def get_type_declaration_prefix(self) -> str:
+ if self.declSpecs.trailingTypeSpec:
+ return 'typedef'
+ else:
+ return 'type'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.declSpecs.describe_signature(signode, 'markType', env, symbol)
+ if (self.decl.require_space_after_declSpecs() and
+ len(str(self.declSpecs)) > 0):
+ signode += addnodes.desc_sig_space()
+ # for parameters that don't really declare new names we get 'markType',
+ # this should not be propagated, but be 'noneIsName'.
+ if mode == 'markType':
+ mode = 'noneIsName'
+ self.decl.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTypeWithInit(ASTBase):
+ def __init__(self, type: ASTType, init: ASTInitializer) -> None:
+ self.type = type
+ self.init = init
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.type.name
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return self.type.get_id(version, objectType, symbol)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.type))
+ if self.init:
+ res.append(transform(self.init))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.type.describe_signature(signode, mode, env, symbol)
+ if self.init:
+ self.init.describe_signature(signode, mode, env, symbol)
+
+
+class ASTMacroParameter(ASTBase):
+ def __init__(self, arg: ASTNestedName | None, ellipsis: bool = False,
+ variadic: bool = False) -> None:
+ self.arg = arg
+ self.ellipsis = ellipsis
+ self.variadic = variadic
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.ellipsis:
+ return '...'
+ elif self.variadic:
+ return transform(self.arg) + '...'
+ else:
+ return transform(self.arg)
+
+ def describe_signature(self, signode: Any, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.ellipsis:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ elif self.variadic:
+ name = str(self)
+ signode += addnodes.desc_sig_name(name, name)
+ else:
+ self.arg.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTMacro(ASTBase):
+ def __init__(self, ident: ASTNestedName, args: list[ASTMacroParameter] | None) -> None:
+ self.ident = ident
+ self.args = args
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.ident
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.ident))
+ if self.args is not None:
+ res.append('(')
+ first = True
+ for arg in self.args:
+ if not first:
+ res.append(', ')
+ first = False
+ res.append(transform(arg))
+ res.append(')')
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.ident.describe_signature(signode, mode, env, symbol)
+ if self.args is None:
+ return
+ paramlist = addnodes.desc_parameterlist()
+ for arg in self.args:
+ param = addnodes.desc_parameter('', '', noemph=True)
+ arg.describe_signature(param, 'param', env, symbol=symbol)
+ paramlist += param
+ signode += paramlist
+
+
+class ASTStruct(ASTBase):
+ def __init__(self, name: ASTNestedName) -> None:
+ self.name = name
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.name)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTUnion(ASTBase):
+ def __init__(self, name: ASTNestedName) -> None:
+ self.name = name
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.name)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTEnum(ASTBase):
+ def __init__(self, name: ASTNestedName) -> None:
+ self.name = name
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.name)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTEnumerator(ASTBase):
+ def __init__(self, name: ASTNestedName, init: ASTInitializer | None,
+ attrs: ASTAttributeList) -> None:
+ self.name = name
+ self.init = init
+ self.attrs = attrs
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.name))
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.attrs))
+ if self.init:
+ res.append(transform(self.init))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.name.describe_signature(signode, mode, env, symbol)
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.attrs.describe_signature(signode)
+ if self.init:
+ self.init.describe_signature(signode, 'markType', env, symbol)
+
+
+class ASTDeclaration(ASTBaseBase):
+ def __init__(self, objectType: str, directiveType: str | None,
+ declaration: DeclarationType | ASTFunctionParameter,
+ semicolon: bool = False) -> None:
+ self.objectType = objectType
+ self.directiveType = directiveType
+ self.declaration = declaration
+ self.semicolon = semicolon
+
+ self.symbol: Symbol | None = None
+ # set by CObject._add_enumerator_to_parent
+ self.enumeratorScopedSymbol: Symbol | None = None
+
+ # the cache assumes that by the time get_newest_id is called, no
+ # further changes will be made to this object
+ self._newest_id_cache: str | None = None
+
+ def clone(self) -> ASTDeclaration:
+ return ASTDeclaration(self.objectType, self.directiveType,
+ self.declaration.clone(), self.semicolon)
+
+ @property
+ def name(self) -> ASTNestedName:
+ decl = cast(DeclarationType, self.declaration)
+ return decl.name
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter] | None:
+ if self.objectType != 'function':
+ return None
+ decl = cast(ASTType, self.declaration)
+ return decl.function_params
+
+ def get_id(self, version: int, prefixed: bool = True) -> str:
+ if self.objectType == 'enumerator' and self.enumeratorScopedSymbol:
+ return self.enumeratorScopedSymbol.declaration.get_id(version, prefixed)
+ id_ = self.declaration.get_id(version, self.objectType, self.symbol)
+ if prefixed:
+ return _id_prefix[version] + id_
+ else:
+ return id_
+
+ def get_newest_id(self) -> str:
+ if self._newest_id_cache is None:
+ self._newest_id_cache = self.get_id(_max_id, True)
+ return self._newest_id_cache
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = transform(self.declaration)
+ if self.semicolon:
+ res += ';'
+ return res
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, options: dict[str, bool]) -> None:
+ verify_description_mode(mode)
+ assert self.symbol
+ # The caller of the domain added a desc_signature node.
+ # Always enable multiline:
+ signode['is_multiline'] = True
+ # Put each line in a desc_signature_line node.
+ mainDeclNode = addnodes.desc_signature_line()
+ mainDeclNode.sphinx_line_type = 'declarator'
+ mainDeclNode['add_permalink'] = not self.symbol.isRedeclaration
+ signode += mainDeclNode
+
+ if self.objectType in {'member', 'function', 'macro'}:
+ pass
+ elif self.objectType == 'struct':
+ mainDeclNode += addnodes.desc_sig_keyword('struct', 'struct')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'union':
+ mainDeclNode += addnodes.desc_sig_keyword('union', 'union')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'enum':
+ mainDeclNode += addnodes.desc_sig_keyword('enum', 'enum')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'enumerator':
+ mainDeclNode += addnodes.desc_sig_keyword('enumerator', 'enumerator')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'type':
+ decl = cast(ASTType, self.declaration)
+ prefix = decl.get_type_declaration_prefix()
+ mainDeclNode += addnodes.desc_sig_keyword(prefix, prefix)
+ mainDeclNode += addnodes.desc_sig_space()
+ else:
+ raise AssertionError
+ self.declaration.describe_signature(mainDeclNode, mode, env, self.symbol)
+ if self.semicolon:
+ mainDeclNode += addnodes.desc_sig_punctuation(';', ';')
diff --git a/sphinx/domains/c/_ids.py b/sphinx/domains/c/_ids.py
new file mode 100644
index 0000000..cd617be
--- /dev/null
+++ b/sphinx/domains/c/_ids.py
@@ -0,0 +1,65 @@
+from __future__ import annotations
+
+import re
+
+# https://en.cppreference.com/w/c/keyword
+_keywords = [
+ 'auto', 'break', 'case', 'char', 'const', 'continue', 'default', 'do', 'double',
+ 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if', 'inline', 'int', 'long',
+ 'register', 'restrict', 'return', 'short', 'signed', 'sizeof', 'static', 'struct',
+ 'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while',
+ '_Alignas', '_Alignof', '_Atomic', '_Bool', '_Complex',
+ '_Decimal32', '_Decimal64', '_Decimal128',
+ '_Generic', '_Imaginary', '_Noreturn', '_Static_assert', '_Thread_local',
+]
+# These are only keyword'y when the corresponding headers are included.
+# They are used as default value for c_extra_keywords.
+_macroKeywords = [
+ 'alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert',
+ 'thread_local',
+]
+
+# these are ordered by precedence
+_expression_bin_ops = [
+ ['||', 'or'],
+ ['&&', 'and'],
+ ['|', 'bitor'],
+ ['^', 'xor'],
+ ['&', 'bitand'],
+ ['==', '!=', 'not_eq'],
+ ['<=', '>=', '<', '>'],
+ ['<<', '>>'],
+ ['+', '-'],
+ ['*', '/', '%'],
+ ['.*', '->*'],
+]
+_expression_unary_ops = ["++", "--", "*", "&", "+", "-", "!", "not", "~", "compl"]
+_expression_assignment_ops = ["=", "*=", "/=", "%=", "+=", "-=",
+ ">>=", "<<=", "&=", "and_eq", "^=", "xor_eq", "|=", "or_eq"]
+
+_max_id = 1
+_id_prefix = [None, 'c.', 'Cv2.']
+# Ids are used in lookup keys which are used across pickled files,
+# so when _max_id changes, make sure to update the ENV_VERSION.
+
+_string_re = re.compile(r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
+ r'|"([^"\\]*(?:\\.[^"\\]*)*)")', re.DOTALL)
+
+# bool, complex, and imaginary are macro "keywords", so they are handled separately
+_simple_type_specifiers_re = re.compile(r"""
+ \b(
+ void|_Bool
+ |signed|unsigned
+ |short|long
+ |char
+ |int
+ |__uint128|__int128
+ |__int(8|16|32|64|128) # extension
+ |float|double
+ |_Decimal(32|64|128)
+ |_Complex|_Imaginary
+ |__float80|_Float64x|__float128|_Float128|__ibm128 # extension
+ |__fp16 # extension
+ |_Sat|_Fract|fract|_Accum|accum # extension
+ )\b
+""", re.VERBOSE)
diff --git a/sphinx/domains/c/_parser.py b/sphinx/domains/c/_parser.py
new file mode 100644
index 0000000..8c65825
--- /dev/null
+++ b/sphinx/domains/c/_parser.py
@@ -0,0 +1,1048 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any, Callable
+
+from sphinx.domains.c._ast import (
+ ASTAlignofExpr,
+ ASTArray,
+ ASTAssignmentExpr,
+ ASTBinOpExpr,
+ ASTBooleanLiteral,
+ ASTBracedInitList,
+ ASTCastExpr,
+ ASTCharLiteral,
+ ASTDeclaration,
+ ASTDeclarator,
+ ASTDeclaratorNameBitField,
+ ASTDeclaratorNameParam,
+ ASTDeclaratorParen,
+ ASTDeclaratorPtr,
+ ASTDeclSpecs,
+ ASTDeclSpecsSimple,
+ ASTEnum,
+ ASTEnumerator,
+ ASTExpression,
+ ASTFallbackExpr,
+ ASTFunctionParameter,
+ ASTIdentifier,
+ ASTIdExpression,
+ ASTInitializer,
+ ASTLiteral,
+ ASTMacro,
+ ASTMacroParameter,
+ ASTNestedName,
+ ASTNumberLiteral,
+ ASTParameters,
+ ASTParenExpr,
+ ASTParenExprList,
+ ASTPostfixArray,
+ ASTPostfixCallExpr,
+ ASTPostfixDec,
+ ASTPostfixExpr,
+ ASTPostfixInc,
+ ASTPostfixMemberOfPointer,
+ ASTPostfixOp,
+ ASTSizeofExpr,
+ ASTSizeofType,
+ ASTStringLiteral,
+ ASTStruct,
+ ASTTrailingTypeSpec,
+ ASTTrailingTypeSpecFundamental,
+ ASTTrailingTypeSpecName,
+ ASTType,
+ ASTTypeWithInit,
+ ASTUnaryOpExpr,
+ ASTUnion,
+ DeclarationType,
+)
+from sphinx.domains.c._ids import (
+ _expression_assignment_ops,
+ _expression_bin_ops,
+ _expression_unary_ops,
+ _keywords,
+ _simple_type_specifiers_re,
+ _string_re,
+)
+from sphinx.util.cfamily import (
+ ASTAttributeList,
+ BaseParser,
+ DefinitionError,
+ UnsupportedMultiCharacterCharLiteral,
+ binary_literal_re,
+ char_literal_re,
+ float_literal_re,
+ float_literal_suffix_re,
+ hex_literal_re,
+ identifier_re,
+ integer_literal_re,
+ integers_literal_suffix_re,
+ octal_literal_re,
+)
+
+if TYPE_CHECKING:
+ from collections.abc import Sequence
+
+
+class DefinitionParser(BaseParser):
+ @property
+ def language(self) -> str:
+ return 'C'
+
+ @property
+ def id_attributes(self) -> Sequence[str]:
+ return self.config.c_id_attributes
+
+ @property
+ def paren_attributes(self) -> Sequence[str]:
+ return self.config.c_paren_attributes
+
+ def _parse_string(self) -> str | None:
+ if self.current_char != '"':
+ return None
+ startPos = self.pos
+ self.pos += 1
+ escape = False
+ while True:
+ if self.eof:
+ self.fail("Unexpected end during inside string.")
+ elif self.current_char == '"' and not escape:
+ self.pos += 1
+ break
+ elif self.current_char == '\\':
+ escape = True
+ else:
+ escape = False
+ self.pos += 1
+ return self.definition[startPos:self.pos]
+
+ def _parse_literal(self) -> ASTLiteral | None:
+ # -> integer-literal
+ # | character-literal
+ # | floating-literal
+ # | string-literal
+ # | boolean-literal -> "false" | "true"
+ self.skip_ws()
+ if self.skip_word('true'):
+ return ASTBooleanLiteral(True)
+ if self.skip_word('false'):
+ return ASTBooleanLiteral(False)
+ pos = self.pos
+ if self.match(float_literal_re):
+ self.match(float_literal_suffix_re)
+ return ASTNumberLiteral(self.definition[pos:self.pos])
+ for regex in (binary_literal_re, hex_literal_re,
+ integer_literal_re, octal_literal_re):
+ if self.match(regex):
+ self.match(integers_literal_suffix_re)
+ return ASTNumberLiteral(self.definition[pos:self.pos])
+
+ string = self._parse_string()
+ if string is not None:
+ return ASTStringLiteral(string)
+
+ # character-literal
+ if self.match(char_literal_re):
+ prefix = self.last_match.group(1) # may be None when no prefix
+ data = self.last_match.group(2)
+ try:
+ return ASTCharLiteral(prefix, data)
+ except UnicodeDecodeError as e:
+ self.fail("Can not handle character literal. Internal error was: %s" % e)
+ except UnsupportedMultiCharacterCharLiteral:
+ self.fail("Can not handle character literal"
+ " resulting in multiple decoded characters.")
+ return None
+
+ def _parse_paren_expression(self) -> ASTExpression | None:
+ # "(" expression ")"
+ if self.current_char != '(':
+ return None
+ self.pos += 1
+ res = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in end of parenthesized expression.")
+ return ASTParenExpr(res)
+
+ def _parse_primary_expression(self) -> ASTExpression | None:
+ # literal
+ # "(" expression ")"
+ # id-expression -> we parse this with _parse_nested_name
+ self.skip_ws()
+ res: ASTExpression | None = self._parse_literal()
+ if res is not None:
+ return res
+ res = self._parse_paren_expression()
+ if res is not None:
+ return res
+ nn = self._parse_nested_name()
+ if nn is not None:
+ return ASTIdExpression(nn)
+ return None
+
+ def _parse_initializer_list(self, name: str, open: str, close: str,
+ ) -> tuple[list[ASTExpression] | None, bool | None]:
+ # Parse open and close with the actual initializer-list in between
+ # -> initializer-clause '...'[opt]
+ # | initializer-list ',' initializer-clause '...'[opt]
+ # TODO: designators
+ self.skip_ws()
+ if not self.skip_string_and_ws(open):
+ return None, None
+ if self.skip_string(close):
+ return [], False
+
+ exprs = []
+ trailingComma = False
+ while True:
+ self.skip_ws()
+ expr = self._parse_expression()
+ self.skip_ws()
+ exprs.append(expr)
+ self.skip_ws()
+ if self.skip_string(close):
+ break
+ if not self.skip_string_and_ws(','):
+ self.fail(f"Error in {name}, expected ',' or '{close}'.")
+ if self.current_char == close == '}':
+ self.pos += 1
+ trailingComma = True
+ break
+ return exprs, trailingComma
+
+ def _parse_paren_expression_list(self) -> ASTParenExprList | None:
+ # -> '(' expression-list ')'
+ # though, we relax it to also allow empty parens
+ # as it's needed in some cases
+ #
+ # expression-list
+ # -> initializer-list
+ exprs, trailingComma = self._parse_initializer_list("parenthesized expression-list",
+ '(', ')')
+ if exprs is None:
+ return None
+ return ASTParenExprList(exprs)
+
+ def _parse_braced_init_list(self) -> ASTBracedInitList | None:
+ # -> '{' initializer-list ','[opt] '}'
+ # | '{' '}'
+ exprs, trailingComma = self._parse_initializer_list("braced-init-list", '{', '}')
+ if exprs is None:
+ return None
+ return ASTBracedInitList(exprs, trailingComma)
+
+ def _parse_postfix_expression(self) -> ASTPostfixExpr:
+ # -> primary
+ # | postfix "[" expression "]"
+ # | postfix "[" braced-init-list [opt] "]"
+ # | postfix "(" expression-list [opt] ")"
+ # | postfix "." id-expression // taken care of in primary by nested name
+ # | postfix "->" id-expression
+ # | postfix "++"
+ # | postfix "--"
+
+ prefix = self._parse_primary_expression()
+
+ # and now parse postfixes
+ postFixes: list[ASTPostfixOp] = []
+ while True:
+ self.skip_ws()
+ if self.skip_string_and_ws('['):
+ expr = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(']'):
+ self.fail("Expected ']' in end of postfix expression.")
+ postFixes.append(ASTPostfixArray(expr))
+ continue
+ if self.skip_string('->'):
+ if self.skip_string('*'):
+ # don't steal the arrow
+ self.pos -= 3
+ else:
+ name = self._parse_nested_name()
+ postFixes.append(ASTPostfixMemberOfPointer(name))
+ continue
+ if self.skip_string('++'):
+ postFixes.append(ASTPostfixInc())
+ continue
+ if self.skip_string('--'):
+ postFixes.append(ASTPostfixDec())
+ continue
+ lst = self._parse_paren_expression_list()
+ if lst is not None:
+ postFixes.append(ASTPostfixCallExpr(lst))
+ continue
+ break
+ return ASTPostfixExpr(prefix, postFixes)
+
+ def _parse_unary_expression(self) -> ASTExpression:
+ # -> postfix
+ # | "++" cast
+ # | "--" cast
+ # | unary-operator cast -> (* | & | + | - | ! | ~) cast
+ # The rest:
+ # | "sizeof" unary
+ # | "sizeof" "(" type-id ")"
+ # | "alignof" "(" type-id ")"
+ self.skip_ws()
+ for op in _expression_unary_ops:
+ # TODO: hmm, should we be able to backtrack here?
+ if op[0] in 'cn':
+ res = self.skip_word(op)
+ else:
+ res = self.skip_string(op)
+ if res:
+ expr = self._parse_cast_expression()
+ return ASTUnaryOpExpr(op, expr)
+ if self.skip_word_and_ws('sizeof'):
+ if self.skip_string_and_ws('('):
+ typ = self._parse_type(named=False)
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expecting ')' to end 'sizeof'.")
+ return ASTSizeofType(typ)
+ expr = self._parse_unary_expression()
+ return ASTSizeofExpr(expr)
+ if self.skip_word_and_ws('alignof'):
+ if not self.skip_string_and_ws('('):
+ self.fail("Expecting '(' after 'alignof'.")
+ typ = self._parse_type(named=False)
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expecting ')' to end 'alignof'.")
+ return ASTAlignofExpr(typ)
+ return self._parse_postfix_expression()
+
+ def _parse_cast_expression(self) -> ASTExpression:
+ # -> unary | "(" type-id ")" cast
+ pos = self.pos
+ self.skip_ws()
+ if self.skip_string('('):
+ try:
+ typ = self._parse_type(False)
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in cast expression.")
+ expr = self._parse_cast_expression()
+ return ASTCastExpr(typ, expr)
+ except DefinitionError as exCast:
+ self.pos = pos
+ try:
+ return self._parse_unary_expression()
+ except DefinitionError as exUnary:
+ errs = []
+ errs.append((exCast, "If type cast expression"))
+ errs.append((exUnary, "If unary expression"))
+ raise self._make_multi_error(errs,
+ "Error in cast expression.") from exUnary
+ else:
+ return self._parse_unary_expression()
+
+ def _parse_logical_or_expression(self) -> ASTExpression:
+ # logical-or = logical-and ||
+ # logical-and = inclusive-or &&
+ # inclusive-or = exclusive-or |
+ # exclusive-or = and ^
+ # and = equality &
+ # equality = relational ==, !=
+ # relational = shift <, >, <=, >=
+ # shift = additive <<, >>
+ # additive = multiplicative +, -
+ # multiplicative = pm *, /, %
+ # pm = cast .*, ->*
+ def _parse_bin_op_expr(self: DefinitionParser, opId: int) -> ASTExpression:
+ if opId + 1 == len(_expression_bin_ops):
+ def parser() -> ASTExpression:
+ return self._parse_cast_expression()
+ else:
+ def parser() -> ASTExpression:
+ return _parse_bin_op_expr(self, opId + 1)
+ exprs = []
+ ops = []
+ exprs.append(parser())
+ while True:
+ self.skip_ws()
+ pos = self.pos
+ oneMore = False
+ for op in _expression_bin_ops[opId]:
+ if op[0] in 'abcnox':
+ if not self.skip_word(op):
+ continue
+ else:
+ if not self.skip_string(op):
+ continue
+ if op == self.current_char == '&':
+ # don't split the && 'token'
+ self.pos -= 1
+ # and btw. && has lower precedence, so we are done
+ break
+ try:
+ expr = parser()
+ exprs.append(expr)
+ ops.append(op)
+ oneMore = True
+ break
+ except DefinitionError:
+ self.pos = pos
+ if not oneMore:
+ break
+ return ASTBinOpExpr(exprs, ops) # type: ignore[return-value]
+ return _parse_bin_op_expr(self, 0)
+
+ def _parse_conditional_expression_tail(self, orExprHead: Any) -> ASTExpression | None:
+ # -> "?" expression ":" assignment-expression
+ return None
+
+ def _parse_assignment_expression(self) -> ASTExpression:
+ # -> conditional-expression
+ # | logical-or-expression assignment-operator initializer-clause
+ # -> conditional-expression ->
+ # logical-or-expression
+ # | logical-or-expression "?" expression ":" assignment-expression
+ # | logical-or-expression assignment-operator initializer-clause
+ exprs = []
+ ops = []
+ orExpr = self._parse_logical_or_expression()
+ exprs.append(orExpr)
+ # TODO: handle ternary with _parse_conditional_expression_tail
+ while True:
+ oneMore = False
+ self.skip_ws()
+ for op in _expression_assignment_ops:
+ if op[0] in 'abcnox':
+ if not self.skip_word(op):
+ continue
+ else:
+ if not self.skip_string(op):
+ continue
+ expr = self._parse_logical_or_expression()
+ exprs.append(expr)
+ ops.append(op)
+ oneMore = True
+ if not oneMore:
+ break
+ return ASTAssignmentExpr(exprs, ops)
+
+ def _parse_constant_expression(self) -> ASTExpression:
+ # -> conditional-expression
+ orExpr = self._parse_logical_or_expression()
+ # TODO: use _parse_conditional_expression_tail
+ return orExpr
+
+ def _parse_expression(self) -> ASTExpression:
+ # -> assignment-expression
+ # | expression "," assignment-expression
+ # TODO: actually parse the second production
+ return self._parse_assignment_expression()
+
+ def _parse_expression_fallback(
+ self, end: list[str],
+ parser: Callable[[], ASTExpression],
+ allow: bool = True) -> ASTExpression:
+ # Stupidly "parse" an expression.
+ # 'end' should be a list of characters which ends the expression.
+
+ # first try to use the provided parser
+ prevPos = self.pos
+ try:
+ return parser()
+ except DefinitionError as e:
+ # some places (e.g., template parameters) we really don't want to use fallback,
+ # and for testing we may want to globally disable it
+ if not allow or not self.allowFallbackExpressionParsing:
+ raise
+ self.warn("Parsing of expression failed. Using fallback parser."
+ " Error was:\n%s" % e)
+ self.pos = prevPos
+ # and then the fallback scanning
+ assert end is not None
+ self.skip_ws()
+ startPos = self.pos
+ if self.match(_string_re):
+ value = self.matched_text
+ else:
+ # TODO: add handling of more bracket-like things, and quote handling
+ brackets = {'(': ')', '{': '}', '[': ']'}
+ symbols: list[str] = []
+ while not self.eof:
+ if (len(symbols) == 0 and self.current_char in end):
+ break
+ if self.current_char in brackets:
+ symbols.append(brackets[self.current_char])
+ elif len(symbols) > 0 and self.current_char == symbols[-1]:
+ symbols.pop()
+ self.pos += 1
+ if len(end) > 0 and self.eof:
+ self.fail("Could not find end of expression starting at %d."
+ % startPos)
+ value = self.definition[startPos:self.pos].strip()
+ return ASTFallbackExpr(value.strip())
+
+ def _parse_nested_name(self) -> ASTNestedName:
+ names: list[Any] = []
+
+ self.skip_ws()
+ rooted = False
+ if self.skip_string('.'):
+ rooted = True
+ while 1:
+ self.skip_ws()
+ if not self.match(identifier_re):
+ self.fail("Expected identifier in nested name.")
+ identifier = self.matched_text
+ # make sure there isn't a keyword
+ if identifier in _keywords:
+ self.fail("Expected identifier in nested name, "
+ "got keyword: %s" % identifier)
+ if self.matched_text in self.config.c_extra_keywords:
+ msg = "Expected identifier, got user-defined keyword: %s." \
+ + " Remove it from c_extra_keywords to allow it as identifier.\n" \
+ + "Currently c_extra_keywords is %s."
+ self.fail(msg % (self.matched_text,
+ str(self.config.c_extra_keywords)))
+ ident = ASTIdentifier(identifier)
+ names.append(ident)
+
+ self.skip_ws()
+ if not self.skip_string('.'):
+ break
+ return ASTNestedName(names, rooted)
+
+ def _parse_simple_type_specifier(self) -> str | None:
+ if self.match(_simple_type_specifiers_re):
+ return self.matched_text
+ for t in ('bool', 'complex', 'imaginary'):
+ if t in self.config.c_extra_keywords:
+ if self.skip_word(t):
+ return t
+ return None
+
+ def _parse_simple_type_specifiers(self) -> ASTTrailingTypeSpecFundamental | None:
+ names: list[str] = []
+
+ self.skip_ws()
+ while True:
+ t = self._parse_simple_type_specifier()
+ if t is None:
+ break
+ names.append(t)
+ self.skip_ws()
+ if len(names) == 0:
+ return None
+ return ASTTrailingTypeSpecFundamental(names)
+
+ def _parse_trailing_type_spec(self) -> ASTTrailingTypeSpec:
+ # fundamental types, https://en.cppreference.com/w/c/language/type
+ # and extensions
+ self.skip_ws()
+ res = self._parse_simple_type_specifiers()
+ if res is not None:
+ return res
+
+ # prefixed
+ prefix = None
+ self.skip_ws()
+ for k in ('struct', 'enum', 'union'):
+ if self.skip_word_and_ws(k):
+ prefix = k
+ break
+
+ nestedName = self._parse_nested_name()
+ return ASTTrailingTypeSpecName(prefix, nestedName)
+
+ def _parse_parameters(self, paramMode: str) -> ASTParameters | None:
+ self.skip_ws()
+ if not self.skip_string('('):
+ if paramMode == 'function':
+ self.fail('Expecting "(" in parameters.')
+ else:
+ return None
+
+ args = []
+ self.skip_ws()
+ if not self.skip_string(')'):
+ while 1:
+ self.skip_ws()
+ if self.skip_string('...'):
+ args.append(ASTFunctionParameter(None, True))
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail('Expected ")" after "..." in parameters.')
+ break
+ # note: it seems that function arguments can always be named,
+ # even in function pointers and similar.
+ arg = self._parse_type_with_init(outer=None, named='single')
+ # TODO: parse default parameters # TODO: didn't we just do that?
+ args.append(ASTFunctionParameter(arg))
+
+ self.skip_ws()
+ if self.skip_string(','):
+ continue
+ if self.skip_string(')'):
+ break
+ self.fail(f'Expecting "," or ")" in parameters, got "{self.current_char}".')
+
+ attrs = self._parse_attribute_list()
+ return ASTParameters(args, attrs)
+
+ def _parse_decl_specs_simple(
+ self, outer: str | None, typed: bool,
+ ) -> ASTDeclSpecsSimple:
+ """Just parse the simple ones."""
+ storage = None
+ threadLocal = None
+ inline = None
+ restrict = None
+ volatile = None
+ const = None
+ attrs = []
+ while 1: # accept any permutation of a subset of some decl-specs
+ self.skip_ws()
+ if not storage:
+ if outer == 'member':
+ if self.skip_word('auto'):
+ storage = 'auto'
+ continue
+ if self.skip_word('register'):
+ storage = 'register'
+ continue
+ if outer in ('member', 'function'):
+ if self.skip_word('static'):
+ storage = 'static'
+ continue
+ if self.skip_word('extern'):
+ storage = 'extern'
+ continue
+ if outer == 'member' and not threadLocal:
+ if self.skip_word('thread_local'):
+ threadLocal = 'thread_local'
+ continue
+ if self.skip_word('_Thread_local'):
+ threadLocal = '_Thread_local'
+ continue
+ if outer == 'function' and not inline:
+ inline = self.skip_word('inline')
+ if inline:
+ continue
+
+ if not restrict and typed:
+ restrict = self.skip_word('restrict')
+ if restrict:
+ continue
+ if not volatile and typed:
+ volatile = self.skip_word('volatile')
+ if volatile:
+ continue
+ if not const and typed:
+ const = self.skip_word('const')
+ if const:
+ continue
+ attr = self._parse_attribute()
+ if attr:
+ attrs.append(attr)
+ continue
+ break
+ return ASTDeclSpecsSimple(storage, threadLocal, inline,
+ restrict, volatile, const, ASTAttributeList(attrs))
+
+ def _parse_decl_specs(self, outer: str | None, typed: bool = True) -> ASTDeclSpecs:
+ if outer:
+ if outer not in ('type', 'member', 'function'):
+ raise Exception('Internal error, unknown outer "%s".' % outer)
+ leftSpecs = self._parse_decl_specs_simple(outer, typed)
+ rightSpecs = None
+
+ if typed:
+ trailing = self._parse_trailing_type_spec()
+ rightSpecs = self._parse_decl_specs_simple(outer, typed)
+ else:
+ trailing = None
+ return ASTDeclSpecs(outer, leftSpecs, rightSpecs, trailing)
+
+ def _parse_declarator_name_suffix(
+ self, named: bool | str, paramMode: str, typed: bool,
+ ) -> ASTDeclarator:
+ assert named in (True, False, 'single')
+ # now we should parse the name, and then suffixes
+ if named == 'single':
+ if self.match(identifier_re):
+ if self.matched_text in _keywords:
+ self.fail("Expected identifier, "
+ "got keyword: %s" % self.matched_text)
+ if self.matched_text in self.config.c_extra_keywords:
+ msg = "Expected identifier, got user-defined keyword: %s." \
+ + " Remove it from c_extra_keywords to allow it as identifier.\n" \
+ + "Currently c_extra_keywords is %s."
+ self.fail(msg % (self.matched_text,
+ str(self.config.c_extra_keywords)))
+ identifier = ASTIdentifier(self.matched_text)
+ declId = ASTNestedName([identifier], rooted=False)
+ else:
+ declId = None
+ elif named:
+ declId = self._parse_nested_name()
+ else:
+ declId = None
+ arrayOps = []
+ while 1:
+ self.skip_ws()
+ if typed and self.skip_string('['):
+ self.skip_ws()
+ static = False
+ const = False
+ volatile = False
+ restrict = False
+ while True:
+ if not static:
+ if self.skip_word_and_ws('static'):
+ static = True
+ continue
+ if not const:
+ if self.skip_word_and_ws('const'):
+ const = True
+ continue
+ if not volatile:
+ if self.skip_word_and_ws('volatile'):
+ volatile = True
+ continue
+ if not restrict:
+ if self.skip_word_and_ws('restrict'):
+ restrict = True
+ continue
+ break
+ vla = False if static else self.skip_string_and_ws('*')
+ if vla:
+ if not self.skip_string(']'):
+ self.fail("Expected ']' in end of array operator.")
+ size = None
+ else:
+ if self.skip_string(']'):
+ size = None
+ else:
+
+ def parser() -> ASTExpression:
+ return self._parse_expression()
+ size = self._parse_expression_fallback([']'], parser)
+ self.skip_ws()
+ if not self.skip_string(']'):
+ self.fail("Expected ']' in end of array operator.")
+ arrayOps.append(ASTArray(static, const, volatile, restrict, vla, size))
+ else:
+ break
+ param = self._parse_parameters(paramMode)
+ if param is None and len(arrayOps) == 0:
+ # perhaps a bit-field
+ if named and paramMode == 'type' and typed:
+ self.skip_ws()
+ if self.skip_string(':'):
+ size = self._parse_constant_expression()
+ return ASTDeclaratorNameBitField(declId=declId, size=size)
+ return ASTDeclaratorNameParam(declId=declId, arrayOps=arrayOps,
+ param=param)
+
+ def _parse_declarator(self, named: bool | str, paramMode: str,
+ typed: bool = True) -> ASTDeclarator:
+ # 'typed' here means 'parse return type stuff'
+ if paramMode not in ('type', 'function'):
+ raise Exception(
+ "Internal error, unknown paramMode '%s'." % paramMode)
+ prevErrors = []
+ self.skip_ws()
+ if typed and self.skip_string('*'):
+ self.skip_ws()
+ restrict = False
+ volatile = False
+ const = False
+ attrs = []
+ while 1:
+ if not restrict:
+ restrict = self.skip_word_and_ws('restrict')
+ if restrict:
+ continue
+ if not volatile:
+ volatile = self.skip_word_and_ws('volatile')
+ if volatile:
+ continue
+ if not const:
+ const = self.skip_word_and_ws('const')
+ if const:
+ continue
+ attr = self._parse_attribute()
+ if attr is not None:
+ attrs.append(attr)
+ continue
+ break
+ next = self._parse_declarator(named, paramMode, typed)
+ return ASTDeclaratorPtr(next=next,
+ restrict=restrict, volatile=volatile, const=const,
+ attrs=ASTAttributeList(attrs))
+ if typed and self.current_char == '(': # note: peeking, not skipping
+ # maybe this is the beginning of params, try that first,
+ # otherwise assume it's noptr->declarator > ( ptr-declarator )
+ pos = self.pos
+ try:
+ # assume this is params
+ res = self._parse_declarator_name_suffix(named, paramMode,
+ typed)
+ return res
+ except DefinitionError as exParamQual:
+ msg = "If declarator-id with parameters"
+ if paramMode == 'function':
+ msg += " (e.g., 'void f(int arg)')"
+ prevErrors.append((exParamQual, msg))
+ self.pos = pos
+ try:
+ assert self.current_char == '('
+ self.skip_string('(')
+ # TODO: hmm, if there is a name, it must be in inner, right?
+ # TODO: hmm, if there must be parameters, they must b
+ # inside, right?
+ inner = self._parse_declarator(named, paramMode, typed)
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in \"( ptr-declarator )\"")
+ next = self._parse_declarator(named=False,
+ paramMode="type",
+ typed=typed)
+ return ASTDeclaratorParen(inner=inner, next=next)
+ except DefinitionError as exNoPtrParen:
+ self.pos = pos
+ msg = "If parenthesis in noptr-declarator"
+ if paramMode == 'function':
+ msg += " (e.g., 'void (*f(int arg))(double)')"
+ prevErrors.append((exNoPtrParen, msg))
+ header = "Error in declarator"
+ raise self._make_multi_error(prevErrors, header) from exNoPtrParen
+ pos = self.pos
+ try:
+ return self._parse_declarator_name_suffix(named, paramMode, typed)
+ except DefinitionError as e:
+ self.pos = pos
+ prevErrors.append((e, "If declarator-id"))
+ header = "Error in declarator or parameters"
+ raise self._make_multi_error(prevErrors, header) from e
+
+ def _parse_initializer(self, outer: str | None = None, allowFallback: bool = True,
+ ) -> ASTInitializer | None:
+ self.skip_ws()
+ if outer == 'member' and False: # NoQA: SIM223 # TODO
+ bracedInit = self._parse_braced_init_list()
+ if bracedInit is not None:
+ return ASTInitializer(bracedInit, hasAssign=False)
+
+ if not self.skip_string('='):
+ return None
+
+ bracedInit = self._parse_braced_init_list()
+ if bracedInit is not None:
+ return ASTInitializer(bracedInit)
+
+ if outer == 'member':
+ fallbackEnd: list[str] = []
+ elif outer is None: # function parameter
+ fallbackEnd = [',', ')']
+ else:
+ self.fail("Internal error, initializer for outer '%s' not "
+ "implemented." % outer)
+
+ def parser() -> ASTExpression:
+ return self._parse_assignment_expression()
+
+ value = self._parse_expression_fallback(fallbackEnd, parser, allow=allowFallback)
+ return ASTInitializer(value)
+
+ def _parse_type(self, named: bool | str, outer: str | None = None) -> ASTType:
+ """
+ named=False|'single'|True: 'single' is e.g., for function objects which
+ doesn't need to name the arguments, but otherwise is a single name
+ """
+ if outer: # always named
+ if outer not in ('type', 'member', 'function'):
+ raise Exception('Internal error, unknown outer "%s".' % outer)
+ assert named
+
+ if outer == 'type':
+ # We allow type objects to just be a name.
+ prevErrors = []
+ startPos = self.pos
+ # first try without the type
+ try:
+ declSpecs = self._parse_decl_specs(outer=outer, typed=False)
+ decl = self._parse_declarator(named=True, paramMode=outer,
+ typed=False)
+ self.assert_end(allowSemicolon=True)
+ except DefinitionError as exUntyped:
+ desc = "If just a name"
+ prevErrors.append((exUntyped, desc))
+ self.pos = startPos
+ try:
+ declSpecs = self._parse_decl_specs(outer=outer)
+ decl = self._parse_declarator(named=True, paramMode=outer)
+ except DefinitionError as exTyped:
+ self.pos = startPos
+ desc = "If typedef-like declaration"
+ prevErrors.append((exTyped, desc))
+ # Retain the else branch for easier debugging.
+ # TODO: it would be nice to save the previous stacktrace
+ # and output it here.
+ if True:
+ header = "Type must be either just a name or a "
+ header += "typedef-like declaration."
+ raise self._make_multi_error(prevErrors, header) from exTyped
+ else: # NoQA: RET506
+ # For testing purposes.
+ # do it again to get the proper traceback (how do you
+ # reliably save a traceback when an exception is
+ # constructed?)
+ self.pos = startPos
+ typed = True
+ declSpecs = self._parse_decl_specs(outer=outer, typed=typed)
+ decl = self._parse_declarator(named=True, paramMode=outer,
+ typed=typed)
+ elif outer == 'function':
+ declSpecs = self._parse_decl_specs(outer=outer)
+ decl = self._parse_declarator(named=True, paramMode=outer)
+ else:
+ paramMode = 'type'
+ if outer == 'member': # i.e., member
+ named = True
+ declSpecs = self._parse_decl_specs(outer=outer)
+ decl = self._parse_declarator(named=named, paramMode=paramMode)
+ return ASTType(declSpecs, decl)
+
+ def _parse_type_with_init(self, named: bool | str, outer: str | None) -> ASTTypeWithInit:
+ if outer:
+ assert outer in ('type', 'member', 'function')
+ type = self._parse_type(outer=outer, named=named)
+ init = self._parse_initializer(outer=outer)
+ return ASTTypeWithInit(type, init)
+
+ def _parse_macro(self) -> ASTMacro:
+ self.skip_ws()
+ ident = self._parse_nested_name()
+ if ident is None:
+ self.fail("Expected identifier in macro definition.")
+ self.skip_ws()
+ if not self.skip_string_and_ws('('):
+ return ASTMacro(ident, None)
+ if self.skip_string(')'):
+ return ASTMacro(ident, [])
+ args = []
+ while 1:
+ self.skip_ws()
+ if self.skip_string('...'):
+ args.append(ASTMacroParameter(None, True))
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail('Expected ")" after "..." in macro parameters.')
+ break
+ if not self.match(identifier_re):
+ self.fail("Expected identifier in macro parameters.")
+ nn = ASTNestedName([ASTIdentifier(self.matched_text)], rooted=False)
+ # Allow named variadic args:
+ # https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
+ self.skip_ws()
+ if self.skip_string_and_ws('...'):
+ args.append(ASTMacroParameter(nn, False, True))
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail('Expected ")" after "..." in macro parameters.')
+ break
+ args.append(ASTMacroParameter(nn))
+ if self.skip_string_and_ws(','):
+ continue
+ if self.skip_string_and_ws(')'):
+ break
+ self.fail("Expected identifier, ')', or ',' in macro parameter list.")
+ return ASTMacro(ident, args)
+
+ def _parse_struct(self) -> ASTStruct:
+ name = self._parse_nested_name()
+ return ASTStruct(name)
+
+ def _parse_union(self) -> ASTUnion:
+ name = self._parse_nested_name()
+ return ASTUnion(name)
+
+ def _parse_enum(self) -> ASTEnum:
+ name = self._parse_nested_name()
+ return ASTEnum(name)
+
+ def _parse_enumerator(self) -> ASTEnumerator:
+ name = self._parse_nested_name()
+ attrs = self._parse_attribute_list()
+ self.skip_ws()
+ init = None
+ if self.skip_string('='):
+ self.skip_ws()
+
+ def parser() -> ASTExpression:
+ return self._parse_constant_expression()
+
+ initVal = self._parse_expression_fallback([], parser)
+ init = ASTInitializer(initVal)
+ return ASTEnumerator(name, init, attrs)
+
+ def parse_declaration(self, objectType: str, directiveType: str) -> ASTDeclaration:
+ if objectType not in ('function', 'member',
+ 'macro', 'struct', 'union', 'enum', 'enumerator', 'type'):
+ raise Exception('Internal error, unknown objectType "%s".' % objectType)
+ if directiveType not in ('function', 'member', 'var',
+ 'macro', 'struct', 'union', 'enum', 'enumerator', 'type'):
+ raise Exception('Internal error, unknown directiveType "%s".' % directiveType)
+
+ declaration: DeclarationType | None = None
+ if objectType == 'member':
+ declaration = self._parse_type_with_init(named=True, outer='member')
+ elif objectType == 'function':
+ declaration = self._parse_type(named=True, outer='function')
+ elif objectType == 'macro':
+ declaration = self._parse_macro()
+ elif objectType == 'struct':
+ declaration = self._parse_struct()
+ elif objectType == 'union':
+ declaration = self._parse_union()
+ elif objectType == 'enum':
+ declaration = self._parse_enum()
+ elif objectType == 'enumerator':
+ declaration = self._parse_enumerator()
+ elif objectType == 'type':
+ declaration = self._parse_type(named=True, outer='type')
+ else:
+ raise AssertionError
+ if objectType != 'macro':
+ self.skip_ws()
+ semicolon = self.skip_string(';')
+ else:
+ semicolon = False
+ return ASTDeclaration(objectType, directiveType, declaration, semicolon)
+
+ def parse_namespace_object(self) -> ASTNestedName:
+ return self._parse_nested_name()
+
+ def parse_xref_object(self) -> ASTNestedName:
+ name = self._parse_nested_name()
+ # if there are '()' left, just skip them
+ self.skip_ws()
+ self.skip_string('()')
+ self.assert_end()
+ return name
+
+ def parse_expression(self) -> ASTExpression | ASTType:
+ pos = self.pos
+ res: ASTExpression | ASTType | None = None
+ try:
+ res = self._parse_expression()
+ self.skip_ws()
+ self.assert_end()
+ except DefinitionError as exExpr:
+ self.pos = pos
+ try:
+ res = self._parse_type(False)
+ self.skip_ws()
+ self.assert_end()
+ except DefinitionError as exType:
+ header = "Error when parsing (type) expression."
+ errs = []
+ errs.append((exExpr, "If expression"))
+ errs.append((exType, "If type"))
+ raise self._make_multi_error(errs, header) from exType
+ return res
diff --git a/sphinx/domains/c/_symbol.py b/sphinx/domains/c/_symbol.py
new file mode 100644
index 0000000..5205204
--- /dev/null
+++ b/sphinx/domains/c/_symbol.py
@@ -0,0 +1,700 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any, Callable
+
+from sphinx.domains.c._ast import (
+ ASTDeclaration,
+ ASTIdentifier,
+ ASTNestedName,
+)
+from sphinx.locale import __
+from sphinx.util import logging
+
+if TYPE_CHECKING:
+ from collections.abc import Iterator
+
+ from typing_extensions import Self
+
+ from sphinx.environment import BuildEnvironment
+
+logger = logging.getLogger(__name__)
+
+
+class _DuplicateSymbolError(Exception):
+ def __init__(self, symbol: Symbol, declaration: ASTDeclaration) -> None:
+ assert symbol
+ assert declaration
+ self.symbol = symbol
+ self.declaration = declaration
+
+ def __str__(self) -> str:
+ return "Internal C duplicate symbol error:\n%s" % self.symbol.dump(0)
+
+
+class SymbolLookupResult:
+ def __init__(self, symbols: Iterator[Symbol], parentSymbol: Symbol,
+ ident: ASTIdentifier) -> None:
+ self.symbols = symbols
+ self.parentSymbol = parentSymbol
+ self.ident = ident
+
+
+class LookupKey:
+ def __init__(self, data: list[tuple[ASTIdentifier, str]]) -> None:
+ self.data = data
+
+ def __str__(self) -> str:
+ inner = ', '.join(f"({ident}, {id_})" for ident, id_ in self.data)
+ return f'[{inner}]'
+
+
+class Symbol:
+ debug_indent = 0
+ debug_indent_string = " "
+ debug_lookup = False
+ debug_show_tree = False
+
+ def __copy__(self) -> Self:
+ raise AssertionError # shouldn't happen
+
+ def __deepcopy__(self, memo: Any) -> Symbol:
+ if self.parent:
+ raise AssertionError # shouldn't happen
+ # the domain base class makes a copy of the initial data, which is fine
+ return Symbol(None, None, None, None, None)
+
+ @staticmethod
+ def debug_print(*args: Any) -> None:
+ msg = Symbol.debug_indent_string * Symbol.debug_indent
+ msg += "".join(str(e) for e in args)
+ logger.debug(msg)
+
+ def _assert_invariants(self) -> None:
+ if not self.parent:
+ # parent == None means global scope, so declaration means a parent
+ assert not self.declaration
+ assert not self.docname
+ else:
+ if self.declaration:
+ assert self.docname
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key == "children":
+ raise AssertionError
+ return super().__setattr__(key, value)
+
+ def __init__(
+ self,
+ parent: Symbol | None,
+ ident: ASTIdentifier | None,
+ declaration: ASTDeclaration | None,
+ docname: str | None,
+ line: int | None,
+ ) -> None:
+ self.parent = parent
+ # declarations in a single directive are linked together
+ self.siblingAbove: Symbol | None = None
+ self.siblingBelow: Symbol | None = None
+ self.ident = ident
+ self.declaration = declaration
+ self.docname = docname
+ self.line = line
+ self.isRedeclaration = False
+ self._assert_invariants()
+
+ # Remember to modify Symbol.remove if modifications to the parent change.
+ self._children: list[Symbol] = []
+ self._anonChildren: list[Symbol] = []
+ # note: _children includes _anonChildren
+ if self.parent:
+ self.parent._children.append(self)
+ if self.declaration:
+ self.declaration.symbol = self
+
+ # Do symbol addition after self._children has been initialised.
+ self._add_function_params()
+
+ def _fill_empty(self, declaration: ASTDeclaration, docname: str, line: int) -> None:
+ self._assert_invariants()
+ assert self.declaration is None
+ assert self.docname is None
+ assert self.line is None
+ assert declaration is not None
+ assert docname is not None
+ assert line is not None
+ self.declaration = declaration
+ self.declaration.symbol = self
+ self.docname = docname
+ self.line = line
+ self._assert_invariants()
+ # and symbol addition should be done as well
+ self._add_function_params()
+
+ def _add_function_params(self) -> None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_add_function_params:")
+ # Note: we may be called from _fill_empty, so the symbols we want
+ # to add may actually already be present (as empty symbols).
+
+ # add symbols for function parameters, if any
+ if self.declaration is not None and self.declaration.function_params is not None:
+ for p in self.declaration.function_params:
+ if p.arg is None:
+ continue
+ nn = p.arg.name
+ if nn is None:
+ continue
+ # (comparing to the template params: we have checked that we are a declaration)
+ decl = ASTDeclaration('functionParam', None, p)
+ assert not nn.rooted
+ assert len(nn.names) == 1
+ self._add_symbols(nn, decl, self.docname, self.line)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+
+ def remove(self) -> None:
+ if self.parent is None:
+ return
+ assert self in self.parent._children
+ self.parent._children.remove(self)
+ self.parent = None
+
+ def clear_doc(self, docname: str) -> None:
+ for sChild in self._children:
+ sChild.clear_doc(docname)
+ if sChild.declaration and sChild.docname == docname:
+ sChild.declaration = None
+ sChild.docname = None
+ sChild.line = None
+ if sChild.siblingAbove is not None:
+ sChild.siblingAbove.siblingBelow = sChild.siblingBelow
+ if sChild.siblingBelow is not None:
+ sChild.siblingBelow.siblingAbove = sChild.siblingAbove
+ sChild.siblingAbove = None
+ sChild.siblingBelow = None
+
+ def get_all_symbols(self) -> Iterator[Symbol]:
+ yield self
+ for sChild in self._children:
+ yield from sChild.get_all_symbols()
+
+ @property
+ def children(self) -> Iterator[Symbol]:
+ yield from self._children
+
+ @property
+ def children_recurse_anon(self) -> Iterator[Symbol]:
+ for c in self._children:
+ yield c
+ if not c.ident.is_anon():
+ continue
+ yield from c.children_recurse_anon
+
+ def get_lookup_key(self) -> LookupKey:
+ # The pickle files for the environment and for each document are distinct.
+ # The environment has all the symbols, but the documents has xrefs that
+ # must know their scope. A lookup key is essentially a specification of
+ # how to find a specific symbol.
+ symbols = []
+ s = self
+ while s.parent:
+ symbols.append(s)
+ s = s.parent
+ symbols.reverse()
+ key = []
+ for s in symbols:
+ if s.declaration is not None:
+ # TODO: do we need the ID?
+ key.append((s.ident, s.declaration.get_newest_id()))
+ else:
+ key.append((s.ident, None))
+ return LookupKey(key)
+
+ def get_full_nested_name(self) -> ASTNestedName:
+ symbols = []
+ s = self
+ while s.parent:
+ symbols.append(s)
+ s = s.parent
+ symbols.reverse()
+ names = [s.ident for s in symbols]
+ return ASTNestedName(names, rooted=False)
+
+ def _find_first_named_symbol(self, ident: ASTIdentifier,
+ matchSelf: bool, recurseInAnon: bool) -> Symbol | None:
+ # TODO: further simplification from C++ to C
+ if Symbol.debug_lookup:
+ Symbol.debug_print("_find_first_named_symbol ->")
+ res = self._find_named_symbols(ident, matchSelf, recurseInAnon,
+ searchInSiblings=False)
+ try:
+ return next(res)
+ except StopIteration:
+ return None
+
+ def _find_named_symbols(self, ident: ASTIdentifier,
+ matchSelf: bool, recurseInAnon: bool,
+ searchInSiblings: bool) -> Iterator[Symbol]:
+ # TODO: further simplification from C++ to C
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_find_named_symbols:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("self:")
+ logger.debug(self.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ Symbol.debug_print("ident: ", ident)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("searchInSiblings: ", searchInSiblings)
+
+ def candidates() -> Iterator[Symbol]:
+ s = self
+ if Symbol.debug_lookup:
+ Symbol.debug_print("searching in self:")
+ logger.debug(s.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ while True:
+ if matchSelf:
+ yield s
+ if recurseInAnon:
+ yield from s.children_recurse_anon
+ else:
+ yield from s._children
+
+ if s.siblingAbove is None:
+ break
+ s = s.siblingAbove
+ if Symbol.debug_lookup:
+ Symbol.debug_print("searching in sibling:")
+ logger.debug(s.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+
+ for s in candidates():
+ if Symbol.debug_lookup:
+ Symbol.debug_print("candidate:")
+ logger.debug(s.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ if s.ident == ident:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("matches")
+ Symbol.debug_indent -= 3
+ yield s
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 2
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+
+ def _symbol_lookup(
+ self,
+ nestedName: ASTNestedName,
+ onMissingQualifiedSymbol: Callable[[Symbol, ASTIdentifier], Symbol | None],
+ ancestorLookupType: str | None,
+ matchSelf: bool,
+ recurseInAnon: bool,
+ searchInSiblings: bool,
+ ) -> SymbolLookupResult | None:
+ # TODO: further simplification from C++ to C
+ # ancestorLookupType: if not None, specifies the target type of the lookup
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_symbol_lookup:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("self:")
+ logger.debug(self.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ Symbol.debug_print("nestedName: ", nestedName)
+ Symbol.debug_print("ancestorLookupType:", ancestorLookupType)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("searchInSiblings: ", searchInSiblings)
+
+ names = nestedName.names
+
+ # find the right starting point for lookup
+ parentSymbol = self
+ if nestedName.rooted:
+ while parentSymbol.parent:
+ parentSymbol = parentSymbol.parent
+ if ancestorLookupType is not None:
+ # walk up until we find the first identifier
+ firstName = names[0]
+ while parentSymbol.parent:
+ if parentSymbol.find_identifier(firstName,
+ matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ searchInSiblings=searchInSiblings):
+ break
+ parentSymbol = parentSymbol.parent
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("starting point:")
+ logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+
+ # and now the actual lookup
+ for ident in names[:-1]:
+ symbol = parentSymbol._find_first_named_symbol(
+ ident, matchSelf=matchSelf, recurseInAnon=recurseInAnon)
+ if symbol is None:
+ symbol = onMissingQualifiedSymbol(parentSymbol, ident)
+ if symbol is None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return None
+ # We have now matched part of a nested name, and need to match more
+ # so even if we should matchSelf before, we definitely shouldn't
+ # even more. (see also issue #2666)
+ matchSelf = False
+ parentSymbol = symbol
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("handle last name from:")
+ logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+
+ # handle the last name
+ ident = names[-1]
+
+ symbols = parentSymbol._find_named_symbols(
+ ident, matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ searchInSiblings=searchInSiblings)
+ if Symbol.debug_lookup:
+ symbols = list(symbols) # type: ignore[assignment]
+ Symbol.debug_indent -= 2
+ return SymbolLookupResult(symbols, parentSymbol, ident)
+
+ def _add_symbols(
+ self,
+ nestedName: ASTNestedName,
+ declaration: ASTDeclaration | None,
+ docname: str | None,
+ line: int | None,
+ ) -> Symbol:
+ # TODO: further simplification from C++ to C
+ # Used for adding a whole path of symbols, where the last may or may not
+ # be an actual declaration.
+
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_add_symbols:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("nn: ", nestedName)
+ Symbol.debug_print("decl: ", declaration)
+ Symbol.debug_print(f"location: {docname}:{line}")
+
+ def onMissingQualifiedSymbol(parentSymbol: Symbol, ident: ASTIdentifier) -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_add_symbols, onMissingQualifiedSymbol:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("ident: ", ident)
+ Symbol.debug_indent -= 2
+ return Symbol(parent=parentSymbol, ident=ident,
+ declaration=None, docname=None, line=None)
+
+ lookupResult = self._symbol_lookup(nestedName,
+ onMissingQualifiedSymbol,
+ ancestorLookupType=None,
+ matchSelf=False,
+ recurseInAnon=False,
+ searchInSiblings=False)
+ assert lookupResult is not None # we create symbols all the way, so that can't happen
+ symbols = list(lookupResult.symbols)
+ if len(symbols) == 0:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("_add_symbols, result, no symbol:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("ident: ", lookupResult.ident)
+ Symbol.debug_print("declaration: ", declaration)
+ Symbol.debug_print(f"location: {docname}:{line}")
+ Symbol.debug_indent -= 1
+ symbol = Symbol(parent=lookupResult.parentSymbol,
+ ident=lookupResult.ident,
+ declaration=declaration,
+ docname=docname, line=line)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return symbol
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("_add_symbols, result, symbols:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("number symbols:", len(symbols))
+ Symbol.debug_indent -= 1
+
+ if not declaration:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("no declaration")
+ Symbol.debug_indent -= 2
+ # good, just a scope creation
+ # TODO: what if we have more than one symbol?
+ return symbols[0]
+
+ noDecl = []
+ withDecl = []
+ dupDecl = []
+ for s in symbols:
+ if s.declaration is None:
+ noDecl.append(s)
+ elif s.isRedeclaration:
+ dupDecl.append(s)
+ else:
+ withDecl.append(s)
+ if Symbol.debug_lookup:
+ Symbol.debug_print("#noDecl: ", len(noDecl))
+ Symbol.debug_print("#withDecl:", len(withDecl))
+ Symbol.debug_print("#dupDecl: ", len(dupDecl))
+
+ # With partial builds we may start with a large symbol tree stripped of declarations.
+ # Essentially any combination of noDecl, withDecl, and dupDecls seems possible.
+ # TODO: make partial builds fully work. What should happen when the primary symbol gets
+ # deleted, and other duplicates exist? The full document should probably be rebuild.
+
+ # First check if one of those with a declaration matches.
+ # If it's a function, we need to compare IDs,
+ # otherwise there should be only one symbol with a declaration.
+ def makeCandSymbol() -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("begin: creating candidate symbol")
+ symbol = Symbol(parent=lookupResult.parentSymbol,
+ ident=lookupResult.ident,
+ declaration=declaration,
+ docname=docname, line=line)
+ if Symbol.debug_lookup:
+ Symbol.debug_print("end: creating candidate symbol")
+ return symbol
+
+ if len(withDecl) == 0:
+ candSymbol = None
+ else:
+ candSymbol = makeCandSymbol()
+
+ def handleDuplicateDeclaration(symbol: Symbol, candSymbol: Symbol) -> None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("redeclaration")
+ Symbol.debug_indent -= 1
+ Symbol.debug_indent -= 2
+ # Redeclaration of the same symbol.
+ # Let the new one be there, but raise an error to the client
+ # so it can use the real symbol as subscope.
+ # This will probably result in a duplicate id warning.
+ candSymbol.isRedeclaration = True
+ raise _DuplicateSymbolError(symbol, declaration)
+
+ if declaration.objectType != "function":
+ assert len(withDecl) <= 1
+ handleDuplicateDeclaration(withDecl[0], candSymbol)
+ # (not reachable)
+
+ # a function, so compare IDs
+ candId = declaration.get_newest_id()
+ if Symbol.debug_lookup:
+ Symbol.debug_print("candId:", candId)
+ for symbol in withDecl:
+ oldId = symbol.declaration.get_newest_id()
+ if Symbol.debug_lookup:
+ Symbol.debug_print("oldId: ", oldId)
+ if candId == oldId:
+ handleDuplicateDeclaration(symbol, candSymbol)
+ # (not reachable)
+ # no candidate symbol found with matching ID
+ # if there is an empty symbol, fill that one
+ if len(noDecl) == 0:
+ if Symbol.debug_lookup:
+ Symbol.debug_print(
+ "no match, no empty, candSybmol is not None?:", candSymbol is not None,
+ )
+ Symbol.debug_indent -= 2
+ if candSymbol is not None:
+ return candSymbol
+ else:
+ return makeCandSymbol()
+ else:
+ if Symbol.debug_lookup:
+ Symbol.debug_print(
+ "no match, but fill an empty declaration, candSybmol is not None?:",
+ candSymbol is not None)
+ Symbol.debug_indent -= 2
+ if candSymbol is not None:
+ candSymbol.remove()
+ # assert len(noDecl) == 1
+ # TODO: enable assertion when we at some point find out how to do cleanup
+ # for now, just take the first one, it should work fine ... right?
+ symbol = noDecl[0]
+ # If someone first opened the scope, and then later
+ # declares it, e.g,
+ # .. namespace:: Test
+ # .. namespace:: nullptr
+ # .. class:: Test
+ symbol._fill_empty(declaration, docname, line)
+ return symbol
+
+ def merge_with(self, other: Symbol, docnames: list[str],
+ env: BuildEnvironment) -> None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("merge_with:")
+ assert other is not None
+ for otherChild in other._children:
+ ourChild = self._find_first_named_symbol(
+ ident=otherChild.ident, matchSelf=False,
+ recurseInAnon=False)
+ if ourChild is None:
+ # TODO: hmm, should we prune by docnames?
+ self._children.append(otherChild)
+ otherChild.parent = self
+ otherChild._assert_invariants()
+ continue
+ if otherChild.declaration and otherChild.docname in docnames:
+ if not ourChild.declaration:
+ ourChild._fill_empty(otherChild.declaration,
+ otherChild.docname, otherChild.line)
+ elif ourChild.docname != otherChild.docname:
+ name = str(ourChild.declaration)
+ msg = __("Duplicate C declaration, also defined at %s:%s.\n"
+ "Declaration is '.. c:%s:: %s'.")
+ msg = msg % (ourChild.docname, ourChild.line,
+ ourChild.declaration.directiveType, name)
+ logger.warning(msg, location=(otherChild.docname, otherChild.line))
+ else:
+ # Both have declarations, and in the same docname.
+ # This can apparently happen, it should be safe to
+ # just ignore it, right?
+ pass
+ ourChild.merge_with(otherChild, docnames, env)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+
+ def add_name(self, nestedName: ASTNestedName) -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("add_name:")
+ res = self._add_symbols(nestedName, declaration=None, docname=None, line=None)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ return res
+
+ def add_declaration(self, declaration: ASTDeclaration,
+ docname: str, line: int) -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("add_declaration:")
+ assert declaration is not None
+ assert docname is not None
+ assert line is not None
+ nestedName = declaration.name
+ res = self._add_symbols(nestedName, declaration, docname, line)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ return res
+
+ def find_identifier(self, ident: ASTIdentifier,
+ matchSelf: bool, recurseInAnon: bool, searchInSiblings: bool,
+ ) -> Symbol | None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("find_identifier:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("ident: ", ident)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("searchInSiblings:", searchInSiblings)
+ logger.debug(self.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ Symbol.debug_indent -= 2
+ current = self
+ while current is not None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 2
+ Symbol.debug_print("trying:")
+ logger.debug(current.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ Symbol.debug_indent -= 2
+ if matchSelf and current.ident == ident:
+ return current
+ children = current.children_recurse_anon if recurseInAnon else current._children
+ for s in children:
+ if s.ident == ident:
+ return s
+ if not searchInSiblings:
+ break
+ current = current.siblingAbove
+ return None
+
+ def direct_lookup(self, key: LookupKey) -> Symbol | None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("direct_lookup:")
+ Symbol.debug_indent += 1
+ s = self
+ for name, id_ in key.data:
+ res = None
+ for cand in s._children:
+ if cand.ident == name:
+ res = cand
+ break
+ s = res
+ if Symbol.debug_lookup:
+ Symbol.debug_print("name: ", name)
+ Symbol.debug_print("id: ", id_)
+ if s is not None:
+ logger.debug(s.to_string(Symbol.debug_indent + 1, addEndNewline=False))
+ else:
+ Symbol.debug_print("not found")
+ if s is None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return None
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return s
+
+ def find_declaration(self, nestedName: ASTNestedName, typ: str,
+ matchSelf: bool, recurseInAnon: bool) -> Symbol | None:
+ # templateShorthand: missing template parameter lists for templates is ok
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("find_declaration:")
+
+ def onMissingQualifiedSymbol(
+ parentSymbol: Symbol,
+ ident: ASTIdentifier,
+ ) -> Symbol | None:
+ return None
+
+ lookupResult = self._symbol_lookup(nestedName,
+ onMissingQualifiedSymbol,
+ ancestorLookupType=typ,
+ matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ searchInSiblings=False)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ if lookupResult is None:
+ return None
+
+ symbols = list(lookupResult.symbols)
+ if len(symbols) == 0:
+ return None
+ return symbols[0]
+
+ def to_string(self, indent: int, *, addEndNewline: bool = True) -> str:
+ res = [Symbol.debug_indent_string * indent]
+ if not self.parent:
+ res.append('::')
+ else:
+ if self.ident:
+ res.append(str(self.ident))
+ else:
+ res.append(str(self.declaration))
+ if self.declaration:
+ res.append(": ")
+ if self.isRedeclaration:
+ res.append('!!duplicate!! ')
+ res.append(str(self.declaration))
+ if self.docname:
+ res.append('\t(')
+ res.append(self.docname)
+ res.append(')')
+ if addEndNewline:
+ res.append('\n')
+ return ''.join(res)
+
+ def dump(self, indent: int) -> str:
+ return ''.join([self.to_string(indent), *(c.dump(indent + 1) for c in self._children)])
diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py
index 7cfe382..5ffabcf 100644
--- a/sphinx/domains/changeset.py
+++ b/sphinx/domains/changeset.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, NamedTuple, cast
+from typing import TYPE_CHECKING, Any, ClassVar, NamedTuple, cast
from docutils import nodes
@@ -16,19 +16,21 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
versionlabels = {
- 'versionadded': _('New in version %s'),
+ 'versionadded': _('Added in version %s'),
'versionchanged': _('Changed in version %s'),
'deprecated': _('Deprecated since version %s'),
+ 'versionremoved': _('Removed in version %s'),
}
versionlabel_classes = {
'versionadded': 'added',
'versionchanged': 'changed',
'deprecated': 'deprecated',
+ 'versionremoved': 'removed',
}
@@ -45,11 +47,12 @@ class VersionChange(SphinxDirective):
"""
Directive to describe a change/addition/deprecation in a specific version.
"""
+
has_content = True
required_arguments = 1
optional_arguments = 1
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
node = addnodes.versionmodified()
@@ -120,13 +123,13 @@ class ChangeSetDomain(Domain):
version = node['version']
module = self.env.ref_context.get('py:module')
objname = self.env.temp_data.get('object')
- changeset = ChangeSet(node['type'], self.env.docname, node.line,
+ changeset = ChangeSet(node['type'], self.env.docname, node.line, # type: ignore[arg-type]
module, objname, node.astext())
self.changesets.setdefault(version, []).append(changeset)
def clear_doc(self, docname: str) -> None:
for changes in self.changesets.values():
- for changeset in changes[:]:
+ for changeset in changes.copy():
if changeset.docname == docname:
changes.remove(changeset)
@@ -147,11 +150,12 @@ class ChangeSetDomain(Domain):
return self.changesets.get(version, [])
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(ChangeSetDomain)
app.add_directive('deprecated', VersionChange)
app.add_directive('versionadded', VersionChange)
app.add_directive('versionchanged', VersionChange)
+ app.add_directive('versionremoved', VersionChange)
return {
'version': 'builtin',
diff --git a/sphinx/domains/citation.py b/sphinx/domains/citation.py
index d12c0f1..4f00feb 100644
--- a/sphinx/domains/citation.py
+++ b/sphinx/domains/citation.py
@@ -19,6 +19,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -69,7 +70,7 @@ class CitationDomain(Domain):
path = self.env.doc2path(self.citations[label][0])
logger.warning(__('duplicate citation %s, other instance in %s'), label, path,
location=node, type='ref', subtype='citation')
- self.citations[label] = (node['docname'], node['ids'][0], node.line)
+ self.citations[label] = (node['docname'], node['ids'][0], node.line) # type: ignore[assignment]
def note_citation_reference(self, node: pending_xref) -> None:
docnames = self.citation_refs.setdefault(node['reftarget'], set())
@@ -103,6 +104,7 @@ class CitationDomain(Domain):
class CitationDefinitionTransform(SphinxTransform):
"""Mark citation definition labels as not smartquoted."""
+
default_priority = 619
def apply(self, **kwargs: Any) -> None:
@@ -122,6 +124,7 @@ class CitationReferenceTransform(SphinxTransform):
Replace citation references by pending_xref nodes before the default
docutils transform tries to resolve them.
"""
+
default_priority = 619
def apply(self, **kwargs: Any) -> None:
@@ -141,7 +144,7 @@ class CitationReferenceTransform(SphinxTransform):
domain.note_citation_reference(ref)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(CitationDomain)
app.add_transform(CitationDefinitionTransform)
app.add_transform(CitationReferenceTransform)
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
deleted file mode 100644
index 80920c6..0000000
--- a/sphinx/domains/cpp.py
+++ /dev/null
@@ -1,8233 +0,0 @@
-"""The C++ language domain."""
-
-from __future__ import annotations
-
-import re
-from typing import TYPE_CHECKING, Any, Callable, TypeVar
-
-from docutils import nodes
-from docutils.parsers.rst import directives
-
-from sphinx import addnodes
-from sphinx.directives import ObjectDescription
-from sphinx.domains import Domain, ObjType
-from sphinx.errors import NoUri
-from sphinx.locale import _, __
-from sphinx.roles import SphinxRole, XRefRole
-from sphinx.transforms import SphinxTransform
-from sphinx.transforms.post_transforms import ReferencesResolver
-from sphinx.util import logging
-from sphinx.util.cfamily import (
- ASTAttributeList,
- ASTBaseBase,
- ASTBaseParenExprList,
- BaseParser,
- DefinitionError,
- NoOldIdError,
- StringifyTransform,
- UnsupportedMultiCharacterCharLiteral,
- anon_identifier_re,
- binary_literal_re,
- char_literal_re,
- float_literal_re,
- float_literal_suffix_re,
- hex_literal_re,
- identifier_re,
- integer_literal_re,
- integers_literal_suffix_re,
- octal_literal_re,
- verify_description_mode,
-)
-from sphinx.util.docfields import Field, GroupedField
-from sphinx.util.docutils import SphinxDirective
-from sphinx.util.nodes import make_refnode
-
-if TYPE_CHECKING:
- from collections.abc import Generator, Iterator
-
- from docutils.nodes import Element, Node, TextElement, system_message
-
- from sphinx.addnodes import desc_signature, pending_xref
- from sphinx.application import Sphinx
- from sphinx.builders import Builder
- from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
-
-logger = logging.getLogger(__name__)
-T = TypeVar('T')
-
-"""
- Important note on ids
- ----------------------------------------------------------------------------
-
- Multiple id generation schemes are used due to backwards compatibility.
- - v1: 1.2.3 <= version < 1.3
- The style used before the rewrite.
- It is not the actual old code, but a replication of the behaviour.
- - v2: 1.3 <= version < now
- Standardised mangling scheme from
- https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling
- though not completely implemented.
- All versions are generated and attached to elements. The newest is used for
- the index. All of the versions should work as permalinks.
-
-
- Signature Nodes and Tagnames
- ----------------------------------------------------------------------------
-
- Each signature is in a desc_signature node, where all children are
- desc_signature_line nodes. Each of these lines will have the attribute
- 'sphinx_line_type' set to one of the following (prioritized):
- - 'declarator', if the line contains the name of the declared object.
- - 'templateParams', if the line starts a template parameter list,
- - 'templateParams', if the line has template parameters
- Note: such lines might get a new tag in the future.
- - 'templateIntroduction, if the line is on the form 'conceptName{...}'
- No other desc_signature nodes should exist (so far).
-
-
- Grammar
- ----------------------------------------------------------------------------
-
- See https://www.nongnu.org/hcb/ for the grammar,
- and https://github.com/cplusplus/draft/blob/master/source/grammar.tex,
- and https://github.com/cplusplus/concepts-ts
- for the newest grammar.
-
- common grammar things:
- template-declaration ->
- "template" "<" template-parameter-list ">" declaration
- template-parameter-list ->
- template-parameter
- | template-parameter-list "," template-parameter
- template-parameter ->
- type-parameter
- | parameter-declaration # i.e., same as a function argument
-
- type-parameter ->
- "class" "..."[opt] identifier[opt]
- | "class" identifier[opt] "=" type-id
- | "typename" "..."[opt] identifier[opt]
- | "typename" identifier[opt] "=" type-id
- | "template" "<" template-parameter-list ">"
- "class" "..."[opt] identifier[opt]
- | "template" "<" template-parameter-list ">"
- "class" identifier[opt] "=" id-expression
- # also, from C++17 we can have "typename" in template templates
- templateDeclPrefix ->
- "template" "<" template-parameter-list ">"
-
- simple-declaration ->
- attribute-specifier-seq[opt] decl-specifier-seq[opt]
- init-declarator-list[opt] ;
- # Make the semicolon optional.
- # For now: drop the attributes (TODO).
- # Use at most 1 init-declarator.
- -> decl-specifier-seq init-declarator
- -> decl-specifier-seq declarator initializer
-
- decl-specifier ->
- storage-class-specifier ->
- ( "static" (only for member_object and function_object)
- | "extern" (only for member_object and function_object)
- | "register"
- )
- thread_local[opt] (only for member_object)
- (it can also appear before the others)
-
- | type-specifier -> trailing-type-specifier
- | function-specifier -> "inline" | "virtual" | "explicit" (only
- for function_object)
- | "friend" (only for function_object)
- | "constexpr" (only for member_object and function_object)
- trailing-type-specifier ->
- simple-type-specifier
- | elaborated-type-specifier
- | typename-specifier
- | cv-qualifier -> "const" | "volatile"
- stricter grammar for decl-specifier-seq (with everything, each object
- uses a subset):
- visibility storage-class-specifier function-specifier "friend"
- "constexpr" "volatile" "const" trailing-type-specifier
- # where trailing-type-specifier can no be cv-qualifier
- # Inside e.g., template parameters a strict subset is used
- # (see type-specifier-seq)
- trailing-type-specifier ->
- simple-type-specifier ->
- ::[opt] nested-name-specifier[opt] type-name
- | ::[opt] nested-name-specifier "template" simple-template-id
- | "char" | "bool" | etc.
- | decltype-specifier
- | elaborated-type-specifier ->
- class-key attribute-specifier-seq[opt] ::[opt]
- nested-name-specifier[opt] identifier
- | class-key ::[opt] nested-name-specifier[opt] template[opt]
- simple-template-id
- | "enum" ::[opt] nested-name-specifier[opt] identifier
- | typename-specifier ->
- "typename" ::[opt] nested-name-specifier identifier
- | "typename" ::[opt] nested-name-specifier template[opt]
- simple-template-id
- class-key -> "class" | "struct" | "union"
- type-name ->* identifier | simple-template-id
- # ignoring attributes and decltype, and then some left-factoring
- trailing-type-specifier ->
- rest-of-trailing
- ("class" | "struct" | "union" | "typename") rest-of-trailing
- built-in -> "char" | "bool" | etc.
- decltype-specifier
- rest-of-trailing -> (with some simplification)
- "::"[opt] list-of-elements-separated-by-::
- element ->
- "template"[opt] identifier ("<" template-argument-list ">")[opt]
- template-argument-list ->
- template-argument "..."[opt]
- | template-argument-list "," template-argument "..."[opt]
- template-argument ->
- constant-expression
- | type-specifier-seq abstract-declarator
- | id-expression
-
-
- declarator ->
- ptr-declarator
- | noptr-declarator parameters-and-qualifiers trailing-return-type
- ptr-declarator ->
- noptr-declarator
- | ptr-operator ptr-declarator
- noptr-declarator ->
- declarator-id attribute-specifier-seq[opt] ->
- "..."[opt] id-expression
- | rest-of-trailing
- | noptr-declarator parameters-and-qualifiers
- | noptr-declarator "[" constant-expression[opt] "]"
- attribute-specifier-seq[opt]
- | "(" ptr-declarator ")"
- ptr-operator ->
- "*" attribute-specifier-seq[opt] cv-qualifier-seq[opt]
- | "& attribute-specifier-seq[opt]
- | "&&" attribute-specifier-seq[opt]
- | "::"[opt] nested-name-specifier "*" attribute-specifier-seq[opt]
- cv-qualifier-seq[opt]
- # function_object must use a parameters-and-qualifiers, the others may
- # use it (e.g., function pointers)
- parameters-and-qualifiers ->
- "(" parameter-clause ")" attribute-specifier-seq[opt]
- cv-qualifier-seq[opt] ref-qualifier[opt]
- exception-specification[opt]
- ref-qualifier -> "&" | "&&"
- exception-specification ->
- "noexcept" ("(" constant-expression ")")[opt]
- "throw" ("(" type-id-list ")")[opt]
- # TODO: we don't implement attributes
- # member functions can have initializers, but we fold them into here
- memberFunctionInit -> "=" "0"
- # (note: only "0" is allowed as the value, according to the standard,
- # right?)
-
- enum-head ->
- enum-key attribute-specifier-seq[opt] nested-name-specifier[opt]
- identifier enum-base[opt]
- enum-key -> "enum" | "enum struct" | "enum class"
- enum-base ->
- ":" type
- enumerator-definition ->
- identifier
- | identifier "=" constant-expression
-
- We additionally add the possibility for specifying the visibility as the
- first thing.
-
- concept_object:
- goal:
- just a declaration of the name (for now)
-
- grammar: only a single template parameter list, and the nested name
- may not have any template argument lists
-
- "template" "<" template-parameter-list ">"
- nested-name-specifier
-
- type_object:
- goal:
- either a single type (e.g., "MyClass:Something_T" or a typedef-like
- thing (e.g. "Something Something_T" or "int I_arr[]"
- grammar, single type: based on a type in a function parameter, but
- without a name:
- parameter-declaration
- -> attribute-specifier-seq[opt] decl-specifier-seq
- abstract-declarator[opt]
- # Drop the attributes
- -> decl-specifier-seq abstract-declarator[opt]
- grammar, typedef-like: no initilizer
- decl-specifier-seq declarator
- Can start with a templateDeclPrefix.
-
- member_object:
- goal: as a type_object which must have a declarator, and optionally
- with a initializer
- grammar:
- decl-specifier-seq declarator initializer
- Can start with a templateDeclPrefix.
-
- function_object:
- goal: a function declaration, TODO: what about templates? for now: skip
- grammar: no initializer
- decl-specifier-seq declarator
- Can start with a templateDeclPrefix.
-
- class_object:
- goal: a class declaration, but with specification of a base class
- grammar:
- attribute-specifier-seq[opt]
- nested-name "final"[opt] (":" base-specifier-list)[opt]
- base-specifier-list ->
- base-specifier "..."[opt]
- | base-specifier-list, base-specifier "..."[opt]
- base-specifier ->
- base-type-specifier
- | "virtual" access-spe"cifier[opt] base-type-specifier
- | access-specifier[opt] "virtual"[opt] base-type-specifier
- Can start with a templateDeclPrefix.
-
- enum_object:
- goal: an unscoped enum or a scoped enum, optionally with the underlying
- type specified
- grammar:
- ("class" | "struct")[opt] visibility[opt]
- attribute-specifier-seq[opt] nested-name (":" type)[opt]
- enumerator_object:
- goal: an element in a scoped or unscoped enum. The name should be
- injected according to the scopedness.
- grammar:
- nested-name ("=" constant-expression)
-
- namespace_object:
- goal: a directive to put all following declarations in a specific scope
- grammar:
- nested-name
-"""
-
-udl_identifier_re = re.compile(r'''
- [a-zA-Z_][a-zA-Z0-9_]*\b # note, no word boundary in the beginning
-''', re.VERBOSE)
-_string_re = re.compile(r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
- r'|"([^"\\]*(?:\\.[^"\\]*)*)")', re.S)
-_visibility_re = re.compile(r'\b(public|private|protected)\b')
-_operator_re = re.compile(r'''
- \[\s*\]
- | \(\s*\)
- | \+\+ | --
- | ->\*? | \,
- | (<<|>>)=? | && | \|\|
- | <=>
- | [!<>=/*%+|&^~-]=?
- | (\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|xor|xor_eq)\b)
-''', re.VERBOSE)
-_fold_operator_re = re.compile(r'''
- ->\* | \.\* | \,
- | (<<|>>)=? | && | \|\|
- | !=
- | [<>=/*%+|&^~-]=?
-''', re.VERBOSE)
-# see https://en.cppreference.com/w/cpp/keyword
-_keywords = [
- 'alignas', 'alignof', 'and', 'and_eq', 'asm', 'auto', 'bitand', 'bitor',
- 'bool', 'break', 'case', 'catch', 'char', 'char8_t', 'char16_t', 'char32_t',
- 'class', 'compl', 'concept', 'const', 'consteval', 'constexpr', 'constinit',
- 'const_cast', 'continue',
- 'decltype', 'default', 'delete', 'do', 'double', 'dynamic_cast', 'else',
- 'enum', 'explicit', 'export', 'extern', 'false', 'float', 'for', 'friend',
- 'goto', 'if', 'inline', 'int', 'long', 'mutable', 'namespace', 'new',
- 'noexcept', 'not', 'not_eq', 'nullptr', 'operator', 'or', 'or_eq',
- 'private', 'protected', 'public', 'register', 'reinterpret_cast',
- 'requires', 'return', 'short', 'signed', 'sizeof', 'static',
- 'static_assert', 'static_cast', 'struct', 'switch', 'template', 'this',
- 'thread_local', 'throw', 'true', 'try', 'typedef', 'typeid', 'typename',
- 'union', 'unsigned', 'using', 'virtual', 'void', 'volatile', 'wchar_t',
- 'while', 'xor', 'xor_eq',
-]
-
-
-_simple_type_specifiers_re = re.compile(r"""
- \b(
- auto|void|bool
- |signed|unsigned
- |short|long
- |char|wchar_t|char(8|16|32)_t
- |int
- |__int(64|128) # extension
- |float|double
- |__float80|_Float64x|__float128|_Float128 # extension
- |_Complex|_Imaginary # extension
- )\b
-""", re.VERBOSE)
-
-_max_id = 4
-_id_prefix = [None, '', '_CPPv2', '_CPPv3', '_CPPv4']
-# Ids are used in lookup keys which are used across pickled files,
-# so when _max_id changes, make sure to update the ENV_VERSION.
-
-# ------------------------------------------------------------------------------
-# Id v1 constants
-# ------------------------------------------------------------------------------
-
-_id_fundamental_v1 = {
- 'char': 'c',
- 'signed char': 'c',
- 'unsigned char': 'C',
- 'int': 'i',
- 'signed int': 'i',
- 'unsigned int': 'U',
- 'long': 'l',
- 'signed long': 'l',
- 'unsigned long': 'L',
- 'bool': 'b',
-}
-_id_shorthands_v1 = {
- 'std::string': 'ss',
- 'std::ostream': 'os',
- 'std::istream': 'is',
- 'std::iostream': 'ios',
- 'std::vector': 'v',
- 'std::map': 'm',
-}
-_id_operator_v1 = {
- 'new': 'new-operator',
- 'new[]': 'new-array-operator',
- 'delete': 'delete-operator',
- 'delete[]': 'delete-array-operator',
- # the arguments will make the difference between unary and binary
- # '+(unary)' : 'ps',
- # '-(unary)' : 'ng',
- # '&(unary)' : 'ad',
- # '*(unary)' : 'de',
- '~': 'inv-operator',
- '+': 'add-operator',
- '-': 'sub-operator',
- '*': 'mul-operator',
- '/': 'div-operator',
- '%': 'mod-operator',
- '&': 'and-operator',
- '|': 'or-operator',
- '^': 'xor-operator',
- '=': 'assign-operator',
- '+=': 'add-assign-operator',
- '-=': 'sub-assign-operator',
- '*=': 'mul-assign-operator',
- '/=': 'div-assign-operator',
- '%=': 'mod-assign-operator',
- '&=': 'and-assign-operator',
- '|=': 'or-assign-operator',
- '^=': 'xor-assign-operator',
- '<<': 'lshift-operator',
- '>>': 'rshift-operator',
- '<<=': 'lshift-assign-operator',
- '>>=': 'rshift-assign-operator',
- '==': 'eq-operator',
- '!=': 'neq-operator',
- '<': 'lt-operator',
- '>': 'gt-operator',
- '<=': 'lte-operator',
- '>=': 'gte-operator',
- '!': 'not-operator',
- '&&': 'sand-operator',
- '||': 'sor-operator',
- '++': 'inc-operator',
- '--': 'dec-operator',
- ',': 'comma-operator',
- '->*': 'pointer-by-pointer-operator',
- '->': 'pointer-operator',
- '()': 'call-operator',
- '[]': 'subscript-operator',
-}
-
-# ------------------------------------------------------------------------------
-# Id v > 1 constants
-# ------------------------------------------------------------------------------
-
-_id_fundamental_v2 = {
- # not all of these are actually parsed as fundamental types, TODO: do that
- 'void': 'v',
- 'bool': 'b',
- 'char': 'c',
- 'signed char': 'a',
- 'unsigned char': 'h',
- 'wchar_t': 'w',
- 'char32_t': 'Di',
- 'char16_t': 'Ds',
- 'char8_t': 'Du',
- 'short': 's',
- 'short int': 's',
- 'signed short': 's',
- 'signed short int': 's',
- 'unsigned short': 't',
- 'unsigned short int': 't',
- 'int': 'i',
- 'signed': 'i',
- 'signed int': 'i',
- 'unsigned': 'j',
- 'unsigned int': 'j',
- 'long': 'l',
- 'long int': 'l',
- 'signed long': 'l',
- 'signed long int': 'l',
- 'unsigned long': 'm',
- 'unsigned long int': 'm',
- 'long long': 'x',
- 'long long int': 'x',
- 'signed long long': 'x',
- 'signed long long int': 'x',
- '__int64': 'x',
- 'unsigned long long': 'y',
- 'unsigned long long int': 'y',
- '__int128': 'n',
- 'signed __int128': 'n',
- 'unsigned __int128': 'o',
- 'float': 'f',
- 'double': 'd',
- 'long double': 'e',
- '__float80': 'e', '_Float64x': 'e',
- '__float128': 'g', '_Float128': 'g',
- '_Complex float': 'Cf',
- '_Complex double': 'Cd',
- '_Complex long double': 'Ce',
- '_Imaginary float': 'f',
- '_Imaginary double': 'd',
- '_Imaginary long double': 'e',
- 'auto': 'Da',
- 'decltype(auto)': 'Dc',
- 'std::nullptr_t': 'Dn',
-}
-_id_operator_v2 = {
- 'new': 'nw',
- 'new[]': 'na',
- 'delete': 'dl',
- 'delete[]': 'da',
- # the arguments will make the difference between unary and binary
- # in operator definitions
- # '+(unary)' : 'ps',
- # '-(unary)' : 'ng',
- # '&(unary)' : 'ad',
- # '*(unary)' : 'de',
- '~': 'co', 'compl': 'co',
- '+': 'pl',
- '-': 'mi',
- '*': 'ml',
- '/': 'dv',
- '%': 'rm',
- '&': 'an', 'bitand': 'an',
- '|': 'or', 'bitor': 'or',
- '^': 'eo', 'xor': 'eo',
- '=': 'aS',
- '+=': 'pL',
- '-=': 'mI',
- '*=': 'mL',
- '/=': 'dV',
- '%=': 'rM',
- '&=': 'aN', 'and_eq': 'aN',
- '|=': 'oR', 'or_eq': 'oR',
- '^=': 'eO', 'xor_eq': 'eO',
- '<<': 'ls',
- '>>': 'rs',
- '<<=': 'lS',
- '>>=': 'rS',
- '==': 'eq',
- '!=': 'ne', 'not_eq': 'ne',
- '<': 'lt',
- '>': 'gt',
- '<=': 'le',
- '>=': 'ge',
- '<=>': 'ss',
- '!': 'nt', 'not': 'nt',
- '&&': 'aa', 'and': 'aa',
- '||': 'oo', 'or': 'oo',
- '++': 'pp',
- '--': 'mm',
- ',': 'cm',
- '->*': 'pm',
- '->': 'pt',
- '()': 'cl',
- '[]': 'ix',
- '.*': 'ds', # this one is not overloadable, but we need it for expressions
- '?': 'qu',
-}
-_id_operator_unary_v2 = {
- '++': 'pp_',
- '--': 'mm_',
- '*': 'de',
- '&': 'ad',
- '+': 'ps',
- '-': 'ng',
- '!': 'nt', 'not': 'nt',
- '~': 'co', 'compl': 'co',
-}
-_id_char_from_prefix: dict[str | None, str] = {
- None: 'c', 'u8': 'c',
- 'u': 'Ds', 'U': 'Di', 'L': 'w',
-}
-# these are ordered by preceedence
-_expression_bin_ops = [
- ['||', 'or'],
- ['&&', 'and'],
- ['|', 'bitor'],
- ['^', 'xor'],
- ['&', 'bitand'],
- ['==', '!=', 'not_eq'],
- ['<=>', '<=', '>=', '<', '>'],
- ['<<', '>>'],
- ['+', '-'],
- ['*', '/', '%'],
- ['.*', '->*'],
-]
-_expression_unary_ops = ["++", "--", "*", "&", "+", "-", "!", "not", "~", "compl"]
-_expression_assignment_ops = ["=", "*=", "/=", "%=", "+=", "-=",
- ">>=", "<<=", "&=", "and_eq", "^=", "|=", "xor_eq", "or_eq"]
-_id_explicit_cast = {
- 'dynamic_cast': 'dc',
- 'static_cast': 'sc',
- 'const_cast': 'cc',
- 'reinterpret_cast': 'rc',
-}
-
-
-class _DuplicateSymbolError(Exception):
- def __init__(self, symbol: Symbol, declaration: ASTDeclaration) -> None:
- assert symbol
- assert declaration
- self.symbol = symbol
- self.declaration = declaration
-
- def __str__(self) -> str:
- return "Internal C++ duplicate symbol error:\n%s" % self.symbol.dump(0)
-
-
-class ASTBase(ASTBaseBase):
- pass
-
-
-# Names
-################################################################################
-
-class ASTIdentifier(ASTBase):
- def __init__(self, identifier: str) -> None:
- assert identifier is not None
- assert len(identifier) != 0
- self.identifier = identifier
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.identifier)
-
- def is_anon(self) -> bool:
- return self.identifier[0] == '@'
-
- def get_id(self, version: int) -> str:
- if self.is_anon() and version < 3:
- raise NoOldIdError
- if version == 1:
- if self.identifier == 'size_t':
- return 's'
- else:
- return self.identifier
- if self.identifier == "std":
- return 'St'
- elif self.identifier[0] == "~":
- # a destructor, just use an arbitrary version of dtors
- return 'D0'
- else:
- if self.is_anon():
- return 'Ut%d_%s' % (len(self.identifier) - 1, self.identifier[1:])
- else:
- return str(len(self.identifier)) + self.identifier
-
- # and this is where we finally make a difference between __str__ and the display string
-
- def __str__(self) -> str:
- return self.identifier
-
- def get_display_string(self) -> str:
- return "[anonymous]" if self.is_anon() else self.identifier
-
- def describe_signature(self, signode: TextElement, mode: str, env: BuildEnvironment,
- prefix: str, templateArgs: str, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.is_anon():
- node = addnodes.desc_sig_name(text="[anonymous]")
- else:
- node = addnodes.desc_sig_name(self.identifier, self.identifier)
- if mode == 'markType':
- targetText = prefix + self.identifier + templateArgs
- pnode = addnodes.pending_xref('', refdomain='cpp',
- reftype='identifier',
- reftarget=targetText, modname=None,
- classname=None)
- pnode['cpp:parent_key'] = symbol.get_lookup_key()
- pnode += node
- signode += pnode
- elif mode == 'lastIsName':
- nameNode = addnodes.desc_name()
- nameNode += node
- signode += nameNode
- elif mode == 'noneIsName':
- signode += node
- elif mode == 'param':
- node['classes'].append('sig-param')
- signode += node
- elif mode == 'udl':
- # the target is 'operator""id' instead of just 'id'
- assert len(prefix) == 0
- assert len(templateArgs) == 0
- assert not self.is_anon()
- targetText = 'operator""' + self.identifier
- pnode = addnodes.pending_xref('', refdomain='cpp',
- reftype='identifier',
- reftarget=targetText, modname=None,
- classname=None)
- pnode['cpp:parent_key'] = symbol.get_lookup_key()
- pnode += node
- signode += pnode
- else:
- raise Exception('Unknown description mode: %s' % mode)
-
-
-class ASTNestedNameElement(ASTBase):
- def __init__(self, identOrOp: ASTIdentifier | ASTOperator,
- templateArgs: ASTTemplateArgs) -> None:
- self.identOrOp = identOrOp
- self.templateArgs = templateArgs
-
- def is_operator(self) -> bool:
- return False
-
- def get_id(self, version: int) -> str:
- res = self.identOrOp.get_id(version)
- if self.templateArgs:
- res += self.templateArgs.get_id(version)
- return res
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = transform(self.identOrOp)
- if self.templateArgs:
- res += transform(self.templateArgs)
- return res
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, prefix: str, symbol: Symbol) -> None:
- tArgs = str(self.templateArgs) if self.templateArgs is not None else ''
- self.identOrOp.describe_signature(signode, mode, env, prefix, tArgs, symbol)
- if self.templateArgs is not None:
- self.templateArgs.describe_signature(signode, 'markType', env, symbol)
-
-
-class ASTNestedName(ASTBase):
- def __init__(self, names: list[ASTNestedNameElement],
- templates: list[bool], rooted: bool) -> None:
- assert len(names) > 0
- self.names = names
- self.templates = templates
- assert len(self.names) == len(self.templates)
- self.rooted = rooted
-
- @property
- def name(self) -> ASTNestedName:
- return self
-
- def num_templates(self) -> int:
- count = 0
- for n in self.names:
- if n.is_operator():
- continue
- if n.templateArgs:
- count += 1
- return count
-
- def get_id(self, version: int, modifiers: str = '') -> str:
- if version == 1:
- tt = str(self)
- if tt in _id_shorthands_v1:
- return _id_shorthands_v1[tt]
- else:
- return '::'.join(n.get_id(version) for n in self.names)
-
- res = []
- if len(self.names) > 1 or len(modifiers) > 0:
- res.append('N')
- res.append(modifiers)
- for n in self.names:
- res.append(n.get_id(version))
- if len(self.names) > 1 or len(modifiers) > 0:
- res.append('E')
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.rooted:
- res.append('')
- for i in range(len(self.names)):
- n = self.names[i]
- if self.templates[i]:
- res.append("template " + transform(n))
- else:
- res.append(transform(n))
- return '::'.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- # just print the name part, with template args, not template params
- if mode == 'noneIsName':
- if self.rooted:
- unreachable = "Can this happen?"
- raise AssertionError(unreachable) # TODO
- signode += nodes.Text('::')
- for i in range(len(self.names)):
- if i != 0:
- unreachable = "Can this happen?"
- raise AssertionError(unreachable) # TODO
- signode += nodes.Text('::blah')
- n = self.names[i]
- if self.templates[i]:
- unreachable = "Can this happen?"
- raise AssertionError(unreachable) # TODO
- signode += nodes.Text("template")
- signode += nodes.Text(" ")
- n.describe_signature(signode, mode, env, '', symbol)
- elif mode == 'param':
- assert not self.rooted, str(self)
- assert len(self.names) == 1
- assert not self.templates[0]
- self.names[0].describe_signature(signode, 'param', env, '', symbol)
- elif mode in ('markType', 'lastIsName', 'markName'):
- # Each element should be a pending xref targeting the complete
- # prefix. however, only the identifier part should be a link, such
- # that template args can be a link as well.
- # For 'lastIsName' we should also prepend template parameter lists.
- templateParams: list[Any] = []
- if mode == 'lastIsName':
- assert symbol is not None
- if symbol.declaration.templatePrefix is not None:
- templateParams = symbol.declaration.templatePrefix.templates
- iTemplateParams = 0
- templateParamsPrefix = ''
- prefix = ''
- first = True
- names = self.names[:-1] if mode == 'lastIsName' else self.names
- # If lastIsName, then wrap all of the prefix in a desc_addname,
- # else append directly to signode.
- # NOTE: Breathe previously relied on the prefix being in the desc_addname node,
- # so it can remove it in inner declarations.
- dest = signode
- if mode == 'lastIsName':
- dest = addnodes.desc_addname()
- if self.rooted:
- prefix += '::'
- if mode == 'lastIsName' and len(names) == 0:
- signode += addnodes.desc_sig_punctuation('::', '::')
- else:
- dest += addnodes.desc_sig_punctuation('::', '::')
- for i in range(len(names)):
- nne = names[i]
- template = self.templates[i]
- if not first:
- dest += addnodes.desc_sig_punctuation('::', '::')
- prefix += '::'
- if template:
- dest += addnodes.desc_sig_keyword('template', 'template')
- dest += addnodes.desc_sig_space()
- first = False
- txt_nne = str(nne)
- if txt_nne != '':
- if nne.templateArgs and iTemplateParams < len(templateParams):
- templateParamsPrefix += str(templateParams[iTemplateParams])
- iTemplateParams += 1
- nne.describe_signature(dest, 'markType',
- env, templateParamsPrefix + prefix, symbol)
- prefix += txt_nne
- if mode == 'lastIsName':
- if len(self.names) > 1:
- dest += addnodes.desc_sig_punctuation('::', '::')
- signode += dest
- if self.templates[-1]:
- signode += addnodes.desc_sig_keyword('template', 'template')
- signode += addnodes.desc_sig_space()
- self.names[-1].describe_signature(signode, mode, env, '', symbol)
- else:
- raise Exception('Unknown description mode: %s' % mode)
-
-
-################################################################################
-# Expressions
-################################################################################
-
-class ASTExpression(ASTBase):
- def get_id(self, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- raise NotImplementedError(repr(self))
-
-
-# Primary expressions
-################################################################################
-
-class ASTLiteral(ASTExpression):
- pass
-
-
-class ASTPointerLiteral(ASTLiteral):
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'nullptr'
-
- def get_id(self, version: int) -> str:
- return 'LDnE'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('nullptr', 'nullptr')
-
-
-class ASTBooleanLiteral(ASTLiteral):
- def __init__(self, value: bool) -> None:
- self.value = value
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.value:
- return 'true'
- else:
- return 'false'
-
- def get_id(self, version: int) -> str:
- if self.value:
- return 'L1E'
- else:
- return 'L0E'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword(str(self), str(self))
-
-
-class ASTNumberLiteral(ASTLiteral):
- def __init__(self, data: str) -> None:
- self.data = data
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return self.data
-
- def get_id(self, version: int) -> str:
- # TODO: floats should be mangled by writing the hex of the binary representation
- return "L%sE" % self.data.replace("'", "")
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_literal_number(self.data, self.data)
-
-
-class ASTStringLiteral(ASTLiteral):
- def __init__(self, data: str) -> None:
- self.data = data
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return self.data
-
- def get_id(self, version: int) -> str:
- # note: the length is not really correct with escaping
- return "LA%d_KcE" % (len(self.data) - 2)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_literal_string(self.data, self.data)
-
-
-class ASTCharLiteral(ASTLiteral):
- def __init__(self, prefix: str, data: str) -> None:
- self.prefix = prefix # may be None when no prefix
- self.data = data
- assert prefix in _id_char_from_prefix
- self.type = _id_char_from_prefix[prefix]
- decoded = data.encode().decode('unicode-escape')
- if len(decoded) == 1:
- self.value = ord(decoded)
- else:
- raise UnsupportedMultiCharacterCharLiteral(decoded)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.prefix is None:
- return "'" + self.data + "'"
- else:
- return self.prefix + "'" + self.data + "'"
-
- def get_id(self, version: int) -> str:
- # TODO: the ID should be have L E around it
- return self.type + str(self.value)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.prefix is not None:
- signode += addnodes.desc_sig_keyword(self.prefix, self.prefix)
- txt = "'" + self.data + "'"
- signode += addnodes.desc_sig_literal_char(txt, txt)
-
-
-class ASTUserDefinedLiteral(ASTLiteral):
- def __init__(self, literal: ASTLiteral, ident: ASTIdentifier):
- self.literal = literal
- self.ident = ident
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.literal) + transform(self.ident)
-
- def get_id(self, version: int) -> str:
- # mangle as if it was a function call: ident(literal)
- return f'clL_Zli{self.ident.get_id(version)}E{self.literal.get_id(version)}E'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.literal.describe_signature(signode, mode, env, symbol)
- self.ident.describe_signature(signode, "udl", env, "", "", symbol)
-
-
-################################################################################
-
-class ASTThisLiteral(ASTExpression):
- def _stringify(self, transform: StringifyTransform) -> str:
- return "this"
-
- def get_id(self, version: int) -> str:
- return "fpT"
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('this', 'this')
-
-
-class ASTFoldExpr(ASTExpression):
- def __init__(self, leftExpr: ASTExpression,
- op: str, rightExpr: ASTExpression) -> None:
- assert leftExpr is not None or rightExpr is not None
- self.leftExpr = leftExpr
- self.op = op
- self.rightExpr = rightExpr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['(']
- if self.leftExpr:
- res.append(transform(self.leftExpr))
- res.append(' ')
- res.append(self.op)
- res.append(' ')
- res.append('...')
- if self.rightExpr:
- res.append(' ')
- res.append(self.op)
- res.append(' ')
- res.append(transform(self.rightExpr))
- res.append(')')
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- assert version >= 3
- if version == 3:
- return str(self)
- # https://github.com/itanium-cxx-abi/cxx-abi/pull/67
- res = []
- if self.leftExpr is None: # (... op expr)
- res.append('fl')
- elif self.rightExpr is None: # (expr op ...)
- res.append('fr')
- else: # (expr op ... op expr)
- # we don't check where the parameter pack is,
- # we just always call this a binary left fold
- res.append('fL')
- res.append(_id_operator_v2[self.op])
- if self.leftExpr:
- res.append(self.leftExpr.get_id(version))
- if self.rightExpr:
- res.append(self.rightExpr.get_id(version))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('(', '(')
- if self.leftExpr:
- self.leftExpr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_operator(self.op, self.op)
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('...', '...')
- if self.rightExpr:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_operator(self.op, self.op)
- signode += addnodes.desc_sig_space()
- self.rightExpr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTParenExpr(ASTExpression):
- def __init__(self, expr: ASTExpression):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '(' + transform(self.expr) + ')'
-
- def get_id(self, version: int) -> str:
- return self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTIdExpression(ASTExpression):
- def __init__(self, name: ASTNestedName):
- # note: this class is basically to cast a nested name as an expression
- self.name = name
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.name)
-
- def get_id(self, version: int) -> str:
- return self.name.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.name.describe_signature(signode, mode, env, symbol)
-
-
-# Postfix expressions
-################################################################################
-
-class ASTPostfixOp(ASTBase):
- def get_id(self, idPrefix: str, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- raise NotImplementedError(repr(self))
-
-
-class ASTPostfixArray(ASTPostfixOp):
- def __init__(self, expr: ASTExpression):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '[' + transform(self.expr) + ']'
-
- def get_id(self, idPrefix: str, version: int) -> str:
- return 'ix' + idPrefix + self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('[', '[')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(']', ']')
-
-
-class ASTPostfixMember(ASTPostfixOp):
- def __init__(self, name: ASTNestedName):
- self.name = name
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '.' + transform(self.name)
-
- def get_id(self, idPrefix: str, version: int) -> str:
- return 'dt' + idPrefix + self.name.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('.', '.')
- self.name.describe_signature(signode, 'noneIsName', env, symbol)
-
-
-class ASTPostfixMemberOfPointer(ASTPostfixOp):
- def __init__(self, name: ASTNestedName):
- self.name = name
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return '->' + transform(self.name)
-
- def get_id(self, idPrefix: str, version: int) -> str:
- return 'pt' + idPrefix + self.name.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_operator('->', '->')
- self.name.describe_signature(signode, 'noneIsName', env, symbol)
-
-
-class ASTPostfixInc(ASTPostfixOp):
- def _stringify(self, transform: StringifyTransform) -> str:
- return '++'
-
- def get_id(self, idPrefix: str, version: int) -> str:
- return 'pp' + idPrefix
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_operator('++', '++')
-
-
-class ASTPostfixDec(ASTPostfixOp):
- def _stringify(self, transform: StringifyTransform) -> str:
- return '--'
-
- def get_id(self, idPrefix: str, version: int) -> str:
- return 'mm' + idPrefix
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_operator('--', '--')
-
-
-class ASTPostfixCallExpr(ASTPostfixOp):
- def __init__(self, lst: ASTParenExprList | ASTBracedInitList) -> None:
- self.lst = lst
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.lst)
-
- def get_id(self, idPrefix: str, version: int) -> str:
- res = ['cl', idPrefix]
- for e in self.lst.exprs:
- res.append(e.get_id(version))
- res.append('E')
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.lst.describe_signature(signode, mode, env, symbol)
-
-
-class ASTPostfixExpr(ASTExpression):
- def __init__(self, prefix: ASTType, postFixes: list[ASTPostfixOp]):
- self.prefix = prefix
- self.postFixes = postFixes
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = [transform(self.prefix)]
- for p in self.postFixes:
- res.append(transform(p))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- id = self.prefix.get_id(version)
- for p in self.postFixes:
- id = p.get_id(id, version)
- return id
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.prefix.describe_signature(signode, mode, env, symbol)
- for p in self.postFixes:
- p.describe_signature(signode, mode, env, symbol)
-
-
-class ASTExplicitCast(ASTExpression):
- def __init__(self, cast: str, typ: ASTType, expr: ASTExpression):
- assert cast in _id_explicit_cast
- self.cast = cast
- self.typ = typ
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = [self.cast]
- res.append('<')
- res.append(transform(self.typ))
- res.append('>(')
- res.append(transform(self.expr))
- res.append(')')
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- return (_id_explicit_cast[self.cast] +
- self.typ.get_id(version) +
- self.expr.get_id(version))
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword(self.cast, self.cast)
- signode += addnodes.desc_sig_punctuation('<', '<')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation('>', '>')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTTypeId(ASTExpression):
- def __init__(self, typeOrExpr: ASTType | ASTExpression, isType: bool):
- self.typeOrExpr = typeOrExpr
- self.isType = isType
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'typeid(' + transform(self.typeOrExpr) + ')'
-
- def get_id(self, version: int) -> str:
- prefix = 'ti' if self.isType else 'te'
- return prefix + self.typeOrExpr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('typeid', 'typeid')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typeOrExpr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-# Unary expressions
-################################################################################
-
-class ASTUnaryOpExpr(ASTExpression):
- def __init__(self, op: str, expr: ASTExpression):
- self.op = op
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.op[0] in 'cn':
- return self.op + " " + transform(self.expr)
- else:
- return self.op + transform(self.expr)
-
- def get_id(self, version: int) -> str:
- return _id_operator_unary_v2[self.op] + self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.op[0] in 'cn':
- signode += addnodes.desc_sig_keyword(self.op, self.op)
- signode += addnodes.desc_sig_space()
- else:
- signode += addnodes.desc_sig_operator(self.op, self.op)
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTSizeofParamPack(ASTExpression):
- def __init__(self, identifier: ASTIdentifier):
- self.identifier = identifier
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "sizeof...(" + transform(self.identifier) + ")"
-
- def get_id(self, version: int) -> str:
- return 'sZ' + self.identifier.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
- signode += addnodes.desc_sig_punctuation('...', '...')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.identifier.describe_signature(signode, 'markType', env,
- symbol=symbol, prefix="", templateArgs="")
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTSizeofType(ASTExpression):
- def __init__(self, typ: ASTType):
- self.typ = typ
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "sizeof(" + transform(self.typ) + ")"
-
- def get_id(self, version: int) -> str:
- return 'st' + self.typ.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTSizeofExpr(ASTExpression):
- def __init__(self, expr: ASTExpression):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "sizeof " + transform(self.expr)
-
- def get_id(self, version: int) -> str:
- return 'sz' + self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
- signode += addnodes.desc_sig_space()
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTAlignofExpr(ASTExpression):
- def __init__(self, typ: ASTType):
- self.typ = typ
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return "alignof(" + transform(self.typ) + ")"
-
- def get_id(self, version: int) -> str:
- return 'at' + self.typ.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('alignof', 'alignof')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTNoexceptExpr(ASTExpression):
- def __init__(self, expr: ASTExpression):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'noexcept(' + transform(self.expr) + ')'
-
- def get_id(self, version: int) -> str:
- return 'nx' + self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('noexcept', 'noexcept')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTNewExpr(ASTExpression):
- def __init__(self, rooted: bool, isNewTypeId: bool, typ: ASTType,
- initList: ASTParenExprList | ASTBracedInitList) -> None:
- self.rooted = rooted
- self.isNewTypeId = isNewTypeId
- self.typ = typ
- self.initList = initList
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.rooted:
- res.append('::')
- res.append('new ')
- # TODO: placement
- if self.isNewTypeId:
- res.append(transform(self.typ))
- else:
- raise AssertionError
- if self.initList is not None:
- res.append(transform(self.initList))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- # the array part will be in the type mangling, so na is not used
- res = ['nw']
- # TODO: placement
- res.append('_')
- res.append(self.typ.get_id(version))
- if self.initList is not None:
- res.append(self.initList.get_id(version))
- else:
- res.append('E')
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.rooted:
- signode += addnodes.desc_sig_punctuation('::', '::')
- signode += addnodes.desc_sig_keyword('new', 'new')
- signode += addnodes.desc_sig_space()
- # TODO: placement
- if self.isNewTypeId:
- self.typ.describe_signature(signode, mode, env, symbol)
- else:
- raise AssertionError
- if self.initList is not None:
- self.initList.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeleteExpr(ASTExpression):
- def __init__(self, rooted: bool, array: bool, expr: ASTExpression):
- self.rooted = rooted
- self.array = array
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.rooted:
- res.append('::')
- res.append('delete ')
- if self.array:
- res.append('[] ')
- res.append(transform(self.expr))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- if self.array:
- id = "da"
- else:
- id = "dl"
- return id + self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.rooted:
- signode += addnodes.desc_sig_punctuation('::', '::')
- signode += addnodes.desc_sig_keyword('delete', 'delete')
- signode += addnodes.desc_sig_space()
- if self.array:
- signode += addnodes.desc_sig_punctuation('[]', '[]')
- signode += addnodes.desc_sig_space()
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-# Other expressions
-################################################################################
-
-class ASTCastExpr(ASTExpression):
- def __init__(self, typ: ASTType, expr: ASTExpression):
- self.typ = typ
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['(']
- res.append(transform(self.typ))
- res.append(')')
- res.append(transform(self.expr))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- return 'cv' + self.typ.get_id(version) + self.expr.get_id(version)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.typ.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTBinOpExpr(ASTExpression):
- def __init__(self, exprs: list[ASTExpression], ops: list[str]):
- assert len(exprs) > 0
- assert len(exprs) == len(ops) + 1
- self.exprs = exprs
- self.ops = ops
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.exprs[0]))
- for i in range(1, len(self.exprs)):
- res.append(' ')
- res.append(self.ops[i - 1])
- res.append(' ')
- res.append(transform(self.exprs[i]))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- assert version >= 2
- res = []
- for i in range(len(self.ops)):
- res.append(_id_operator_v2[self.ops[i]])
- res.append(self.exprs[i].get_id(version))
- res.append(self.exprs[-1].get_id(version))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.exprs[0].describe_signature(signode, mode, env, symbol)
- for i in range(1, len(self.exprs)):
- signode += addnodes.desc_sig_space()
- op = self.ops[i - 1]
- if ord(op[0]) >= ord('a') and ord(op[0]) <= ord('z'):
- signode += addnodes.desc_sig_keyword(op, op)
- else:
- signode += addnodes.desc_sig_operator(op, op)
- signode += addnodes.desc_sig_space()
- self.exprs[i].describe_signature(signode, mode, env, symbol)
-
-
-class ASTConditionalExpr(ASTExpression):
- def __init__(self, ifExpr: ASTExpression, thenExpr: ASTExpression,
- elseExpr: ASTExpression):
- self.ifExpr = ifExpr
- self.thenExpr = thenExpr
- self.elseExpr = elseExpr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.ifExpr))
- res.append(' ? ')
- res.append(transform(self.thenExpr))
- res.append(' : ')
- res.append(transform(self.elseExpr))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- assert version >= 2
- res = []
- res.append(_id_operator_v2['?'])
- res.append(self.ifExpr.get_id(version))
- res.append(self.thenExpr.get_id(version))
- res.append(self.elseExpr.get_id(version))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.ifExpr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_operator('?', '?')
- signode += addnodes.desc_sig_space()
- self.thenExpr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_operator(':', ':')
- signode += addnodes.desc_sig_space()
- self.elseExpr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTBracedInitList(ASTBase):
- def __init__(self, exprs: list[ASTExpression | ASTBracedInitList],
- trailingComma: bool) -> None:
- self.exprs = exprs
- self.trailingComma = trailingComma
-
- def get_id(self, version: int) -> str:
- return "il%sE" % ''.join(e.get_id(version) for e in self.exprs)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- exprs = ', '.join(transform(e) for e in self.exprs)
- trailingComma = ',' if self.trailingComma else ''
- return f'{{{exprs}{trailingComma}}}'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('{', '{')
- first = True
- for e in self.exprs:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- else:
- first = False
- e.describe_signature(signode, mode, env, symbol)
- if self.trailingComma:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_punctuation('}', '}')
-
-
-class ASTAssignmentExpr(ASTExpression):
- def __init__(self, leftExpr: ASTExpression, op: str,
- rightExpr: ASTExpression | ASTBracedInitList):
- self.leftExpr = leftExpr
- self.op = op
- self.rightExpr = rightExpr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.leftExpr))
- res.append(' ')
- res.append(self.op)
- res.append(' ')
- res.append(transform(self.rightExpr))
- return ''.join(res)
-
- def get_id(self, version: int) -> str:
- # we end up generating the ID from left to right, instead of right to left
- res = []
- res.append(_id_operator_v2[self.op])
- res.append(self.leftExpr.get_id(version))
- res.append(self.rightExpr.get_id(version))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.leftExpr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_space()
- if ord(self.op[0]) >= ord('a') and ord(self.op[0]) <= ord('z'):
- signode += addnodes.desc_sig_keyword(self.op, self.op)
- else:
- signode += addnodes.desc_sig_operator(self.op, self.op)
- signode += addnodes.desc_sig_space()
- self.rightExpr.describe_signature(signode, mode, env, symbol)
-
-
-class ASTCommaExpr(ASTExpression):
- def __init__(self, exprs: list[ASTExpression]):
- assert len(exprs) > 0
- self.exprs = exprs
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return ', '.join(transform(e) for e in self.exprs)
-
- def get_id(self, version: int) -> str:
- id_ = _id_operator_v2[',']
- res = []
- for i in range(len(self.exprs) - 1):
- res.append(id_)
- res.append(self.exprs[i].get_id(version))
- res.append(self.exprs[-1].get_id(version))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.exprs[0].describe_signature(signode, mode, env, symbol)
- for i in range(1, len(self.exprs)):
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- self.exprs[i].describe_signature(signode, mode, env, symbol)
-
-
-class ASTFallbackExpr(ASTExpression):
- def __init__(self, expr: str):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return self.expr
-
- def get_id(self, version: int) -> str:
- return str(self.expr)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += nodes.literal(self.expr, self.expr)
-
-
-################################################################################
-# Types
-################################################################################
-
-# Things for ASTNestedName
-################################################################################
-
-class ASTOperator(ASTBase):
- def is_anon(self) -> bool:
- return False
-
- def is_operator(self) -> bool:
- return True
-
- def get_id(self, version: int) -> str:
- raise NotImplementedError
-
- def _describe_identifier(self, signode: TextElement, identnode: TextElement,
- env: BuildEnvironment, symbol: Symbol) -> None:
- """Render the prefix into signode, and the last part into identnode."""
- raise NotImplementedError
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, prefix: str, templateArgs: str,
- symbol: Symbol) -> None:
- verify_description_mode(mode)
- if mode == 'lastIsName':
- mainName = addnodes.desc_name()
- self._describe_identifier(mainName, mainName, env, symbol)
- signode += mainName
- elif mode == 'markType':
- targetText = prefix + str(self) + templateArgs
- pnode = addnodes.pending_xref('', refdomain='cpp',
- reftype='identifier',
- reftarget=targetText, modname=None,
- classname=None)
- pnode['cpp:parent_key'] = symbol.get_lookup_key()
- # Render the identifier part, but collapse it into a string
- # and make that the a link to this operator.
- # E.g., if it is 'operator SomeType', then 'SomeType' becomes
- # a link to the operator, not to 'SomeType'.
- container = nodes.literal()
- self._describe_identifier(signode, container, env, symbol)
- txt = container.astext()
- pnode += addnodes.desc_name(txt, txt)
- signode += pnode
- else:
- addName = addnodes.desc_addname()
- self._describe_identifier(addName, addName, env, symbol)
- signode += addName
-
-
-class ASTOperatorBuildIn(ASTOperator):
- def __init__(self, op: str) -> None:
- self.op = op
-
- def get_id(self, version: int) -> str:
- if version == 1:
- ids = _id_operator_v1
- if self.op not in ids:
- raise NoOldIdError
- else:
- ids = _id_operator_v2
- if self.op not in ids:
- raise Exception('Internal error: Built-in operator "%s" can not '
- 'be mapped to an id.' % self.op)
- return ids[self.op]
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.op in ('new', 'new[]', 'delete', 'delete[]') or self.op[0] in "abcnox":
- return 'operator ' + self.op
- else:
- return 'operator' + self.op
-
- def _describe_identifier(self, signode: TextElement, identnode: TextElement,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('operator', 'operator')
- if self.op in ('new', 'new[]', 'delete', 'delete[]') or self.op[0] in "abcnox":
- signode += addnodes.desc_sig_space()
- identnode += addnodes.desc_sig_operator(self.op, self.op)
-
-
-class ASTOperatorLiteral(ASTOperator):
- def __init__(self, identifier: ASTIdentifier) -> None:
- self.identifier = identifier
-
- def get_id(self, version: int) -> str:
- if version == 1:
- raise NoOldIdError
- return 'li' + self.identifier.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'operator""' + transform(self.identifier)
-
- def _describe_identifier(self, signode: TextElement, identnode: TextElement,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('operator', 'operator')
- signode += addnodes.desc_sig_literal_string('""', '""')
- self.identifier.describe_signature(identnode, 'markType', env, '', '', symbol)
-
-
-class ASTOperatorType(ASTOperator):
- def __init__(self, type: ASTType) -> None:
- self.type = type
-
- def get_id(self, version: int) -> str:
- if version == 1:
- return 'castto-%s-operator' % self.type.get_id(version)
- else:
- return 'cv' + self.type.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return ''.join(['operator ', transform(self.type)])
-
- def get_name_no_template(self) -> str:
- return str(self)
-
- def _describe_identifier(self, signode: TextElement, identnode: TextElement,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('operator', 'operator')
- signode += addnodes.desc_sig_space()
- self.type.describe_signature(identnode, 'markType', env, symbol)
-
-
-class ASTTemplateArgConstant(ASTBase):
- def __init__(self, value: ASTExpression) -> None:
- self.value = value
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.value)
-
- def get_id(self, version: int) -> str:
- if version == 1:
- return str(self).replace(' ', '-')
- if version == 2:
- return 'X' + str(self) + 'E'
- return 'X' + self.value.get_id(version) + 'E'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.value.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTemplateArgs(ASTBase):
- def __init__(self, args: list[ASTType | ASTTemplateArgConstant],
- packExpansion: bool) -> None:
- assert args is not None
- self.args = args
- self.packExpansion = packExpansion
-
- def get_id(self, version: int) -> str:
- if version == 1:
- res = []
- res.append(':')
- res.append('.'.join(a.get_id(version) for a in self.args))
- res.append(':')
- return ''.join(res)
-
- res = []
- res.append('I')
- if len(self.args) > 0:
- for a in self.args[:-1]:
- res.append(a.get_id(version))
- if self.packExpansion:
- res.append('J')
- res.append(self.args[-1].get_id(version))
- if self.packExpansion:
- res.append('E')
- res.append('E')
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ', '.join(transform(a) for a in self.args)
- if self.packExpansion:
- res += '...'
- return '<' + res + '>'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('<', '<')
- first = True
- for a in self.args:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- first = False
- a.describe_signature(signode, 'markType', env, symbol=symbol)
- if self.packExpansion:
- signode += addnodes.desc_sig_punctuation('...', '...')
- signode += addnodes.desc_sig_punctuation('>', '>')
-
-
-# Main part of declarations
-################################################################################
-
-class ASTTrailingTypeSpec(ASTBase):
- def get_id(self, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- raise NotImplementedError(repr(self))
-
-
-class ASTTrailingTypeSpecFundamental(ASTTrailingTypeSpec):
- def __init__(self, names: list[str], canonNames: list[str]) -> None:
- assert len(names) != 0
- assert len(names) == len(canonNames), (names, canonNames)
- self.names = names
- # the canonical name list is for ID lookup
- self.canonNames = canonNames
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return ' '.join(self.names)
-
- def get_id(self, version: int) -> str:
- if version == 1:
- res = []
- for a in self.canonNames:
- if a in _id_fundamental_v1:
- res.append(_id_fundamental_v1[a])
- else:
- res.append(a)
- return '-'.join(res)
-
- txt = ' '.join(self.canonNames)
- if txt not in _id_fundamental_v2:
- raise Exception(
- 'Semi-internal error: Fundamental type "%s" can not be mapped '
- 'to an ID. Is it a true fundamental type? If not so, the '
- 'parser should have rejected it.' % txt)
- return _id_fundamental_v2[txt]
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- first = True
- for n in self.names:
- if not first:
- signode += addnodes.desc_sig_space()
- else:
- first = False
- signode += addnodes.desc_sig_keyword_type(n, n)
-
-
-class ASTTrailingTypeSpecDecltypeAuto(ASTTrailingTypeSpec):
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'decltype(auto)'
-
- def get_id(self, version: int) -> str:
- if version == 1:
- raise NoOldIdError
- return 'Dc'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('decltype', 'decltype')
- signode += addnodes.desc_sig_punctuation('(', '(')
- signode += addnodes.desc_sig_keyword('auto', 'auto')
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTTrailingTypeSpecDecltype(ASTTrailingTypeSpec):
- def __init__(self, expr: ASTExpression):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'decltype(' + transform(self.expr) + ')'
-
- def get_id(self, version: int) -> str:
- if version == 1:
- raise NoOldIdError
- return 'DT' + self.expr.get_id(version) + "E"
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('decltype', 'decltype')
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTTrailingTypeSpecName(ASTTrailingTypeSpec):
- def __init__(self, prefix: str, nestedName: ASTNestedName,
- placeholderType: str | None) -> None:
- self.prefix = prefix
- self.nestedName = nestedName
- self.placeholderType = placeholderType
-
- @property
- def name(self) -> ASTNestedName:
- return self.nestedName
-
- def get_id(self, version: int) -> str:
- return self.nestedName.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.prefix:
- res.append(self.prefix)
- res.append(' ')
- res.append(transform(self.nestedName))
- if self.placeholderType is not None:
- res.append(' ')
- res.append(self.placeholderType)
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.prefix:
- signode += addnodes.desc_sig_keyword(self.prefix, self.prefix)
- signode += addnodes.desc_sig_space()
- self.nestedName.describe_signature(signode, mode, env, symbol=symbol)
- if self.placeholderType is not None:
- signode += addnodes.desc_sig_space()
- if self.placeholderType == 'auto':
- signode += addnodes.desc_sig_keyword('auto', 'auto')
- elif self.placeholderType == 'decltype(auto)':
- signode += addnodes.desc_sig_keyword('decltype', 'decltype')
- signode += addnodes.desc_sig_punctuation('(', '(')
- signode += addnodes.desc_sig_keyword('auto', 'auto')
- signode += addnodes.desc_sig_punctuation(')', ')')
- else:
- raise AssertionError(self.placeholderType)
-
-
-class ASTFunctionParameter(ASTBase):
- def __init__(self, arg: ASTTypeWithInit | ASTTemplateParamConstrainedTypeWithInit,
- ellipsis: bool = False) -> None:
- self.arg = arg
- self.ellipsis = ellipsis
-
- def get_id(
- self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
- ) -> str:
- # this is not part of the normal name mangling in C++
- if symbol:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=False)
- # else, do the usual
- if self.ellipsis:
- return 'z'
- else:
- return self.arg.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.ellipsis:
- return '...'
- else:
- return transform(self.arg)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.ellipsis:
- signode += addnodes.desc_sig_punctuation('...', '...')
- else:
- self.arg.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTNoexceptSpec(ASTBase):
- def __init__(self, expr: ASTExpression | None):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.expr:
- return 'noexcept(' + transform(self.expr) + ')'
- return 'noexcept'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('noexcept', 'noexcept')
- if self.expr:
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, 'markType', env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTParametersQualifiers(ASTBase):
- def __init__(self, args: list[ASTFunctionParameter], volatile: bool, const: bool,
- refQual: str | None, exceptionSpec: ASTNoexceptSpec,
- trailingReturn: ASTType,
- override: bool, final: bool, attrs: ASTAttributeList,
- initializer: str | None) -> None:
- self.args = args
- self.volatile = volatile
- self.const = const
- self.refQual = refQual
- self.exceptionSpec = exceptionSpec
- self.trailingReturn = trailingReturn
- self.override = override
- self.final = final
- self.attrs = attrs
- self.initializer = initializer
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.args
-
- def get_modifiers_id(self, version: int) -> str:
- res = []
- if self.volatile:
- res.append('V')
- if self.const:
- if version == 1:
- res.append('C')
- else:
- res.append('K')
- if self.refQual == '&&':
- res.append('O')
- elif self.refQual == '&':
- res.append('R')
- return ''.join(res)
-
- def get_param_id(self, version: int) -> str:
- if version == 1:
- if len(self.args) == 0:
- return ''
- else:
- return '__' + '.'.join(a.get_id(version) for a in self.args)
- if len(self.args) == 0:
- return 'v'
- else:
- return ''.join(a.get_id(version) for a in self.args)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append('(')
- first = True
- for a in self.args:
- if not first:
- res.append(', ')
- first = False
- res.append(str(a))
- res.append(')')
- if self.volatile:
- res.append(' volatile')
- if self.const:
- res.append(' const')
- if self.refQual:
- res.append(' ')
- res.append(self.refQual)
- if self.exceptionSpec:
- res.append(' ')
- res.append(transform(self.exceptionSpec))
- if self.trailingReturn:
- res.append(' -> ')
- res.append(transform(self.trailingReturn))
- if self.final:
- res.append(' final')
- if self.override:
- res.append(' override')
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.attrs))
- if self.initializer:
- res.append(' = ')
- res.append(self.initializer)
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- multi_line_parameter_list = False
- test_node: Element = signode
- while test_node.parent:
- if not isinstance(test_node, addnodes.desc_signature):
- test_node = test_node.parent
- continue
- multi_line_parameter_list = test_node.get('multi_line_parameter_list', False)
- break
-
- # only use the desc_parameterlist for the outer list, not for inner lists
- if mode == 'lastIsName':
- paramlist = addnodes.desc_parameterlist()
- paramlist['multi_line_parameter_list'] = multi_line_parameter_list
- for arg in self.args:
- param = addnodes.desc_parameter('', '', noemph=True)
- arg.describe_signature(param, 'param', env, symbol=symbol)
- paramlist += param
- signode += paramlist
- else:
- signode += addnodes.desc_sig_punctuation('(', '(')
- first = True
- for arg in self.args:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- first = False
- arg.describe_signature(signode, 'markType', env, symbol=symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
- def _add_anno(signode: TextElement, text: str) -> None:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_keyword(text, text)
-
- if self.volatile:
- _add_anno(signode, 'volatile')
- if self.const:
- _add_anno(signode, 'const')
- if self.refQual:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation(self.refQual, self.refQual)
- if self.exceptionSpec:
- signode += addnodes.desc_sig_space()
- self.exceptionSpec.describe_signature(signode, mode, env, symbol)
- if self.trailingReturn:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_operator('->', '->')
- signode += addnodes.desc_sig_space()
- self.trailingReturn.describe_signature(signode, mode, env, symbol)
- if self.final:
- _add_anno(signode, 'final')
- if self.override:
- _add_anno(signode, 'override')
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.attrs.describe_signature(signode)
- if self.initializer:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('=', '=')
- signode += addnodes.desc_sig_space()
- assert self.initializer in ('0', 'delete', 'default')
- if self.initializer == '0':
- signode += addnodes.desc_sig_literal_number('0', '0')
- else:
- signode += addnodes.desc_sig_keyword(self.initializer, self.initializer)
-
-
-class ASTExplicitSpec(ASTBase):
- def __init__(self, expr: ASTExpression | None) -> None:
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['explicit']
- if self.expr is not None:
- res.append('(')
- res.append(transform(self.expr))
- res.append(')')
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('explicit', 'explicit')
- if self.expr is not None:
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.expr.describe_signature(signode, 'markType', env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTDeclSpecsSimple(ASTBase):
- def __init__(self, storage: str, threadLocal: bool, inline: bool, virtual: bool,
- explicitSpec: ASTExplicitSpec | None,
- consteval: bool, constexpr: bool, constinit: bool,
- volatile: bool, const: bool, friend: bool,
- attrs: ASTAttributeList) -> None:
- self.storage = storage
- self.threadLocal = threadLocal
- self.inline = inline
- self.virtual = virtual
- self.explicitSpec = explicitSpec
- self.consteval = consteval
- self.constexpr = constexpr
- self.constinit = constinit
- self.volatile = volatile
- self.const = const
- self.friend = friend
- self.attrs = attrs
-
- def mergeWith(self, other: ASTDeclSpecsSimple) -> ASTDeclSpecsSimple:
- if not other:
- return self
- return ASTDeclSpecsSimple(self.storage or other.storage,
- self.threadLocal or other.threadLocal,
- self.inline or other.inline,
- self.virtual or other.virtual,
- self.explicitSpec or other.explicitSpec,
- self.consteval or other.consteval,
- self.constexpr or other.constexpr,
- self.constinit or other.constinit,
- self.volatile or other.volatile,
- self.const or other.const,
- self.friend or other.friend,
- self.attrs + other.attrs)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res: list[str] = []
- if len(self.attrs) != 0:
- res.append(transform(self.attrs))
- if self.storage:
- res.append(self.storage)
- if self.threadLocal:
- res.append('thread_local')
- if self.inline:
- res.append('inline')
- if self.friend:
- res.append('friend')
- if self.virtual:
- res.append('virtual')
- if self.explicitSpec:
- res.append(transform(self.explicitSpec))
- if self.consteval:
- res.append('consteval')
- if self.constexpr:
- res.append('constexpr')
- if self.constinit:
- res.append('constinit')
- if self.volatile:
- res.append('volatile')
- if self.const:
- res.append('const')
- return ' '.join(res)
-
- def describe_signature(self, signode: TextElement,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.attrs.describe_signature(signode)
- addSpace = len(self.attrs) != 0
-
- def _add(signode: TextElement, text: str) -> bool:
- if addSpace:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_keyword(text, text)
- return True
-
- if self.storage:
- addSpace = _add(signode, self.storage)
- if self.threadLocal:
- addSpace = _add(signode, 'thread_local')
- if self.inline:
- addSpace = _add(signode, 'inline')
- if self.friend:
- addSpace = _add(signode, 'friend')
- if self.virtual:
- addSpace = _add(signode, 'virtual')
- if self.explicitSpec:
- if addSpace:
- signode += addnodes.desc_sig_space()
- self.explicitSpec.describe_signature(signode, env, symbol)
- addSpace = True
- if self.consteval:
- addSpace = _add(signode, 'consteval')
- if self.constexpr:
- addSpace = _add(signode, 'constexpr')
- if self.constinit:
- addSpace = _add(signode, 'constinit')
- if self.volatile:
- addSpace = _add(signode, 'volatile')
- if self.const:
- addSpace = _add(signode, 'const')
-
-
-class ASTDeclSpecs(ASTBase):
- def __init__(self, outer: str,
- leftSpecs: ASTDeclSpecsSimple, rightSpecs: ASTDeclSpecsSimple,
- trailing: ASTTrailingTypeSpec) -> None:
- # leftSpecs and rightSpecs are used for output
- # allSpecs are used for id generation
- self.outer = outer
- self.leftSpecs = leftSpecs
- self.rightSpecs = rightSpecs
- self.allSpecs = self.leftSpecs.mergeWith(self.rightSpecs)
- self.trailingTypeSpec = trailing
-
- def get_id(self, version: int) -> str:
- if version == 1:
- res = []
- res.append(self.trailingTypeSpec.get_id(version))
- if self.allSpecs.volatile:
- res.append('V')
- if self.allSpecs.const:
- res.append('C')
- return ''.join(res)
- res = []
- if self.allSpecs.volatile:
- res.append('V')
- if self.allSpecs.const:
- res.append('K')
- if self.trailingTypeSpec is not None:
- res.append(self.trailingTypeSpec.get_id(version))
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res: list[str] = []
- l = transform(self.leftSpecs)
- if len(l) > 0:
- res.append(l)
- if self.trailingTypeSpec:
- if len(res) > 0:
- res.append(" ")
- res.append(transform(self.trailingTypeSpec))
- r = str(self.rightSpecs)
- if len(r) > 0:
- if len(res) > 0:
- res.append(" ")
- res.append(r)
- return "".join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- numChildren = len(signode)
- self.leftSpecs.describe_signature(signode, env, symbol)
- addSpace = len(signode) != numChildren
-
- if self.trailingTypeSpec:
- if addSpace:
- signode += addnodes.desc_sig_space()
- numChildren = len(signode)
- self.trailingTypeSpec.describe_signature(signode, mode, env,
- symbol=symbol)
- addSpace = len(signode) != numChildren
-
- if len(str(self.rightSpecs)) > 0:
- if addSpace:
- signode += addnodes.desc_sig_space()
- self.rightSpecs.describe_signature(signode, env, symbol)
-
-
-# Declarator
-################################################################################
-
-class ASTArray(ASTBase):
- def __init__(self, size: ASTExpression):
- self.size = size
-
- def _stringify(self, transform: StringifyTransform) -> str:
- if self.size:
- return '[' + transform(self.size) + ']'
- else:
- return '[]'
-
- def get_id(self, version: int) -> str:
- if version == 1:
- return 'A'
- if version == 2:
- if self.size:
- return 'A' + str(self.size) + '_'
- else:
- return 'A_'
- if self.size:
- return 'A' + self.size.get_id(version) + '_'
- else:
- return 'A_'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('[', '[')
- if self.size:
- self.size.describe_signature(signode, 'markType', env, symbol)
- signode += addnodes.desc_sig_punctuation(']', ']')
-
-
-class ASTDeclarator(ASTBase):
- @property
- def name(self) -> ASTNestedName:
- raise NotImplementedError(repr(self))
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- raise NotImplementedError(repr(self))
-
- @property
- def isPack(self) -> bool:
- raise NotImplementedError(repr(self))
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- raise NotImplementedError(repr(self))
-
- @property
- def trailingReturn(self) -> ASTType:
- raise NotImplementedError(repr(self))
-
- def require_space_after_declSpecs(self) -> bool:
- raise NotImplementedError(repr(self))
-
- def get_modifiers_id(self, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def get_param_id(self, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def get_ptr_suffix_id(self, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- raise NotImplementedError(repr(self))
-
- def is_function_type(self) -> bool:
- raise NotImplementedError(repr(self))
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- raise NotImplementedError(repr(self))
-
-
-class ASTDeclaratorNameParamQual(ASTDeclarator):
- def __init__(self, declId: ASTNestedName,
- arrayOps: list[ASTArray],
- paramQual: ASTParametersQualifiers) -> None:
- self.declId = declId
- self.arrayOps = arrayOps
- self.paramQual = paramQual
-
- @property
- def name(self) -> ASTNestedName:
- return self.declId
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.declId = name
-
- @property
- def isPack(self) -> bool:
- return False
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.paramQual.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.paramQual.trailingReturn
-
- # only the modifiers for a function, e.g.,
- def get_modifiers_id(self, version: int) -> str:
- # cv-qualifiers
- if self.paramQual:
- return self.paramQual.get_modifiers_id(version)
- raise Exception("This should only be called on a function: %s" % self)
-
- def get_param_id(self, version: int) -> str: # only the parameters (if any)
- if self.paramQual:
- return self.paramQual.get_param_id(version)
- else:
- return ''
-
- def get_ptr_suffix_id(self, version: int) -> str: # only the array specifiers
- return ''.join(a.get_id(version) for a in self.arrayOps)
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- assert version >= 2
- res = []
- # TODO: can we actually have both array ops and paramQual?
- res.append(self.get_ptr_suffix_id(version))
- if self.paramQual:
- res.append(self.get_modifiers_id(version))
- res.append('F')
- res.append(returnTypeId)
- res.append(self.get_param_id(version))
- res.append('E')
- else:
- res.append(returnTypeId)
- return ''.join(res)
-
- # ------------------------------------------------------------------------
-
- def require_space_after_declSpecs(self) -> bool:
- return self.declId is not None
-
- def is_function_type(self) -> bool:
- return self.paramQual is not None
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.declId:
- res.append(transform(self.declId))
- for op in self.arrayOps:
- res.append(transform(op))
- if self.paramQual:
- res.append(transform(self.paramQual))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.declId:
- self.declId.describe_signature(signode, mode, env, symbol)
- for op in self.arrayOps:
- op.describe_signature(signode, mode, env, symbol)
- if self.paramQual:
- self.paramQual.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorNameBitField(ASTDeclarator):
- def __init__(self, declId: ASTNestedName, size: ASTExpression):
- self.declId = declId
- self.size = size
-
- @property
- def name(self) -> ASTNestedName:
- return self.declId
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.declId = name
-
- def get_param_id(self, version: int) -> str: # only the parameters (if any)
- return ''
-
- def get_ptr_suffix_id(self, version: int) -> str: # only the array specifiers
- return ''
-
- # ------------------------------------------------------------------------
-
- def require_space_after_declSpecs(self) -> bool:
- return self.declId is not None
-
- def is_function_type(self) -> bool:
- return False
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.declId:
- res.append(transform(self.declId))
- res.append(" : ")
- res.append(transform(self.size))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.declId:
- self.declId.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation(':', ':')
- signode += addnodes.desc_sig_space()
- self.size.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorPtr(ASTDeclarator):
- def __init__(self, next: ASTDeclarator, volatile: bool, const: bool,
- attrs: ASTAttributeList) -> None:
- assert next
- self.next = next
- self.volatile = volatile
- self.const = const
- self.attrs = attrs
-
- @property
- def name(self) -> ASTNestedName:
- return self.next.name
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.next.name = name
-
- @property
- def isPack(self) -> bool:
- return self.next.isPack
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.next.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.next.trailingReturn
-
- def require_space_after_declSpecs(self) -> bool:
- return self.next.require_space_after_declSpecs()
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['*']
- res.append(transform(self.attrs))
- if len(self.attrs) != 0 and (self.volatile or self.const):
- res.append(' ')
- if self.volatile:
- res.append('volatile')
- if self.const:
- if self.volatile:
- res.append(' ')
- res.append('const')
- if self.const or self.volatile or len(self.attrs) > 0:
- if self.next.require_space_after_declSpecs():
- res.append(' ')
- res.append(transform(self.next))
- return ''.join(res)
-
- def get_modifiers_id(self, version: int) -> str:
- return self.next.get_modifiers_id(version)
-
- def get_param_id(self, version: int) -> str:
- return self.next.get_param_id(version)
-
- def get_ptr_suffix_id(self, version: int) -> str:
- if version == 1:
- res = ['P']
- if self.volatile:
- res.append('V')
- if self.const:
- res.append('C')
- res.append(self.next.get_ptr_suffix_id(version))
- return ''.join(res)
-
- res = [self.next.get_ptr_suffix_id(version)]
- res.append('P')
- if self.volatile:
- res.append('V')
- if self.const:
- res.append('C')
- return ''.join(res)
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- # ReturnType *next, so we are part of the return type of 'next
- res = ['P']
- if self.volatile:
- res.append('V')
- if self.const:
- res.append('C')
- res.append(returnTypeId)
- return self.next.get_type_id(version, returnTypeId=''.join(res))
-
- def is_function_type(self) -> bool:
- return self.next.is_function_type()
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('*', '*')
- self.attrs.describe_signature(signode)
- if len(self.attrs) != 0 and (self.volatile or self.const):
- signode += addnodes.desc_sig_space()
-
- def _add_anno(signode: TextElement, text: str) -> None:
- signode += addnodes.desc_sig_keyword(text, text)
- if self.volatile:
- _add_anno(signode, 'volatile')
- if self.const:
- if self.volatile:
- signode += addnodes.desc_sig_space()
- _add_anno(signode, 'const')
- if self.const or self.volatile or len(self.attrs) > 0:
- if self.next.require_space_after_declSpecs():
- signode += addnodes.desc_sig_space()
- self.next.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorRef(ASTDeclarator):
- def __init__(self, next: ASTDeclarator, attrs: ASTAttributeList) -> None:
- assert next
- self.next = next
- self.attrs = attrs
-
- @property
- def name(self) -> ASTNestedName:
- return self.next.name
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.next.name = name
-
- @property
- def isPack(self) -> bool:
- return self.next.isPack
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.next.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.next.trailingReturn
-
- def require_space_after_declSpecs(self) -> bool:
- return self.next.require_space_after_declSpecs()
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['&']
- res.append(transform(self.attrs))
- if len(self.attrs) != 0 and self.next.require_space_after_declSpecs():
- res.append(' ')
- res.append(transform(self.next))
- return ''.join(res)
-
- def get_modifiers_id(self, version: int) -> str:
- return self.next.get_modifiers_id(version)
-
- def get_param_id(self, version: int) -> str: # only the parameters (if any)
- return self.next.get_param_id(version)
-
- def get_ptr_suffix_id(self, version: int) -> str:
- if version == 1:
- return 'R' + self.next.get_ptr_suffix_id(version)
- else:
- return self.next.get_ptr_suffix_id(version) + 'R'
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- assert version >= 2
- # ReturnType &next, so we are part of the return type of 'next
- return self.next.get_type_id(version, returnTypeId='R' + returnTypeId)
-
- def is_function_type(self) -> bool:
- return self.next.is_function_type()
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('&', '&')
- self.attrs.describe_signature(signode)
- if len(self.attrs) > 0 and self.next.require_space_after_declSpecs():
- signode += addnodes.desc_sig_space()
- self.next.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorParamPack(ASTDeclarator):
- def __init__(self, next: ASTDeclarator) -> None:
- assert next
- self.next = next
-
- @property
- def name(self) -> ASTNestedName:
- return self.next.name
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.next.name = name
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.next.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.next.trailingReturn
-
- @property
- def isPack(self) -> bool:
- return True
-
- def require_space_after_declSpecs(self) -> bool:
- return False
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = transform(self.next)
- if self.next.name:
- res = ' ' + res
- return '...' + res
-
- def get_modifiers_id(self, version: int) -> str:
- return self.next.get_modifiers_id(version)
-
- def get_param_id(self, version: int) -> str: # only the parameters (if any)
- return self.next.get_param_id(version)
-
- def get_ptr_suffix_id(self, version: int) -> str:
- if version == 1:
- return 'Dp' + self.next.get_ptr_suffix_id(version)
- else:
- return self.next.get_ptr_suffix_id(version) + 'Dp'
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- assert version >= 2
- # ReturnType... next, so we are part of the return type of 'next
- return self.next.get_type_id(version, returnTypeId='Dp' + returnTypeId)
-
- def is_function_type(self) -> bool:
- return self.next.is_function_type()
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('...', '...')
- if self.next.name:
- signode += addnodes.desc_sig_space()
- self.next.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorMemPtr(ASTDeclarator):
- def __init__(self, className: ASTNestedName,
- const: bool, volatile: bool, next: ASTDeclarator) -> None:
- assert className
- assert next
- self.className = className
- self.const = const
- self.volatile = volatile
- self.next = next
-
- @property
- def name(self) -> ASTNestedName:
- return self.next.name
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.next.name = name
-
- @property
- def isPack(self):
- return self.next.isPack
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.next.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.next.trailingReturn
-
- def require_space_after_declSpecs(self) -> bool:
- return True
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.className))
- res.append('::*')
- if self.volatile:
- res.append('volatile')
- if self.const:
- if self.volatile:
- res.append(' ')
- res.append('const')
- if self.next.require_space_after_declSpecs():
- res.append(' ')
- res.append(transform(self.next))
- return ''.join(res)
-
- def get_modifiers_id(self, version: int) -> str:
- if version == 1:
- raise NoOldIdError
- return self.next.get_modifiers_id(version)
-
- def get_param_id(self, version: int) -> str: # only the parameters (if any)
- if version == 1:
- raise NoOldIdError
- return self.next.get_param_id(version)
-
- def get_ptr_suffix_id(self, version: int) -> str:
- if version == 1:
- raise NoOldIdError
- raise NotImplementedError
- return self.next.get_ptr_suffix_id(version) + 'Dp'
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- assert version >= 2
- # ReturnType name::* next, so we are part of the return type of next
- nextReturnTypeId = ''
- if self.volatile:
- nextReturnTypeId += 'V'
- if self.const:
- nextReturnTypeId += 'K'
- nextReturnTypeId += 'M'
- nextReturnTypeId += self.className.get_id(version)
- nextReturnTypeId += returnTypeId
- return self.next.get_type_id(version, nextReturnTypeId)
-
- def is_function_type(self) -> bool:
- return self.next.is_function_type()
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.className.describe_signature(signode, 'markType', env, symbol)
- signode += addnodes.desc_sig_punctuation('::', '::')
- signode += addnodes.desc_sig_punctuation('*', '*')
-
- def _add_anno(signode: TextElement, text: str) -> None:
- signode += addnodes.desc_sig_keyword(text, text)
- if self.volatile:
- _add_anno(signode, 'volatile')
- if self.const:
- if self.volatile:
- signode += addnodes.desc_sig_space()
- _add_anno(signode, 'const')
- if self.next.require_space_after_declSpecs():
- signode += addnodes.desc_sig_space()
- self.next.describe_signature(signode, mode, env, symbol)
-
-
-class ASTDeclaratorParen(ASTDeclarator):
- def __init__(self, inner: ASTDeclarator, next: ASTDeclarator) -> None:
- assert inner
- assert next
- self.inner = inner
- self.next = next
- # TODO: we assume the name, params, and qualifiers are in inner
-
- @property
- def name(self) -> ASTNestedName:
- return self.inner.name
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.inner.name = name
-
- @property
- def isPack(self):
- return self.inner.isPack or self.next.isPack
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.inner.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.inner.trailingReturn
-
- def require_space_after_declSpecs(self) -> bool:
- return True
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = ['(']
- res.append(transform(self.inner))
- res.append(')')
- res.append(transform(self.next))
- return ''.join(res)
-
- def get_modifiers_id(self, version: int) -> str:
- return self.inner.get_modifiers_id(version)
-
- def get_param_id(self, version: int) -> str: # only the parameters (if any)
- return self.inner.get_param_id(version)
-
- def get_ptr_suffix_id(self, version: int) -> str:
- if version == 1:
- raise NoOldIdError # TODO: was this implemented before?
- return self.next.get_ptr_suffix_id(version) + \
- self.inner.get_ptr_suffix_id(version)
- return self.inner.get_ptr_suffix_id(version) + \
- self.next.get_ptr_suffix_id(version)
-
- def get_type_id(self, version: int, returnTypeId: str) -> str:
- assert version >= 2
- # ReturnType (inner)next, so 'inner' returns everything outside
- nextId = self.next.get_type_id(version, returnTypeId)
- return self.inner.get_type_id(version, returnTypeId=nextId)
-
- def is_function_type(self) -> bool:
- return self.inner.is_function_type()
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('(', '(')
- self.inner.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
- self.next.describe_signature(signode, "noneIsName", env, symbol)
-
-
-# Type and initializer stuff
-##############################################################################################
-
-class ASTPackExpansionExpr(ASTExpression):
- def __init__(self, expr: ASTExpression | ASTBracedInitList):
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.expr) + '...'
-
- def get_id(self, version: int) -> str:
- id = self.expr.get_id(version)
- return 'sp' + id
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.expr.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation('...', '...')
-
-
-class ASTParenExprList(ASTBaseParenExprList):
- def __init__(self, exprs: list[ASTExpression | ASTBracedInitList]) -> None:
- self.exprs = exprs
-
- def get_id(self, version: int) -> str:
- return "pi%sE" % ''.join(e.get_id(version) for e in self.exprs)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- exprs = [transform(e) for e in self.exprs]
- return '(%s)' % ', '.join(exprs)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- signode += addnodes.desc_sig_punctuation('(', '(')
- first = True
- for e in self.exprs:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- else:
- first = False
- e.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation(')', ')')
-
-
-class ASTInitializer(ASTBase):
- def __init__(self, value: ASTExpression | ASTBracedInitList,
- hasAssign: bool = True) -> None:
- self.value = value
- self.hasAssign = hasAssign
-
- def _stringify(self, transform: StringifyTransform) -> str:
- val = transform(self.value)
- if self.hasAssign:
- return ' = ' + val
- else:
- return val
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.hasAssign:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('=', '=')
- signode += addnodes.desc_sig_space()
- self.value.describe_signature(signode, 'markType', env, symbol)
-
-
-class ASTType(ASTBase):
- def __init__(self, declSpecs: ASTDeclSpecs, decl: ASTDeclarator) -> None:
- assert declSpecs
- assert decl
- self.declSpecs = declSpecs
- self.decl = decl
-
- @property
- def name(self) -> ASTNestedName:
- return self.decl.name
-
- @name.setter
- def name(self, name: ASTNestedName) -> None:
- self.decl.name = name
-
- @property
- def isPack(self) -> bool:
- return self.decl.isPack
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- return self.decl.function_params
-
- @property
- def trailingReturn(self) -> ASTType:
- return self.decl.trailingReturn
-
- def get_id(self, version: int, objectType: str | None = None,
- symbol: Symbol | None = None) -> str:
- if version == 1:
- res = []
- if objectType: # needs the name
- if objectType == 'function': # also modifiers
- res.append(symbol.get_full_nested_name().get_id(version))
- res.append(self.decl.get_param_id(version))
- res.append(self.decl.get_modifiers_id(version))
- if (self.declSpecs.leftSpecs.constexpr or
- (self.declSpecs.rightSpecs and
- self.declSpecs.rightSpecs.constexpr)):
- res.append('CE')
- elif objectType == 'type': # just the name
- res.append(symbol.get_full_nested_name().get_id(version))
- else:
- raise AssertionError(objectType)
- else: # only type encoding
- if self.decl.is_function_type():
- raise NoOldIdError
- res.append(self.declSpecs.get_id(version))
- res.append(self.decl.get_ptr_suffix_id(version))
- res.append(self.decl.get_param_id(version))
- return ''.join(res)
- # other versions
- res = []
- if objectType: # needs the name
- if objectType == 'function': # also modifiers
- modifiers = self.decl.get_modifiers_id(version)
- res.append(symbol.get_full_nested_name().get_id(version, modifiers))
- if version >= 4:
- # with templates we need to mangle the return type in as well
- templ = symbol.declaration.templatePrefix
- if templ is not None:
- typeId = self.decl.get_ptr_suffix_id(version)
- if self.trailingReturn:
- returnTypeId = self.trailingReturn.get_id(version)
- else:
- returnTypeId = self.declSpecs.get_id(version)
- res.append(typeId)
- res.append(returnTypeId)
- res.append(self.decl.get_param_id(version))
- elif objectType == 'type': # just the name
- res.append(symbol.get_full_nested_name().get_id(version))
- else:
- raise AssertionError(objectType)
- else: # only type encoding
- # the 'returnType' of a non-function type is simply just the last
- # type, i.e., for 'int*' it is 'int'
- returnTypeId = self.declSpecs.get_id(version)
- typeId = self.decl.get_type_id(version, returnTypeId)
- res.append(typeId)
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- declSpecs = transform(self.declSpecs)
- res.append(declSpecs)
- if self.decl.require_space_after_declSpecs() and len(declSpecs) > 0:
- res.append(' ')
- res.append(transform(self.decl))
- return ''.join(res)
-
- def get_type_declaration_prefix(self) -> str:
- if self.declSpecs.trailingTypeSpec:
- return 'typedef'
- else:
- return 'type'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.declSpecs.describe_signature(signode, 'markType', env, symbol)
- if (self.decl.require_space_after_declSpecs() and
- len(str(self.declSpecs)) > 0):
- signode += addnodes.desc_sig_space()
- # for parameters that don't really declare new names we get 'markType',
- # this should not be propagated, but be 'noneIsName'.
- if mode == 'markType':
- mode = 'noneIsName'
- self.decl.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTemplateParamConstrainedTypeWithInit(ASTBase):
- def __init__(self, type: ASTType, init: ASTType) -> None:
- assert type
- self.type = type
- self.init = init
-
- @property
- def name(self) -> ASTNestedName:
- return self.type.name
-
- @property
- def isPack(self) -> bool:
- return self.type.isPack
-
- def get_id(
- self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
- ) -> str:
- # this is not part of the normal name mangling in C++
- assert version >= 2
- if symbol:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=False)
- else:
- return self.type.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = transform(self.type)
- if self.init:
- res += " = "
- res += transform(self.init)
- return res
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.type.describe_signature(signode, mode, env, symbol)
- if self.init:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('=', '=')
- signode += addnodes.desc_sig_space()
- self.init.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTypeWithInit(ASTBase):
- def __init__(self, type: ASTType, init: ASTInitializer) -> None:
- self.type = type
- self.init = init
-
- @property
- def name(self) -> ASTNestedName:
- return self.type.name
-
- @property
- def isPack(self) -> bool:
- return self.type.isPack
-
- def get_id(self, version: int, objectType: str | None = None,
- symbol: Symbol | None = None) -> str:
- if objectType != 'member':
- return self.type.get_id(version, objectType)
- if version == 1:
- return (symbol.get_full_nested_name().get_id(version) + '__' +
- self.type.get_id(version))
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.type))
- if self.init:
- res.append(transform(self.init))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.type.describe_signature(signode, mode, env, symbol)
- if self.init:
- self.init.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTypeUsing(ASTBase):
- def __init__(self, name: ASTNestedName, type: ASTType) -> None:
- self.name = name
- self.type = type
-
- def get_id(self, version: int, objectType: str | None = None,
- symbol: Symbol | None = None) -> str:
- if version == 1:
- raise NoOldIdError
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.name))
- if self.type:
- res.append(' = ')
- res.append(transform(self.type))
- return ''.join(res)
-
- def get_type_declaration_prefix(self) -> str:
- return 'using'
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.name.describe_signature(signode, mode, env, symbol=symbol)
- if self.type:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('=', '=')
- signode += addnodes.desc_sig_space()
- self.type.describe_signature(signode, 'markType', env, symbol=symbol)
-
-
-# Other declarations
-##############################################################################################
-
-class ASTConcept(ASTBase):
- def __init__(self, nestedName: ASTNestedName, initializer: ASTInitializer) -> None:
- self.nestedName = nestedName
- self.initializer = initializer
-
- @property
- def name(self) -> ASTNestedName:
- return self.nestedName
-
- def get_id(self, version: int, objectType: str | None = None,
- symbol: Symbol | None = None) -> str:
- if version == 1:
- raise NoOldIdError
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = transform(self.nestedName)
- if self.initializer:
- res += transform(self.initializer)
- return res
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.nestedName.describe_signature(signode, mode, env, symbol)
- if self.initializer:
- self.initializer.describe_signature(signode, mode, env, symbol)
-
-
-class ASTBaseClass(ASTBase):
- def __init__(self, name: ASTNestedName, visibility: str,
- virtual: bool, pack: bool) -> None:
- self.name = name
- self.visibility = visibility
- self.virtual = virtual
- self.pack = pack
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.visibility is not None:
- res.append(self.visibility)
- res.append(' ')
- if self.virtual:
- res.append('virtual ')
- res.append(transform(self.name))
- if self.pack:
- res.append('...')
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- if self.visibility is not None:
- signode += addnodes.desc_sig_keyword(self.visibility,
- self.visibility)
- signode += addnodes.desc_sig_space()
- if self.virtual:
- signode += addnodes.desc_sig_keyword('virtual', 'virtual')
- signode += addnodes.desc_sig_space()
- self.name.describe_signature(signode, 'markType', env, symbol=symbol)
- if self.pack:
- signode += addnodes.desc_sig_punctuation('...', '...')
-
-
-class ASTClass(ASTBase):
- def __init__(self, name: ASTNestedName, final: bool, bases: list[ASTBaseClass],
- attrs: ASTAttributeList) -> None:
- self.name = name
- self.final = final
- self.bases = bases
- self.attrs = attrs
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.attrs))
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.name))
- if self.final:
- res.append(' final')
- if len(self.bases) > 0:
- res.append(' : ')
- first = True
- for b in self.bases:
- if not first:
- res.append(', ')
- first = False
- res.append(transform(b))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.attrs.describe_signature(signode)
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.name.describe_signature(signode, mode, env, symbol=symbol)
- if self.final:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_keyword('final', 'final')
- if len(self.bases) > 0:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation(':', ':')
- signode += addnodes.desc_sig_space()
- for b in self.bases:
- b.describe_signature(signode, mode, env, symbol=symbol)
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- signode.pop()
- signode.pop()
-
-
-class ASTUnion(ASTBase):
- def __init__(self, name: ASTNestedName, attrs: ASTAttributeList) -> None:
- self.name = name
- self.attrs = attrs
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- if version == 1:
- raise NoOldIdError
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.attrs))
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.name))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.attrs.describe_signature(signode)
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.name.describe_signature(signode, mode, env, symbol=symbol)
-
-
-class ASTEnum(ASTBase):
- def __init__(self, name: ASTNestedName, scoped: str, underlyingType: ASTType,
- attrs: ASTAttributeList) -> None:
- self.name = name
- self.scoped = scoped
- self.underlyingType = underlyingType
- self.attrs = attrs
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- if version == 1:
- raise NoOldIdError
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.scoped:
- res.append(self.scoped)
- res.append(' ')
- res.append(transform(self.attrs))
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.name))
- if self.underlyingType:
- res.append(' : ')
- res.append(transform(self.underlyingType))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- # self.scoped has been done by the CPPEnumObject
- self.attrs.describe_signature(signode)
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.name.describe_signature(signode, mode, env, symbol=symbol)
- if self.underlyingType:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation(':', ':')
- signode += addnodes.desc_sig_space()
- self.underlyingType.describe_signature(signode, 'noneIsName',
- env, symbol=symbol)
-
-
-class ASTEnumerator(ASTBase):
- def __init__(self, name: ASTNestedName, init: ASTInitializer | None,
- attrs: ASTAttributeList) -> None:
- self.name = name
- self.init = init
- self.attrs = attrs
-
- def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
- if version == 1:
- raise NoOldIdError
- return symbol.get_full_nested_name().get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.name))
- if len(self.attrs) != 0:
- res.append(' ')
- res.append(transform(self.attrs))
- if self.init:
- res.append(transform(self.init))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- verify_description_mode(mode)
- self.name.describe_signature(signode, mode, env, symbol)
- if len(self.attrs) != 0:
- signode += addnodes.desc_sig_space()
- self.attrs.describe_signature(signode)
- if self.init:
- self.init.describe_signature(signode, 'markType', env, symbol)
-
-
-################################################################################
-# Templates
-################################################################################
-
-# Parameters
-################################################################################
-
-class ASTTemplateParam(ASTBase):
- def get_identifier(self) -> ASTIdentifier:
- raise NotImplementedError(repr(self))
-
- def get_id(self, version: int) -> str:
- raise NotImplementedError(repr(self))
-
- def describe_signature(self, parentNode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- raise NotImplementedError(repr(self))
-
- @property
- def isPack(self) -> bool:
- raise NotImplementedError(repr(self))
-
- @property
- def name(self) -> ASTNestedName:
- raise NotImplementedError(repr(self))
-
-
-class ASTTemplateKeyParamPackIdDefault(ASTTemplateParam):
- def __init__(self, key: str, identifier: ASTIdentifier,
- parameterPack: bool, default: ASTType) -> None:
- assert key
- if parameterPack:
- assert default is None
- self.key = key
- self.identifier = identifier
- self.parameterPack = parameterPack
- self.default = default
-
- def get_identifier(self) -> ASTIdentifier:
- return self.identifier
-
- def get_id(self, version: int) -> str:
- assert version >= 2
- # this is not part of the normal name mangling in C++
- res = []
- if self.parameterPack:
- res.append('Dp')
- else:
- res.append('0') # we need to put something
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = [self.key]
- if self.parameterPack:
- if self.identifier:
- res.append(' ')
- res.append('...')
- if self.identifier:
- if not self.parameterPack:
- res.append(' ')
- res.append(transform(self.identifier))
- if self.default:
- res.append(' = ')
- res.append(transform(self.default))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword(self.key, self.key)
- if self.parameterPack:
- if self.identifier:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('...', '...')
- if self.identifier:
- if not self.parameterPack:
- signode += addnodes.desc_sig_space()
- self.identifier.describe_signature(signode, mode, env, '', '', symbol)
- if self.default:
- signode += addnodes.desc_sig_space()
- signode += addnodes.desc_sig_punctuation('=', '=')
- signode += addnodes.desc_sig_space()
- self.default.describe_signature(signode, 'markType', env, symbol)
-
-
-class ASTTemplateParamType(ASTTemplateParam):
- def __init__(self, data: ASTTemplateKeyParamPackIdDefault) -> None:
- assert data
- self.data = data
-
- @property
- def name(self) -> ASTNestedName:
- id = self.get_identifier()
- return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
-
- @property
- def isPack(self) -> bool:
- return self.data.parameterPack
-
- def get_identifier(self) -> ASTIdentifier:
- return self.data.get_identifier()
-
- def get_id(
- self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
- ) -> str:
- # this is not part of the normal name mangling in C++
- assert version >= 2
- if symbol:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=False)
- else:
- return self.data.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.data)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.data.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTemplateParamTemplateType(ASTTemplateParam):
- def __init__(self, nestedParams: ASTTemplateParams,
- data: ASTTemplateKeyParamPackIdDefault) -> None:
- assert nestedParams
- assert data
- self.nestedParams = nestedParams
- self.data = data
-
- @property
- def name(self) -> ASTNestedName:
- id = self.get_identifier()
- return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
-
- @property
- def isPack(self) -> bool:
- return self.data.parameterPack
-
- def get_identifier(self) -> ASTIdentifier:
- return self.data.get_identifier()
-
- def get_id(
- self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
- ) -> str:
- assert version >= 2
- # this is not part of the normal name mangling in C++
- if symbol:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=None)
- else:
- return self.nestedParams.get_id(version) + self.data.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return transform(self.nestedParams) + transform(self.data)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.nestedParams.describe_signature(signode, 'noneIsName', env, symbol)
- signode += addnodes.desc_sig_space()
- self.data.describe_signature(signode, mode, env, symbol)
-
-
-class ASTTemplateParamNonType(ASTTemplateParam):
- def __init__(self,
- param: ASTTypeWithInit | ASTTemplateParamConstrainedTypeWithInit,
- parameterPack: bool = False) -> None:
- assert param
- self.param = param
- self.parameterPack = parameterPack
-
- @property
- def name(self) -> ASTNestedName:
- id = self.get_identifier()
- return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
-
- @property
- def isPack(self) -> bool:
- return self.param.isPack or self.parameterPack
-
- def get_identifier(self) -> ASTIdentifier:
- name = self.param.name
- if name:
- assert len(name.names) == 1
- assert name.names[0].identOrOp
- assert not name.names[0].templateArgs
- res = name.names[0].identOrOp
- assert isinstance(res, ASTIdentifier)
- return res
- else:
- return None
-
- def get_id(
- self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
- ) -> str:
- assert version >= 2
- # this is not part of the normal name mangling in C++
- if symbol:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=None)
- else:
- res = '_'
- if self.parameterPack:
- res += 'Dp'
- return res + self.param.get_id(version)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = transform(self.param)
- if self.parameterPack:
- res += '...'
- return res
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- self.param.describe_signature(signode, mode, env, symbol)
- if self.parameterPack:
- signode += addnodes.desc_sig_punctuation('...', '...')
-
-
-class ASTTemplateParams(ASTBase):
- def __init__(self, params: list[ASTTemplateParam],
- requiresClause: ASTRequiresClause | None) -> None:
- assert params is not None
- self.params = params
- self.requiresClause = requiresClause
-
- def get_id(self, version: int, excludeRequires: bool = False) -> str:
- assert version >= 2
- res = []
- res.append("I")
- for param in self.params:
- res.append(param.get_id(version))
- res.append("E")
- if not excludeRequires and self.requiresClause:
- res.append('IQ')
- res.append(self.requiresClause.expr.get_id(version))
- res.append('E')
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append("template<")
- res.append(", ".join(transform(a) for a in self.params))
- res.append("> ")
- if self.requiresClause is not None:
- res.append(transform(self.requiresClause))
- res.append(" ")
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('template', 'template')
- signode += addnodes.desc_sig_punctuation('<', '<')
- first = True
- for param in self.params:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- first = False
- param.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation('>', '>')
- if self.requiresClause is not None:
- signode += addnodes.desc_sig_space()
- self.requiresClause.describe_signature(signode, mode, env, symbol)
-
- def describe_signature_as_introducer(
- self, parentNode: desc_signature, mode: str, env: BuildEnvironment,
- symbol: Symbol, lineSpec: bool) -> None:
- def makeLine(parentNode: desc_signature) -> addnodes.desc_signature_line:
- signode = addnodes.desc_signature_line()
- parentNode += signode
- signode.sphinx_line_type = 'templateParams'
- return signode
- lineNode = makeLine(parentNode)
- lineNode += addnodes.desc_sig_keyword('template', 'template')
- lineNode += addnodes.desc_sig_punctuation('<', '<')
- first = True
- for param in self.params:
- if not first:
- lineNode += addnodes.desc_sig_punctuation(',', ',')
- lineNode += addnodes.desc_sig_space()
- first = False
- if lineSpec:
- lineNode = makeLine(parentNode)
- param.describe_signature(lineNode, mode, env, symbol)
- if lineSpec and not first:
- lineNode = makeLine(parentNode)
- lineNode += addnodes.desc_sig_punctuation('>', '>')
- if self.requiresClause:
- reqNode = addnodes.desc_signature_line()
- reqNode.sphinx_line_type = 'requiresClause'
- parentNode += reqNode
- self.requiresClause.describe_signature(reqNode, 'markType', env, symbol)
-
-
-# Template introducers
-################################################################################
-
-class ASTTemplateIntroductionParameter(ASTBase):
- def __init__(self, identifier: ASTIdentifier, parameterPack: bool) -> None:
- self.identifier = identifier
- self.parameterPack = parameterPack
-
- @property
- def name(self) -> ASTNestedName:
- id = self.get_identifier()
- return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
-
- @property
- def isPack(self) -> bool:
- return self.parameterPack
-
- def get_identifier(self) -> ASTIdentifier:
- return self.identifier
-
- def get_id(
- self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
- ) -> str:
- assert version >= 2
- # this is not part of the normal name mangling in C++
- if symbol:
- # the anchor will be our parent
- return symbol.parent.declaration.get_id(version, prefixed=None)
- else:
- if self.parameterPack:
- return 'Dp'
- else:
- return '0' # we need to put something
-
- def get_id_as_arg(self, version: int) -> str:
- assert version >= 2
- # used for the implicit requires clause
- res = self.identifier.get_id(version)
- if self.parameterPack:
- return 'sp' + res
- else:
- return res
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.parameterPack:
- res.append('...')
- res.append(transform(self.identifier))
- return ''.join(res)
-
- def describe_signature(self, signode: TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- if self.parameterPack:
- signode += addnodes.desc_sig_punctuation('...', '...')
- self.identifier.describe_signature(signode, mode, env, '', '', symbol)
-
-
-class ASTTemplateIntroduction(ASTBase):
- def __init__(self, concept: ASTNestedName,
- params: list[ASTTemplateIntroductionParameter]) -> None:
- assert len(params) > 0
- self.concept = concept
- self.params = params
-
- def get_id(self, version: int) -> str:
- assert version >= 2
- # first do the same as a normal template parameter list
- res = []
- res.append("I")
- for param in self.params:
- res.append(param.get_id(version))
- res.append("E")
- # let's use X expr E, which is otherwise for constant template args
- res.append("X")
- res.append(self.concept.get_id(version))
- res.append("I")
- for param in self.params:
- res.append(param.get_id_as_arg(version))
- res.append("E")
- res.append("E")
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- res.append(transform(self.concept))
- res.append('{')
- res.append(', '.join(transform(param) for param in self.params))
- res.append('} ')
- return ''.join(res)
-
- def describe_signature_as_introducer(
- self, parentNode: desc_signature, mode: str,
- env: BuildEnvironment, symbol: Symbol, lineSpec: bool) -> None:
- # Note: 'lineSpec' has no effect on template introductions.
- signode = addnodes.desc_signature_line()
- parentNode += signode
- signode.sphinx_line_type = 'templateIntroduction'
- self.concept.describe_signature(signode, 'markType', env, symbol)
- signode += addnodes.desc_sig_punctuation('{', '{')
- first = True
- for param in self.params:
- if not first:
- signode += addnodes.desc_sig_punctuation(',', ',')
- signode += addnodes.desc_sig_space()
- first = False
- param.describe_signature(signode, mode, env, symbol)
- signode += addnodes.desc_sig_punctuation('}', '}')
-
-
-################################################################################
-
-class ASTTemplateDeclarationPrefix(ASTBase):
- def __init__(self,
- templates: list[ASTTemplateParams | ASTTemplateIntroduction]) -> None:
- # templates is None means it's an explicit instantiation of a variable
- self.templates = templates
-
- def get_requires_clause_in_last(self) -> ASTRequiresClause | None:
- if self.templates is None:
- return None
- lastList = self.templates[-1]
- if not isinstance(lastList, ASTTemplateParams):
- return None
- return lastList.requiresClause # which may be None
-
- def get_id_except_requires_clause_in_last(self, version: int) -> str:
- assert version >= 2
- # This is not part of the Itanium ABI mangling system.
- res = []
- lastIndex = len(self.templates) - 1
- for i, t in enumerate(self.templates):
- if isinstance(t, ASTTemplateParams):
- res.append(t.get_id(version, excludeRequires=(i == lastIndex)))
- else:
- res.append(t.get_id(version))
- return ''.join(res)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- for t in self.templates:
- res.append(transform(t))
- return ''.join(res)
-
- def describe_signature(self, signode: desc_signature, mode: str,
- env: BuildEnvironment, symbol: Symbol, lineSpec: bool) -> None:
- verify_description_mode(mode)
- for t in self.templates:
- t.describe_signature_as_introducer(signode, 'lastIsName', env, symbol, lineSpec)
-
-
-class ASTRequiresClause(ASTBase):
- def __init__(self, expr: ASTExpression) -> None:
- self.expr = expr
-
- def _stringify(self, transform: StringifyTransform) -> str:
- return 'requires ' + transform(self.expr)
-
- def describe_signature(self, signode: nodes.TextElement, mode: str,
- env: BuildEnvironment, symbol: Symbol) -> None:
- signode += addnodes.desc_sig_keyword('requires', 'requires')
- signode += addnodes.desc_sig_space()
- self.expr.describe_signature(signode, mode, env, symbol)
-
-
-################################################################################
-################################################################################
-
-class ASTDeclaration(ASTBase):
- def __init__(self, objectType: str, directiveType: str | None = None,
- visibility: str | None = None,
- templatePrefix: ASTTemplateDeclarationPrefix | None = None,
- declaration: Any = None,
- trailingRequiresClause: ASTRequiresClause | None = None,
- semicolon: bool = False) -> None:
- self.objectType = objectType
- self.directiveType = directiveType
- self.visibility = visibility
- self.templatePrefix = templatePrefix
- self.declaration = declaration
- self.trailingRequiresClause = trailingRequiresClause
- self.semicolon = semicolon
-
- self.symbol: Symbol = None
- # set by CPPObject._add_enumerator_to_parent
- self.enumeratorScopedSymbol: Symbol = None
-
- def clone(self) -> ASTDeclaration:
- templatePrefixClone = self.templatePrefix.clone() if self.templatePrefix else None
- trailingRequiresClasueClone = self.trailingRequiresClause.clone() \
- if self.trailingRequiresClause else None
- return ASTDeclaration(self.objectType, self.directiveType, self.visibility,
- templatePrefixClone,
- self.declaration.clone(), trailingRequiresClasueClone,
- self.semicolon)
-
- @property
- def name(self) -> ASTNestedName:
- return self.declaration.name
-
- @property
- def function_params(self) -> list[ASTFunctionParameter]:
- if self.objectType != 'function':
- return None
- return self.declaration.function_params
-
- def get_id(self, version: int, prefixed: bool = True) -> str:
- if version == 1:
- if self.templatePrefix or self.trailingRequiresClause:
- raise NoOldIdError
- if self.objectType == 'enumerator' and self.enumeratorScopedSymbol:
- return self.enumeratorScopedSymbol.declaration.get_id(version)
- return self.declaration.get_id(version, self.objectType, self.symbol)
- # version >= 2
- if self.objectType == 'enumerator' and self.enumeratorScopedSymbol:
- return self.enumeratorScopedSymbol.declaration.get_id(version, prefixed)
- if prefixed:
- res = [_id_prefix[version]]
- else:
- res = []
- # (See also https://github.com/sphinx-doc/sphinx/pull/10286#issuecomment-1168102147)
- # The first implementation of requires clauses only supported a single clause after the
- # template prefix, and no trailing clause. It put the ID after the template parameter
- # list, i.e.,
- # "I" + template_parameter_list_id + "E" + "IQ" + requires_clause_id + "E"
- # but the second implementation associates the requires clause with each list, i.e.,
- # "I" + template_parameter_list_id + "IQ" + requires_clause_id + "E" + "E"
- # To avoid making a new ID version, we make an exception for the last requires clause
- # in the template prefix, and still put it in the end.
- # As we now support trailing requires clauses we add that as if it was a conjunction.
- if self.templatePrefix is not None:
- res.append(self.templatePrefix.get_id_except_requires_clause_in_last(version))
- requiresClauseInLast = self.templatePrefix.get_requires_clause_in_last()
- else:
- requiresClauseInLast = None
-
- if requiresClauseInLast or self.trailingRequiresClause:
- if version < 4:
- raise NoOldIdError
- res.append('IQ')
- if requiresClauseInLast and self.trailingRequiresClause:
- # make a conjunction of them
- res.append('aa')
- if requiresClauseInLast:
- res.append(requiresClauseInLast.expr.get_id(version))
- if self.trailingRequiresClause:
- res.append(self.trailingRequiresClause.expr.get_id(version))
- res.append('E')
- res.append(self.declaration.get_id(version, self.objectType, self.symbol))
- return ''.join(res)
-
- def get_newest_id(self) -> str:
- return self.get_id(_max_id, True)
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.visibility and self.visibility != "public":
- res.append(self.visibility)
- res.append(' ')
- if self.templatePrefix:
- res.append(transform(self.templatePrefix))
- res.append(transform(self.declaration))
- if self.trailingRequiresClause:
- res.append(' ')
- res.append(transform(self.trailingRequiresClause))
- if self.semicolon:
- res.append(';')
- return ''.join(res)
-
- def describe_signature(self, signode: desc_signature, mode: str,
- env: BuildEnvironment, options: dict) -> None:
- verify_description_mode(mode)
- assert self.symbol
- # The caller of the domain added a desc_signature node.
- # Always enable multiline:
- signode['is_multiline'] = True
- # Put each line in a desc_signature_line node.
- mainDeclNode = addnodes.desc_signature_line()
- mainDeclNode.sphinx_line_type = 'declarator'
- mainDeclNode['add_permalink'] = not self.symbol.isRedeclaration
-
- if self.templatePrefix:
- self.templatePrefix.describe_signature(signode, mode, env,
- symbol=self.symbol,
- lineSpec=options.get('tparam-line-spec'))
- signode += mainDeclNode
- if self.visibility and self.visibility != "public":
- mainDeclNode += addnodes.desc_sig_keyword(self.visibility, self.visibility)
- mainDeclNode += addnodes.desc_sig_space()
- if self.objectType == 'type':
- prefix = self.declaration.get_type_declaration_prefix()
- mainDeclNode += addnodes.desc_sig_keyword(prefix, prefix)
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'concept':
- mainDeclNode += addnodes.desc_sig_keyword('concept', 'concept')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType in {'member', 'function'}:
- pass
- elif self.objectType == 'class':
- assert self.directiveType in ('class', 'struct')
- mainDeclNode += addnodes.desc_sig_keyword(self.directiveType, self.directiveType)
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'union':
- mainDeclNode += addnodes.desc_sig_keyword('union', 'union')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.objectType == 'enum':
- mainDeclNode += addnodes.desc_sig_keyword('enum', 'enum')
- mainDeclNode += addnodes.desc_sig_space()
- if self.directiveType == 'enum-class':
- mainDeclNode += addnodes.desc_sig_keyword('class', 'class')
- mainDeclNode += addnodes.desc_sig_space()
- elif self.directiveType == 'enum-struct':
- mainDeclNode += addnodes.desc_sig_keyword('struct', 'struct')
- mainDeclNode += addnodes.desc_sig_space()
- else:
- assert self.directiveType == 'enum', self.directiveType
- elif self.objectType == 'enumerator':
- mainDeclNode += addnodes.desc_sig_keyword('enumerator', 'enumerator')
- mainDeclNode += addnodes.desc_sig_space()
- else:
- raise AssertionError(self.objectType)
- self.declaration.describe_signature(mainDeclNode, mode, env, self.symbol)
- lastDeclNode = mainDeclNode
- if self.trailingRequiresClause:
- trailingReqNode = addnodes.desc_signature_line()
- trailingReqNode.sphinx_line_type = 'trailingRequiresClause'
- signode.append(trailingReqNode)
- lastDeclNode = trailingReqNode
- self.trailingRequiresClause.describe_signature(
- trailingReqNode, 'markType', env, self.symbol)
- if self.semicolon:
- lastDeclNode += addnodes.desc_sig_punctuation(';', ';')
-
-
-class ASTNamespace(ASTBase):
- def __init__(self, nestedName: ASTNestedName,
- templatePrefix: ASTTemplateDeclarationPrefix) -> None:
- self.nestedName = nestedName
- self.templatePrefix = templatePrefix
-
- def _stringify(self, transform: StringifyTransform) -> str:
- res = []
- if self.templatePrefix:
- res.append(transform(self.templatePrefix))
- res.append(transform(self.nestedName))
- return ''.join(res)
-
-
-class SymbolLookupResult:
- def __init__(self, symbols: Iterator[Symbol], parentSymbol: Symbol,
- identOrOp: ASTIdentifier | ASTOperator, templateParams: Any,
- templateArgs: ASTTemplateArgs) -> None:
- self.symbols = symbols
- self.parentSymbol = parentSymbol
- self.identOrOp = identOrOp
- self.templateParams = templateParams
- self.templateArgs = templateArgs
-
-
-class LookupKey:
- def __init__(self, data: list[tuple[ASTNestedNameElement,
- ASTTemplateParams | ASTTemplateIntroduction,
- str]]) -> None:
- self.data = data
-
-
-def _is_specialization(templateParams: ASTTemplateParams | ASTTemplateIntroduction,
- templateArgs: ASTTemplateArgs) -> bool:
- # Checks if `templateArgs` does not exactly match `templateParams`.
- # the names of the template parameters must be given exactly as args
- # and params that are packs must in the args be the name expanded
- if len(templateParams.params) != len(templateArgs.args):
- return True
- # having no template params and no arguments is also a specialization
- if len(templateParams.params) == 0:
- return True
- for i in range(len(templateParams.params)):
- param = templateParams.params[i]
- arg = templateArgs.args[i]
- # TODO: doing this by string manipulation is probably not the most efficient
- paramName = str(param.name)
- argTxt = str(arg)
- isArgPackExpansion = argTxt.endswith('...')
- if param.isPack != isArgPackExpansion:
- return True
- argName = argTxt[:-3] if isArgPackExpansion else argTxt
- if paramName != argName:
- return True
- return False
-
-
-class Symbol:
- debug_indent = 0
- debug_indent_string = " "
- debug_lookup = False # overridden by the corresponding config value
- debug_show_tree = False # overridden by the corresponding config value
-
- def __copy__(self):
- raise AssertionError # shouldn't happen
-
- def __deepcopy__(self, memo):
- if self.parent:
- raise AssertionError # shouldn't happen
- # the domain base class makes a copy of the initial data, which is fine
- return Symbol(None, None, None, None, None, None, None)
-
- @staticmethod
- def debug_print(*args: Any) -> None:
- logger.debug(Symbol.debug_indent_string * Symbol.debug_indent, end="")
- logger.debug(*args)
-
- def _assert_invariants(self) -> None:
- if not self.parent:
- # parent == None means global scope, so declaration means a parent
- assert not self.identOrOp
- assert not self.templateParams
- assert not self.templateArgs
- assert not self.declaration
- assert not self.docname
- else:
- if self.declaration:
- assert self.docname
-
- def __setattr__(self, key: str, value: Any) -> None:
- if key == "children":
- raise AssertionError
- return super().__setattr__(key, value)
-
- def __init__(self, parent: Symbol | None,
- identOrOp: ASTIdentifier | ASTOperator | None,
- templateParams: ASTTemplateParams | ASTTemplateIntroduction | None,
- templateArgs: Any, declaration: ASTDeclaration | None,
- docname: str | None, line: int | None) -> None:
- self.parent = parent
- # declarations in a single directive are linked together
- self.siblingAbove: Symbol | None = None
- self.siblingBelow: Symbol | None = None
- self.identOrOp = identOrOp
- # Ensure the same symbol for `A` is created for:
- #
- # .. cpp:class:: template <typename T> class A
- #
- # and
- #
- # .. cpp:function:: template <typename T> int A<T>::foo()
- if (templateArgs is not None and
- not _is_specialization(templateParams, templateArgs)):
- templateArgs = None
- self.templateParams = templateParams # template<templateParams>
- self.templateArgs = templateArgs # identifier<templateArgs>
- self.declaration = declaration
- self.docname = docname
- self.line = line
- self.isRedeclaration = False
- self._assert_invariants()
-
- # Remember to modify Symbol.remove if modifications to the parent change.
- self._children: list[Symbol] = []
- self._anonChildren: list[Symbol] = []
- # note: _children includes _anonChildren
- if self.parent:
- self.parent._children.append(self)
- if self.declaration:
- self.declaration.symbol = self
-
- # Do symbol addition after self._children has been initialised.
- self._add_template_and_function_params()
-
- def _fill_empty(self, declaration: ASTDeclaration, docname: str, line: int) -> None:
- self._assert_invariants()
- assert self.declaration is None
- assert self.docname is None
- assert self.line is None
- assert declaration is not None
- assert docname is not None
- assert line is not None
- self.declaration = declaration
- self.declaration.symbol = self
- self.docname = docname
- self.line = line
- self._assert_invariants()
- # and symbol addition should be done as well
- self._add_template_and_function_params()
-
- def _add_template_and_function_params(self) -> None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_add_template_and_function_params:")
- # Note: we may be called from _fill_empty, so the symbols we want
- # to add may actually already be present (as empty symbols).
-
- # add symbols for the template params
- if self.templateParams:
- for tp in self.templateParams.params:
- if not tp.get_identifier():
- continue
- # only add a declaration if we our self are from a declaration
- if self.declaration:
- decl = ASTDeclaration(objectType='templateParam', declaration=tp)
- else:
- decl = None
- nne = ASTNestedNameElement(tp.get_identifier(), None)
- nn = ASTNestedName([nne], [False], rooted=False)
- self._add_symbols(nn, [], decl, self.docname, self.line)
- # add symbols for function parameters, if any
- if self.declaration is not None and self.declaration.function_params is not None:
- for fp in self.declaration.function_params:
- if fp.arg is None:
- continue
- nn = fp.arg.name
- if nn is None:
- continue
- # (comparing to the template params: we have checked that we are a declaration)
- decl = ASTDeclaration(objectType='functionParam', declaration=fp)
- assert not nn.rooted
- assert len(nn.names) == 1
- self._add_symbols(nn, [], decl, self.docname, self.line)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
-
- def remove(self) -> None:
- if self.parent is None:
- return
- assert self in self.parent._children
- self.parent._children.remove(self)
- self.parent = None
-
- def clear_doc(self, docname: str) -> None:
- newChildren: list[Symbol] = []
- for sChild in self._children:
- sChild.clear_doc(docname)
- if sChild.declaration and sChild.docname == docname:
- sChild.declaration = None
- sChild.docname = None
- sChild.line = None
- if sChild.siblingAbove is not None:
- sChild.siblingAbove.siblingBelow = sChild.siblingBelow
- if sChild.siblingBelow is not None:
- sChild.siblingBelow.siblingAbove = sChild.siblingAbove
- sChild.siblingAbove = None
- sChild.siblingBelow = None
- newChildren.append(sChild)
- self._children = newChildren
-
- def get_all_symbols(self) -> Iterator[Any]:
- yield self
- for sChild in self._children:
- yield from sChild.get_all_symbols()
-
- @property
- def children_recurse_anon(self) -> Generator[Symbol, None, None]:
- for c in self._children:
- yield c
- if not c.identOrOp.is_anon():
- continue
-
- yield from c.children_recurse_anon
-
- def get_lookup_key(self) -> LookupKey:
- # The pickle files for the environment and for each document are distinct.
- # The environment has all the symbols, but the documents has xrefs that
- # must know their scope. A lookup key is essentially a specification of
- # how to find a specific symbol.
- symbols = []
- s = self
- while s.parent:
- symbols.append(s)
- s = s.parent
- symbols.reverse()
- key = []
- for s in symbols:
- nne = ASTNestedNameElement(s.identOrOp, s.templateArgs)
- if s.declaration is not None:
- key.append((nne, s.templateParams, s.declaration.get_newest_id()))
- else:
- key.append((nne, s.templateParams, None))
- return LookupKey(key)
-
- def get_full_nested_name(self) -> ASTNestedName:
- symbols = []
- s = self
- while s.parent:
- symbols.append(s)
- s = s.parent
- symbols.reverse()
- names = []
- templates = []
- for s in symbols:
- names.append(ASTNestedNameElement(s.identOrOp, s.templateArgs))
- templates.append(False)
- return ASTNestedName(names, templates, rooted=False)
-
- def _find_first_named_symbol(self, identOrOp: ASTIdentifier | ASTOperator,
- templateParams: Any, templateArgs: ASTTemplateArgs,
- templateShorthand: bool, matchSelf: bool,
- recurseInAnon: bool, correctPrimaryTemplateArgs: bool,
- ) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_print("_find_first_named_symbol ->")
- res = self._find_named_symbols(identOrOp, templateParams, templateArgs,
- templateShorthand, matchSelf, recurseInAnon,
- correctPrimaryTemplateArgs,
- searchInSiblings=False)
- try:
- return next(res)
- except StopIteration:
- return None
-
- def _find_named_symbols(self, identOrOp: ASTIdentifier | ASTOperator,
- templateParams: Any, templateArgs: ASTTemplateArgs,
- templateShorthand: bool, matchSelf: bool,
- recurseInAnon: bool, correctPrimaryTemplateArgs: bool,
- searchInSiblings: bool) -> Iterator[Symbol]:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_find_named_symbols:")
- Symbol.debug_indent += 1
- Symbol.debug_print("self:")
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_print("identOrOp: ", identOrOp)
- Symbol.debug_print("templateParams: ", templateParams)
- Symbol.debug_print("templateArgs: ", templateArgs)
- Symbol.debug_print("templateShorthand: ", templateShorthand)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("correctPrimaryTemplateAargs:", correctPrimaryTemplateArgs)
- Symbol.debug_print("searchInSiblings: ", searchInSiblings)
-
- if correctPrimaryTemplateArgs:
- if templateParams is not None and templateArgs is not None:
- # If both are given, but it's not a specialization, then do lookup as if
- # there is no argument list.
- # For example: template<typename T> int A<T>::var;
- if not _is_specialization(templateParams, templateArgs):
- templateArgs = None
-
- def matches(s: Symbol) -> bool:
- if s.identOrOp != identOrOp:
- return False
- if (s.templateParams is None) != (templateParams is None):
- if templateParams is not None:
- # we query with params, they must match params
- return False
- if not templateShorthand:
- # we don't query with params, and we do care about them
- return False
- if templateParams:
- # TODO: do better comparison
- if str(s.templateParams) != str(templateParams):
- return False
- if (s.templateArgs is None) != (templateArgs is None):
- return False
- if s.templateArgs:
- # TODO: do better comparison
- if str(s.templateArgs) != str(templateArgs):
- return False
- return True
-
- def candidates() -> Generator[Symbol, None, None]:
- s = self
- if Symbol.debug_lookup:
- Symbol.debug_print("searching in self:")
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
- while True:
- if matchSelf:
- yield s
- if recurseInAnon:
- yield from s.children_recurse_anon
- else:
- yield from s._children
-
- if s.siblingAbove is None:
- break
- s = s.siblingAbove
- if Symbol.debug_lookup:
- Symbol.debug_print("searching in sibling:")
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
-
- for s in candidates():
- if Symbol.debug_lookup:
- Symbol.debug_print("candidate:")
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
- if matches(s):
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("matches")
- Symbol.debug_indent -= 3
- yield s
- if Symbol.debug_lookup:
- Symbol.debug_indent += 2
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
-
- def _symbol_lookup(
- self,
- nestedName: ASTNestedName,
- templateDecls: list[Any],
- onMissingQualifiedSymbol: Callable[
- [Symbol, ASTIdentifier | ASTOperator, Any, ASTTemplateArgs], Symbol | None,
- ],
- strictTemplateParamArgLists: bool, ancestorLookupType: str,
- templateShorthand: bool, matchSelf: bool,
- recurseInAnon: bool, correctPrimaryTemplateArgs: bool,
- searchInSiblings: bool,
- ) -> SymbolLookupResult:
- # ancestorLookupType: if not None, specifies the target type of the lookup
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_symbol_lookup:")
- Symbol.debug_indent += 1
- Symbol.debug_print("self:")
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_print("nestedName: ", nestedName)
- Symbol.debug_print("templateDecls: ", ",".join(str(t) for t in templateDecls))
- Symbol.debug_print("strictTemplateParamArgLists:", strictTemplateParamArgLists)
- Symbol.debug_print("ancestorLookupType:", ancestorLookupType)
- Symbol.debug_print("templateShorthand: ", templateShorthand)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("correctPrimaryTemplateArgs: ", correctPrimaryTemplateArgs)
- Symbol.debug_print("searchInSiblings: ", searchInSiblings)
-
- if strictTemplateParamArgLists:
- # Each template argument list must have a template parameter list.
- # But to declare a template there must be an additional template parameter list.
- assert (nestedName.num_templates() == len(templateDecls) or
- nestedName.num_templates() + 1 == len(templateDecls))
- else:
- assert len(templateDecls) <= nestedName.num_templates() + 1
-
- names = nestedName.names
-
- # find the right starting point for lookup
- parentSymbol = self
- if nestedName.rooted:
- while parentSymbol.parent:
- parentSymbol = parentSymbol.parent
- if ancestorLookupType is not None:
- # walk up until we find the first identifier
- firstName = names[0]
- if not firstName.is_operator():
- while parentSymbol.parent:
- if parentSymbol.find_identifier(firstName.identOrOp,
- matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- searchInSiblings=searchInSiblings):
- # if we are in the scope of a constructor but wants to
- # reference the class we need to walk one extra up
- if (len(names) == 1 and ancestorLookupType == 'class' and matchSelf and
- parentSymbol.parent and
- parentSymbol.parent.identOrOp == firstName.identOrOp):
- pass
- else:
- break
- parentSymbol = parentSymbol.parent
-
- if Symbol.debug_lookup:
- Symbol.debug_print("starting point:")
- logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1), end="")
-
- # and now the actual lookup
- iTemplateDecl = 0
- for name in names[:-1]:
- identOrOp = name.identOrOp
- templateArgs = name.templateArgs
- if strictTemplateParamArgLists:
- # there must be a parameter list
- if templateArgs:
- assert iTemplateDecl < len(templateDecls)
- templateParams = templateDecls[iTemplateDecl]
- iTemplateDecl += 1
- else:
- templateParams = None
- else:
- # take the next template parameter list if there is one
- # otherwise it's ok
- if templateArgs and iTemplateDecl < len(templateDecls):
- templateParams = templateDecls[iTemplateDecl]
- iTemplateDecl += 1
- else:
- templateParams = None
-
- symbol = parentSymbol._find_first_named_symbol(
- identOrOp,
- templateParams, templateArgs,
- templateShorthand=templateShorthand,
- matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- correctPrimaryTemplateArgs=correctPrimaryTemplateArgs)
- if symbol is None:
- symbol = onMissingQualifiedSymbol(parentSymbol, identOrOp,
- templateParams, templateArgs)
- if symbol is None:
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return None
- # We have now matched part of a nested name, and need to match more
- # so even if we should matchSelf before, we definitely shouldn't
- # even more. (see also issue #2666)
- matchSelf = False
- parentSymbol = symbol
-
- if Symbol.debug_lookup:
- Symbol.debug_print("handle last name from:")
- logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1), end="")
-
- # handle the last name
- name = names[-1]
- identOrOp = name.identOrOp
- templateArgs = name.templateArgs
- if iTemplateDecl < len(templateDecls):
- assert iTemplateDecl + 1 == len(templateDecls)
- templateParams = templateDecls[iTemplateDecl]
- else:
- assert iTemplateDecl == len(templateDecls)
- templateParams = None
-
- symbols = parentSymbol._find_named_symbols(
- identOrOp, templateParams, templateArgs,
- templateShorthand=templateShorthand, matchSelf=matchSelf,
- recurseInAnon=recurseInAnon, correctPrimaryTemplateArgs=False,
- searchInSiblings=searchInSiblings)
- if Symbol.debug_lookup:
- symbols = list(symbols) # type: ignore[assignment]
- Symbol.debug_indent -= 2
- return SymbolLookupResult(symbols, parentSymbol,
- identOrOp, templateParams, templateArgs)
-
- def _add_symbols(self, nestedName: ASTNestedName, templateDecls: list[Any],
- declaration: ASTDeclaration, docname: str, line: int) -> Symbol:
- # Used for adding a whole path of symbols, where the last may or may not
- # be an actual declaration.
-
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_add_symbols:")
- Symbol.debug_indent += 1
- Symbol.debug_print("tdecls:", ",".join(str(t) for t in templateDecls))
- Symbol.debug_print("nn: ", nestedName)
- Symbol.debug_print("decl: ", declaration)
- Symbol.debug_print(f"location: {docname}:{line}")
-
- def onMissingQualifiedSymbol(parentSymbol: Symbol,
- identOrOp: ASTIdentifier | ASTOperator,
- templateParams: Any, templateArgs: ASTTemplateArgs,
- ) -> Symbol | None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("_add_symbols, onMissingQualifiedSymbol:")
- Symbol.debug_indent += 1
- Symbol.debug_print("templateParams:", templateParams)
- Symbol.debug_print("identOrOp: ", identOrOp)
- Symbol.debug_print("templateARgs: ", templateArgs)
- Symbol.debug_indent -= 2
- return Symbol(parent=parentSymbol, identOrOp=identOrOp,
- templateParams=templateParams,
- templateArgs=templateArgs, declaration=None,
- docname=None, line=None)
-
- lookupResult = self._symbol_lookup(nestedName, templateDecls,
- onMissingQualifiedSymbol,
- strictTemplateParamArgLists=True,
- ancestorLookupType=None,
- templateShorthand=False,
- matchSelf=False,
- recurseInAnon=False,
- correctPrimaryTemplateArgs=True,
- searchInSiblings=False)
- assert lookupResult is not None # we create symbols all the way, so that can't happen
- symbols = list(lookupResult.symbols)
- if len(symbols) == 0:
- if Symbol.debug_lookup:
- Symbol.debug_print("_add_symbols, result, no symbol:")
- Symbol.debug_indent += 1
- Symbol.debug_print("templateParams:", lookupResult.templateParams)
- Symbol.debug_print("identOrOp: ", lookupResult.identOrOp)
- Symbol.debug_print("templateArgs: ", lookupResult.templateArgs)
- Symbol.debug_print("declaration: ", declaration)
- Symbol.debug_print(f"location: {docname}:{line}")
- Symbol.debug_indent -= 1
- symbol = Symbol(parent=lookupResult.parentSymbol,
- identOrOp=lookupResult.identOrOp,
- templateParams=lookupResult.templateParams,
- templateArgs=lookupResult.templateArgs,
- declaration=declaration,
- docname=docname, line=line)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return symbol
-
- if Symbol.debug_lookup:
- Symbol.debug_print("_add_symbols, result, symbols:")
- Symbol.debug_indent += 1
- Symbol.debug_print("number symbols:", len(symbols))
- Symbol.debug_indent -= 1
-
- if not declaration:
- if Symbol.debug_lookup:
- Symbol.debug_print("no declaration")
- Symbol.debug_indent -= 2
- # good, just a scope creation
- # TODO: what if we have more than one symbol?
- return symbols[0]
-
- noDecl = []
- withDecl = []
- dupDecl = []
- for s in symbols:
- if s.declaration is None:
- noDecl.append(s)
- elif s.isRedeclaration:
- dupDecl.append(s)
- else:
- withDecl.append(s)
- if Symbol.debug_lookup:
- Symbol.debug_print("#noDecl: ", len(noDecl))
- Symbol.debug_print("#withDecl:", len(withDecl))
- Symbol.debug_print("#dupDecl: ", len(dupDecl))
- # With partial builds we may start with a large symbol tree stripped of declarations.
- # Essentially any combination of noDecl, withDecl, and dupDecls seems possible.
- # TODO: make partial builds fully work. What should happen when the primary symbol gets
- # deleted, and other duplicates exist? The full document should probably be rebuild.
-
- # First check if one of those with a declaration matches.
- # If it's a function, we need to compare IDs,
- # otherwise there should be only one symbol with a declaration.
- def makeCandSymbol() -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_print("begin: creating candidate symbol")
- symbol = Symbol(parent=lookupResult.parentSymbol,
- identOrOp=lookupResult.identOrOp,
- templateParams=lookupResult.templateParams,
- templateArgs=lookupResult.templateArgs,
- declaration=declaration,
- docname=docname, line=line)
- if Symbol.debug_lookup:
- Symbol.debug_print("end: creating candidate symbol")
- return symbol
- if len(withDecl) == 0:
- candSymbol = None
- else:
- candSymbol = makeCandSymbol()
-
- def handleDuplicateDeclaration(symbol: Symbol, candSymbol: Symbol) -> None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("redeclaration")
- Symbol.debug_indent -= 1
- Symbol.debug_indent -= 2
- # Redeclaration of the same symbol.
- # Let the new one be there, but raise an error to the client
- # so it can use the real symbol as subscope.
- # This will probably result in a duplicate id warning.
- candSymbol.isRedeclaration = True
- raise _DuplicateSymbolError(symbol, declaration)
-
- if declaration.objectType != "function":
- assert len(withDecl) <= 1
- handleDuplicateDeclaration(withDecl[0], candSymbol)
- # (not reachable)
-
- # a function, so compare IDs
- candId = declaration.get_newest_id()
- if Symbol.debug_lookup:
- Symbol.debug_print("candId:", candId)
- for symbol in withDecl:
- # but all existing must be functions as well,
- # otherwise we declare it to be a duplicate
- if symbol.declaration.objectType != 'function':
- handleDuplicateDeclaration(symbol, candSymbol)
- # (not reachable)
- oldId = symbol.declaration.get_newest_id()
- if Symbol.debug_lookup:
- Symbol.debug_print("oldId: ", oldId)
- if candId == oldId:
- handleDuplicateDeclaration(symbol, candSymbol)
- # (not reachable)
- # no candidate symbol found with matching ID
- # if there is an empty symbol, fill that one
- if len(noDecl) == 0:
- if Symbol.debug_lookup:
- Symbol.debug_print("no match, no empty")
- if candSymbol is not None:
- Symbol.debug_print("result is already created candSymbol")
- else:
- Symbol.debug_print("result is makeCandSymbol()")
- Symbol.debug_indent -= 2
- if candSymbol is not None:
- return candSymbol
- else:
- return makeCandSymbol()
- else:
- if Symbol.debug_lookup:
- Symbol.debug_print(
- "no match, but fill an empty declaration, candSybmol is not None?:",
- candSymbol is not None,
- )
- Symbol.debug_indent -= 2
- if candSymbol is not None:
- candSymbol.remove()
- # assert len(noDecl) == 1
- # TODO: enable assertion when we at some point find out how to do cleanup
- # for now, just take the first one, it should work fine ... right?
- symbol = noDecl[0]
- # If someone first opened the scope, and then later
- # declares it, e.g,
- # .. namespace:: Test
- # .. namespace:: nullptr
- # .. class:: Test
- symbol._fill_empty(declaration, docname, line)
- return symbol
-
- def merge_with(self, other: Symbol, docnames: list[str],
- env: BuildEnvironment) -> None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("merge_with:")
- assert other is not None
-
- def unconditionalAdd(self, otherChild):
- # TODO: hmm, should we prune by docnames?
- self._children.append(otherChild)
- otherChild.parent = self
- otherChild._assert_invariants()
-
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- for otherChild in other._children:
- if Symbol.debug_lookup:
- Symbol.debug_print("otherChild:\n", otherChild.to_string(Symbol.debug_indent))
- Symbol.debug_indent += 1
- if otherChild.isRedeclaration:
- unconditionalAdd(self, otherChild)
- if Symbol.debug_lookup:
- Symbol.debug_print("isRedeclaration")
- Symbol.debug_indent -= 1
- continue
- candiateIter = self._find_named_symbols(
- identOrOp=otherChild.identOrOp,
- templateParams=otherChild.templateParams,
- templateArgs=otherChild.templateArgs,
- templateShorthand=False, matchSelf=False,
- recurseInAnon=False, correctPrimaryTemplateArgs=False,
- searchInSiblings=False)
- candidates = list(candiateIter)
-
- if Symbol.debug_lookup:
- Symbol.debug_print("raw candidate symbols:", len(candidates))
- symbols = [s for s in candidates if not s.isRedeclaration]
- if Symbol.debug_lookup:
- Symbol.debug_print("non-duplicate candidate symbols:", len(symbols))
-
- if len(symbols) == 0:
- unconditionalAdd(self, otherChild)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- continue
-
- ourChild = None
- if otherChild.declaration is None:
- if Symbol.debug_lookup:
- Symbol.debug_print("no declaration in other child")
- ourChild = symbols[0]
- else:
- queryId = otherChild.declaration.get_newest_id()
- if Symbol.debug_lookup:
- Symbol.debug_print("queryId: ", queryId)
- for symbol in symbols:
- if symbol.declaration is None:
- if Symbol.debug_lookup:
- Symbol.debug_print("empty candidate")
- # if in the end we have non-matching, but have an empty one,
- # then just continue with that
- ourChild = symbol
- continue
- candId = symbol.declaration.get_newest_id()
- if Symbol.debug_lookup:
- Symbol.debug_print("candidate:", candId)
- if candId == queryId:
- ourChild = symbol
- break
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- if ourChild is None:
- unconditionalAdd(self, otherChild)
- continue
- if otherChild.declaration and otherChild.docname in docnames:
- if not ourChild.declaration:
- ourChild._fill_empty(otherChild.declaration,
- otherChild.docname, otherChild.line)
- elif ourChild.docname != otherChild.docname:
- name = str(ourChild.declaration)
- msg = __("Duplicate C++ declaration, also defined at %s:%s.\n"
- "Declaration is '.. cpp:%s:: %s'.")
- msg = msg % (ourChild.docname, ourChild.line,
- ourChild.declaration.directiveType, name)
- logger.warning(msg, location=(otherChild.docname, otherChild.line))
- else:
- if (otherChild.declaration.objectType ==
- ourChild.declaration.objectType and
- otherChild.declaration.objectType in
- ('templateParam', 'functionParam') and
- ourChild.parent.declaration == otherChild.parent.declaration):
- # `ourChild` was just created during merging by the call
- # to `_fill_empty` on the parent and can be ignored.
- pass
- else:
- # Both have declarations, and in the same docname.
- # This can apparently happen, it should be safe to
- # just ignore it, right?
- # Hmm, only on duplicate declarations, right?
- msg = "Internal C++ domain error during symbol merging.\n"
- msg += "ourChild:\n" + ourChild.to_string(1)
- msg += "\notherChild:\n" + otherChild.to_string(1)
- logger.warning(msg, location=otherChild.docname)
- ourChild.merge_with(otherChild, docnames, env)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
-
- def add_name(self, nestedName: ASTNestedName,
- templatePrefix: ASTTemplateDeclarationPrefix | None = None) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("add_name:")
- if templatePrefix:
- templateDecls = templatePrefix.templates
- else:
- templateDecls = []
- res = self._add_symbols(nestedName, templateDecls,
- declaration=None, docname=None, line=None)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- return res
-
- def add_declaration(self, declaration: ASTDeclaration,
- docname: str, line: int) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("add_declaration:")
- assert declaration is not None
- assert docname is not None
- assert line is not None
- nestedName = declaration.name
- if declaration.templatePrefix:
- templateDecls = declaration.templatePrefix.templates
- else:
- templateDecls = []
- res = self._add_symbols(nestedName, templateDecls, declaration, docname, line)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- return res
-
- def find_identifier(self, identOrOp: ASTIdentifier | ASTOperator,
- matchSelf: bool, recurseInAnon: bool, searchInSiblings: bool,
- ) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("find_identifier:")
- Symbol.debug_indent += 1
- Symbol.debug_print("identOrOp: ", identOrOp)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("searchInSiblings:", searchInSiblings)
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_indent -= 2
- current = self
- while current is not None:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 2
- Symbol.debug_print("trying:")
- logger.debug(current.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_indent -= 2
- if matchSelf and current.identOrOp == identOrOp:
- return current
- children = current.children_recurse_anon if recurseInAnon else current._children
- for s in children:
- if s.identOrOp == identOrOp:
- return s
- if not searchInSiblings:
- break
- current = current.siblingAbove
- return None
-
- def direct_lookup(self, key: LookupKey) -> Symbol:
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("direct_lookup:")
- Symbol.debug_indent += 1
- s = self
- for name, templateParams, id_ in key.data:
- if id_ is not None:
- res = None
- for cand in s._children:
- if cand.declaration is None:
- continue
- if cand.declaration.get_newest_id() == id_:
- res = cand
- break
- s = res
- else:
- identOrOp = name.identOrOp
- templateArgs = name.templateArgs
- s = s._find_first_named_symbol(identOrOp,
- templateParams, templateArgs,
- templateShorthand=False,
- matchSelf=False,
- recurseInAnon=False,
- correctPrimaryTemplateArgs=False)
- if Symbol.debug_lookup:
- Symbol.debug_print("name: ", name)
- Symbol.debug_print("templateParams:", templateParams)
- Symbol.debug_print("id: ", id_)
- if s is not None:
- logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
- else:
- Symbol.debug_print("not found")
- if s is None:
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return None
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return s
-
- def find_name(self, nestedName: ASTNestedName, templateDecls: list[Any],
- typ: str, templateShorthand: bool, matchSelf: bool,
- recurseInAnon: bool, searchInSiblings: bool) -> tuple[list[Symbol], str]:
- # templateShorthand: missing template parameter lists for templates is ok
- # If the first component is None,
- # then the second component _may_ be a string explaining why.
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("find_name:")
- Symbol.debug_indent += 1
- Symbol.debug_print("self:")
- logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
- Symbol.debug_print("nestedName: ", nestedName)
- Symbol.debug_print("templateDecls: ", templateDecls)
- Symbol.debug_print("typ: ", typ)
- Symbol.debug_print("templateShorthand:", templateShorthand)
- Symbol.debug_print("matchSelf: ", matchSelf)
- Symbol.debug_print("recurseInAnon: ", recurseInAnon)
- Symbol.debug_print("searchInSiblings: ", searchInSiblings)
-
- class QualifiedSymbolIsTemplateParam(Exception):
- pass
-
- def onMissingQualifiedSymbol(parentSymbol: Symbol,
- identOrOp: ASTIdentifier | ASTOperator,
- templateParams: Any,
- templateArgs: ASTTemplateArgs) -> Symbol | None:
- # TODO: Maybe search without template args?
- # Though, the correctPrimaryTemplateArgs does
- # that for primary templates.
- # Is there another case where it would be good?
- if parentSymbol.declaration is not None:
- if parentSymbol.declaration.objectType == 'templateParam':
- raise QualifiedSymbolIsTemplateParam
- return None
-
- try:
- lookupResult = self._symbol_lookup(nestedName, templateDecls,
- onMissingQualifiedSymbol,
- strictTemplateParamArgLists=False,
- ancestorLookupType=typ,
- templateShorthand=templateShorthand,
- matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- correctPrimaryTemplateArgs=False,
- searchInSiblings=searchInSiblings)
- except QualifiedSymbolIsTemplateParam:
- return None, "templateParamInQualified"
-
- if lookupResult is None:
- # if it was a part of the qualification that could not be found
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return None, None
-
- res = list(lookupResult.symbols)
- if len(res) != 0:
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- return res, None
-
- if lookupResult.parentSymbol.declaration is not None:
- if lookupResult.parentSymbol.declaration.objectType == 'templateParam':
- return None, "templateParamInQualified"
-
- # try without template params and args
- symbol = lookupResult.parentSymbol._find_first_named_symbol(
- lookupResult.identOrOp, None, None,
- templateShorthand=templateShorthand, matchSelf=matchSelf,
- recurseInAnon=recurseInAnon, correctPrimaryTemplateArgs=False)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 2
- if symbol is not None:
- return [symbol], None
- else:
- return None, None
-
- def find_declaration(self, declaration: ASTDeclaration, typ: str, templateShorthand: bool,
- matchSelf: bool, recurseInAnon: bool) -> Symbol:
- # templateShorthand: missing template parameter lists for templates is ok
- if Symbol.debug_lookup:
- Symbol.debug_indent += 1
- Symbol.debug_print("find_declaration:")
- nestedName = declaration.name
- if declaration.templatePrefix:
- templateDecls = declaration.templatePrefix.templates
- else:
- templateDecls = []
-
- def onMissingQualifiedSymbol(parentSymbol: Symbol,
- identOrOp: ASTIdentifier | ASTOperator,
- templateParams: Any,
- templateArgs: ASTTemplateArgs) -> Symbol | None:
- return None
-
- lookupResult = self._symbol_lookup(nestedName, templateDecls,
- onMissingQualifiedSymbol,
- strictTemplateParamArgLists=False,
- ancestorLookupType=typ,
- templateShorthand=templateShorthand,
- matchSelf=matchSelf,
- recurseInAnon=recurseInAnon,
- correctPrimaryTemplateArgs=False,
- searchInSiblings=False)
- if Symbol.debug_lookup:
- Symbol.debug_indent -= 1
- if lookupResult is None:
- return None
-
- symbols = list(lookupResult.symbols)
- if len(symbols) == 0:
- return None
-
- querySymbol = Symbol(parent=lookupResult.parentSymbol,
- identOrOp=lookupResult.identOrOp,
- templateParams=lookupResult.templateParams,
- templateArgs=lookupResult.templateArgs,
- declaration=declaration,
- docname='fakeDocnameForQuery',
- line=42)
- queryId = declaration.get_newest_id()
- for symbol in symbols:
- if symbol.declaration is None:
- continue
- candId = symbol.declaration.get_newest_id()
- if candId == queryId:
- querySymbol.remove()
- return symbol
- querySymbol.remove()
- return None
-
- def to_string(self, indent: int) -> str:
- res = [Symbol.debug_indent_string * indent]
- if not self.parent:
- res.append('::')
- else:
- if self.templateParams:
- res.append(str(self.templateParams))
- res.append('\n')
- res.append(Symbol.debug_indent_string * indent)
- if self.identOrOp:
- res.append(str(self.identOrOp))
- else:
- res.append(str(self.declaration))
- if self.templateArgs:
- res.append(str(self.templateArgs))
- if self.declaration:
- res.append(": ")
- if self.isRedeclaration:
- res.append('!!duplicate!! ')
- res.append("{" + self.declaration.objectType + "} ")
- res.append(str(self.declaration))
- if self.docname:
- res.append('\t(')
- res.append(self.docname)
- res.append(')')
- res.append('\n')
- return ''.join(res)
-
- def dump(self, indent: int) -> str:
- res = [self.to_string(indent)]
- for c in self._children:
- res.append(c.dump(indent + 1))
- return ''.join(res)
-
-
-class DefinitionParser(BaseParser):
- @property
- def language(self) -> str:
- return 'C++'
-
- @property
- def id_attributes(self):
- return self.config.cpp_id_attributes
-
- @property
- def paren_attributes(self):
- return self.config.cpp_paren_attributes
-
- def _parse_string(self) -> str:
- if self.current_char != '"':
- return None
- startPos = self.pos
- self.pos += 1
- escape = False
- while True:
- if self.eof:
- self.fail("Unexpected end during inside string.")
- elif self.current_char == '"' and not escape:
- self.pos += 1
- break
- elif self.current_char == '\\':
- escape = True
- else:
- escape = False
- self.pos += 1
- return self.definition[startPos:self.pos]
-
- def _parse_literal(self) -> ASTLiteral:
- # -> integer-literal
- # | character-literal
- # | floating-literal
- # | string-literal
- # | boolean-literal -> "false" | "true"
- # | pointer-literal -> "nullptr"
- # | user-defined-literal
-
- def _udl(literal: ASTLiteral) -> ASTLiteral:
- if not self.match(udl_identifier_re):
- return literal
- # hmm, should we care if it's a keyword?
- # it looks like GCC does not disallow keywords
- ident = ASTIdentifier(self.matched_text)
- return ASTUserDefinedLiteral(literal, ident)
-
- self.skip_ws()
- if self.skip_word('nullptr'):
- return ASTPointerLiteral()
- if self.skip_word('true'):
- return ASTBooleanLiteral(True)
- if self.skip_word('false'):
- return ASTBooleanLiteral(False)
- pos = self.pos
- if self.match(float_literal_re):
- hasSuffix = self.match(float_literal_suffix_re)
- floatLit = ASTNumberLiteral(self.definition[pos:self.pos])
- if hasSuffix:
- return floatLit
- else:
- return _udl(floatLit)
- for regex in [binary_literal_re, hex_literal_re,
- integer_literal_re, octal_literal_re]:
- if self.match(regex):
- hasSuffix = self.match(integers_literal_suffix_re)
- intLit = ASTNumberLiteral(self.definition[pos:self.pos])
- if hasSuffix:
- return intLit
- else:
- return _udl(intLit)
-
- string = self._parse_string()
- if string is not None:
- return _udl(ASTStringLiteral(string))
-
- # character-literal
- if self.match(char_literal_re):
- prefix = self.last_match.group(1) # may be None when no prefix
- data = self.last_match.group(2)
- try:
- charLit = ASTCharLiteral(prefix, data)
- except UnicodeDecodeError as e:
- self.fail("Can not handle character literal. Internal error was: %s" % e)
- except UnsupportedMultiCharacterCharLiteral:
- self.fail("Can not handle character literal"
- " resulting in multiple decoded characters.")
- return _udl(charLit)
- return None
-
- def _parse_fold_or_paren_expression(self) -> ASTExpression:
- # "(" expression ")"
- # fold-expression
- # -> ( cast-expression fold-operator ... )
- # | ( ... fold-operator cast-expression )
- # | ( cast-expression fold-operator ... fold-operator cast-expression
- if self.current_char != '(':
- return None
- self.pos += 1
- self.skip_ws()
- if self.skip_string_and_ws("..."):
- # ( ... fold-operator cast-expression )
- if not self.match(_fold_operator_re):
- self.fail("Expected fold operator after '...' in fold expression.")
- op = self.matched_text
- rightExpr = self._parse_cast_expression()
- if not self.skip_string(')'):
- self.fail("Expected ')' in end of fold expression.")
- return ASTFoldExpr(None, op, rightExpr)
- # try first parsing a unary right fold, or a binary fold
- pos = self.pos
- try:
- self.skip_ws()
- leftExpr = self._parse_cast_expression()
- self.skip_ws()
- if not self.match(_fold_operator_re):
- self.fail("Expected fold operator after left expression in fold expression.")
- op = self.matched_text
- self.skip_ws()
- if not self.skip_string_and_ws('...'):
- self.fail("Expected '...' after fold operator in fold expression.")
- except DefinitionError as eFold:
- self.pos = pos
- # fall back to a paren expression
- try:
- res = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expected ')' in end of parenthesized expression.")
- except DefinitionError as eExpr:
- raise self._make_multi_error([
- (eFold, "If fold expression"),
- (eExpr, "If parenthesized expression"),
- ], "Error in fold expression or parenthesized expression.") from eExpr
- return ASTParenExpr(res)
- # now it definitely is a fold expression
- if self.skip_string(')'):
- return ASTFoldExpr(leftExpr, op, None)
- if not self.match(_fold_operator_re):
- self.fail("Expected fold operator or ')' after '...' in fold expression.")
- if op != self.matched_text:
- self.fail("Operators are different in binary fold: '%s' and '%s'."
- % (op, self.matched_text))
- rightExpr = self._parse_cast_expression()
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expected ')' to end binary fold expression.")
- return ASTFoldExpr(leftExpr, op, rightExpr)
-
- def _parse_primary_expression(self) -> ASTExpression:
- # literal
- # "this"
- # lambda-expression
- # "(" expression ")"
- # fold-expression
- # id-expression -> we parse this with _parse_nested_name
- self.skip_ws()
- res: ASTExpression = self._parse_literal()
- if res is not None:
- return res
- self.skip_ws()
- if self.skip_word("this"):
- return ASTThisLiteral()
- # TODO: try lambda expression
- res = self._parse_fold_or_paren_expression()
- if res is not None:
- return res
- nn = self._parse_nested_name()
- if nn is not None:
- return ASTIdExpression(nn)
- return None
-
- def _parse_initializer_list(self, name: str, open: str, close: str,
- ) -> tuple[list[ASTExpression | ASTBracedInitList],
- bool]:
- # Parse open and close with the actual initializer-list in between
- # -> initializer-clause '...'[opt]
- # | initializer-list ',' initializer-clause '...'[opt]
- self.skip_ws()
- if not self.skip_string_and_ws(open):
- return None, None
- if self.skip_string(close):
- return [], False
-
- exprs: list[ASTExpression | ASTBracedInitList] = []
- trailingComma = False
- while True:
- self.skip_ws()
- expr = self._parse_initializer_clause()
- self.skip_ws()
- if self.skip_string('...'):
- exprs.append(ASTPackExpansionExpr(expr))
- else:
- exprs.append(expr)
- self.skip_ws()
- if self.skip_string(close):
- break
- if not self.skip_string_and_ws(','):
- self.fail(f"Error in {name}, expected ',' or '{close}'.")
- if self.current_char == close and close == '}':
- self.pos += 1
- trailingComma = True
- break
- return exprs, trailingComma
-
- def _parse_paren_expression_list(self) -> ASTParenExprList:
- # -> '(' expression-list ')'
- # though, we relax it to also allow empty parens
- # as it's needed in some cases
- #
- # expression-list
- # -> initializer-list
- exprs, trailingComma = self._parse_initializer_list("parenthesized expression-list",
- '(', ')')
- if exprs is None:
- return None
- return ASTParenExprList(exprs)
-
- def _parse_initializer_clause(self) -> ASTExpression | ASTBracedInitList:
- bracedInitList = self._parse_braced_init_list()
- if bracedInitList is not None:
- return bracedInitList
- return self._parse_assignment_expression(inTemplate=False)
-
- def _parse_braced_init_list(self) -> ASTBracedInitList:
- # -> '{' initializer-list ','[opt] '}'
- # | '{' '}'
- exprs, trailingComma = self._parse_initializer_list("braced-init-list", '{', '}')
- if exprs is None:
- return None
- return ASTBracedInitList(exprs, trailingComma)
-
- def _parse_expression_list_or_braced_init_list(
- self,
- ) -> ASTParenExprList | ASTBracedInitList:
- paren = self._parse_paren_expression_list()
- if paren is not None:
- return paren
- return self._parse_braced_init_list()
-
- def _parse_postfix_expression(self) -> ASTPostfixExpr:
- # -> primary
- # | postfix "[" expression "]"
- # | postfix "[" braced-init-list [opt] "]"
- # | postfix "(" expression-list [opt] ")"
- # | postfix "." "template" [opt] id-expression
- # | postfix "->" "template" [opt] id-expression
- # | postfix "." pseudo-destructor-name
- # | postfix "->" pseudo-destructor-name
- # | postfix "++"
- # | postfix "--"
- # | simple-type-specifier "(" expression-list [opt] ")"
- # | simple-type-specifier braced-init-list
- # | typename-specifier "(" expression-list [opt] ")"
- # | typename-specifier braced-init-list
- # | "dynamic_cast" "<" type-id ">" "(" expression ")"
- # | "static_cast" "<" type-id ">" "(" expression ")"
- # | "reinterpret_cast" "<" type-id ">" "(" expression ")"
- # | "const_cast" "<" type-id ">" "(" expression ")"
- # | "typeid" "(" expression ")"
- # | "typeid" "(" type-id ")"
-
- prefixType = None
- prefix: Any = None
- self.skip_ws()
-
- cast = None
- for c in _id_explicit_cast:
- if self.skip_word_and_ws(c):
- cast = c
- break
- if cast is not None:
- prefixType = "cast"
- if not self.skip_string("<"):
- self.fail("Expected '<' after '%s'." % cast)
- typ = self._parse_type(False)
- self.skip_ws()
- if not self.skip_string_and_ws(">"):
- self.fail("Expected '>' after type in '%s'." % cast)
- if not self.skip_string("("):
- self.fail("Expected '(' in '%s'." % cast)
-
- def parser() -> ASTExpression:
- return self._parse_expression()
- expr = self._parse_expression_fallback([')'], parser)
- self.skip_ws()
- if not self.skip_string(")"):
- self.fail("Expected ')' to end '%s'." % cast)
- prefix = ASTExplicitCast(cast, typ, expr)
- elif self.skip_word_and_ws("typeid"):
- prefixType = "typeid"
- if not self.skip_string_and_ws('('):
- self.fail("Expected '(' after 'typeid'.")
- pos = self.pos
- try:
- typ = self._parse_type(False)
- prefix = ASTTypeId(typ, isType=True)
- if not self.skip_string(')'):
- self.fail("Expected ')' to end 'typeid' of type.")
- except DefinitionError as eType:
- self.pos = pos
- try:
-
- def parser() -> ASTExpression:
- return self._parse_expression()
- expr = self._parse_expression_fallback([')'], parser)
- prefix = ASTTypeId(expr, isType=False)
- if not self.skip_string(')'):
- self.fail("Expected ')' to end 'typeid' of expression.")
- except DefinitionError as eExpr:
- self.pos = pos
- header = "Error in 'typeid(...)'."
- header += " Expected type or expression."
- errors = []
- errors.append((eType, "If type"))
- errors.append((eExpr, "If expression"))
- raise self._make_multi_error(errors, header) from eExpr
- else: # a primary expression or a type
- pos = self.pos
- try:
- prefix = self._parse_primary_expression()
- prefixType = 'expr'
- except DefinitionError as eOuter:
- self.pos = pos
- try:
- # we are potentially casting, so save parens for us
- # TODO: hmm, would we need to try both with operatorCast and with None?
- prefix = self._parse_type(False, 'operatorCast')
- prefixType = 'typeOperatorCast'
- # | simple-type-specifier "(" expression-list [opt] ")"
- # | simple-type-specifier braced-init-list
- # | typename-specifier "(" expression-list [opt] ")"
- # | typename-specifier braced-init-list
- self.skip_ws()
- if self.current_char != '(' and self.current_char != '{':
- self.fail("Expecting '(' or '{' after type in cast expression.")
- except DefinitionError as eInner:
- self.pos = pos
- header = "Error in postfix expression,"
- header += " expected primary expression or type."
- errors = []
- errors.append((eOuter, "If primary expression"))
- errors.append((eInner, "If type"))
- raise self._make_multi_error(errors, header) from eInner
-
- # and now parse postfixes
- postFixes: list[ASTPostfixOp] = []
- while True:
- self.skip_ws()
- if prefixType in ('expr', 'cast', 'typeid'):
- if self.skip_string_and_ws('['):
- expr = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(']'):
- self.fail("Expected ']' in end of postfix expression.")
- postFixes.append(ASTPostfixArray(expr))
- continue
- if self.skip_string('.'):
- if self.skip_string('*'):
- # don't steal the dot
- self.pos -= 2
- elif self.skip_string('..'):
- # don't steal the dot
- self.pos -= 3
- else:
- name = self._parse_nested_name()
- postFixes.append(ASTPostfixMember(name))
- continue
- if self.skip_string('->'):
- if self.skip_string('*'):
- # don't steal the arrow
- self.pos -= 3
- else:
- name = self._parse_nested_name()
- postFixes.append(ASTPostfixMemberOfPointer(name))
- continue
- if self.skip_string('++'):
- postFixes.append(ASTPostfixInc())
- continue
- if self.skip_string('--'):
- postFixes.append(ASTPostfixDec())
- continue
- lst = self._parse_expression_list_or_braced_init_list()
- if lst is not None:
- postFixes.append(ASTPostfixCallExpr(lst))
- continue
- break
- return ASTPostfixExpr(prefix, postFixes)
-
- def _parse_unary_expression(self) -> ASTExpression:
- # -> postfix
- # | "++" cast
- # | "--" cast
- # | unary-operator cast -> (* | & | + | - | ! | ~) cast
- # The rest:
- # | "sizeof" unary
- # | "sizeof" "(" type-id ")"
- # | "sizeof" "..." "(" identifier ")"
- # | "alignof" "(" type-id ")"
- # | noexcept-expression -> noexcept "(" expression ")"
- # | new-expression
- # | delete-expression
- self.skip_ws()
- for op in _expression_unary_ops:
- # TODO: hmm, should we be able to backtrack here?
- if op[0] in 'cn':
- res = self.skip_word(op)
- else:
- res = self.skip_string(op)
- if res:
- expr = self._parse_cast_expression()
- return ASTUnaryOpExpr(op, expr)
- if self.skip_word_and_ws('sizeof'):
- if self.skip_string_and_ws('...'):
- if not self.skip_string_and_ws('('):
- self.fail("Expecting '(' after 'sizeof...'.")
- if not self.match(identifier_re):
- self.fail("Expecting identifier for 'sizeof...'.")
- ident = ASTIdentifier(self.matched_text)
- self.skip_ws()
- if not self.skip_string(")"):
- self.fail("Expecting ')' to end 'sizeof...'.")
- return ASTSizeofParamPack(ident)
- if self.skip_string_and_ws('('):
- typ = self._parse_type(named=False)
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expecting ')' to end 'sizeof'.")
- return ASTSizeofType(typ)
- expr = self._parse_unary_expression()
- return ASTSizeofExpr(expr)
- if self.skip_word_and_ws('alignof'):
- if not self.skip_string_and_ws('('):
- self.fail("Expecting '(' after 'alignof'.")
- typ = self._parse_type(named=False)
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expecting ')' to end 'alignof'.")
- return ASTAlignofExpr(typ)
- if self.skip_word_and_ws('noexcept'):
- if not self.skip_string_and_ws('('):
- self.fail("Expecting '(' after 'noexcept'.")
- expr = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expecting ')' to end 'noexcept'.")
- return ASTNoexceptExpr(expr)
- # new-expression
- pos = self.pos
- rooted = self.skip_string('::')
- self.skip_ws()
- if not self.skip_word_and_ws('new'):
- self.pos = pos
- else:
- # new-placement[opt] new-type-id new-initializer[opt]
- # new-placement[opt] ( type-id ) new-initializer[opt]
- isNewTypeId = True
- if self.skip_string_and_ws('('):
- # either this is a new-placement or it's the second production
- # without placement, and it's actually the ( type-id ) part
- self.fail("Sorry, neither new-placement nor parenthesised type-id "
- "in new-epression is supported yet.")
- # set isNewTypeId = False if it's (type-id)
- if isNewTypeId:
- declSpecs = self._parse_decl_specs(outer=None)
- decl = self._parse_declarator(named=False, paramMode="new")
- else:
- self.fail("Sorry, parenthesised type-id in new expression not yet supported.")
- lst = self._parse_expression_list_or_braced_init_list()
- return ASTNewExpr(rooted, isNewTypeId, ASTType(declSpecs, decl), lst)
- # delete-expression
- pos = self.pos
- rooted = self.skip_string('::')
- self.skip_ws()
- if not self.skip_word_and_ws('delete'):
- self.pos = pos
- else:
- array = self.skip_string_and_ws('[')
- if array and not self.skip_string_and_ws(']'):
- self.fail("Expected ']' in array delete-expression.")
- expr = self._parse_cast_expression()
- return ASTDeleteExpr(rooted, array, expr)
- return self._parse_postfix_expression()
-
- def _parse_cast_expression(self) -> ASTExpression:
- # -> unary | "(" type-id ")" cast
- pos = self.pos
- self.skip_ws()
- if self.skip_string('('):
- try:
- typ = self._parse_type(False)
- if not self.skip_string(')'):
- self.fail("Expected ')' in cast expression.")
- expr = self._parse_cast_expression()
- return ASTCastExpr(typ, expr)
- except DefinitionError as exCast:
- self.pos = pos
- try:
- return self._parse_unary_expression()
- except DefinitionError as exUnary:
- errs = []
- errs.append((exCast, "If type cast expression"))
- errs.append((exUnary, "If unary expression"))
- raise self._make_multi_error(errs,
- "Error in cast expression.") from exUnary
- else:
- return self._parse_unary_expression()
-
- def _parse_logical_or_expression(self, inTemplate: bool) -> ASTExpression:
- # logical-or = logical-and ||
- # logical-and = inclusive-or &&
- # inclusive-or = exclusive-or |
- # exclusive-or = and ^
- # and = equality &
- # equality = relational ==, !=
- # relational = shift <, >, <=, >=, <=>
- # shift = additive <<, >>
- # additive = multiplicative +, -
- # multiplicative = pm *, /, %
- # pm = cast .*, ->*
- def _parse_bin_op_expr(self: DefinitionParser,
- opId: int, inTemplate: bool) -> ASTExpression:
- if opId + 1 == len(_expression_bin_ops):
- def parser(inTemplate: bool) -> ASTExpression:
- return self._parse_cast_expression()
- else:
- def parser(inTemplate: bool) -> ASTExpression:
- return _parse_bin_op_expr(self, opId + 1, inTemplate=inTemplate)
- exprs = []
- ops = []
- exprs.append(parser(inTemplate=inTemplate))
- while True:
- self.skip_ws()
- if inTemplate and self.current_char == '>':
- break
- pos = self.pos
- oneMore = False
- for op in _expression_bin_ops[opId]:
- if op[0] in 'abcnox':
- if not self.skip_word(op):
- continue
- else:
- if not self.skip_string(op):
- continue
- if op == '&' and self.current_char == '&':
- # don't split the && 'token'
- self.pos -= 1
- # and btw. && has lower precedence, so we are done
- break
- try:
- expr = parser(inTemplate=inTemplate)
- exprs.append(expr)
- ops.append(op)
- oneMore = True
- break
- except DefinitionError:
- self.pos = pos
- if not oneMore:
- break
- return ASTBinOpExpr(exprs, ops)
- return _parse_bin_op_expr(self, 0, inTemplate=inTemplate)
-
- def _parse_conditional_expression_tail(self, orExprHead: ASTExpression,
- inTemplate: bool) -> ASTConditionalExpr | None:
- # Consumes the orExprHead on success.
-
- # -> "?" expression ":" assignment-expression
- self.skip_ws()
- if not self.skip_string("?"):
- return None
- thenExpr = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(":"):
- self.fail('Expected ":" after then-expression in conditional expression.')
- elseExpr = self._parse_assignment_expression(inTemplate)
- return ASTConditionalExpr(orExprHead, thenExpr, elseExpr)
-
- def _parse_assignment_expression(self, inTemplate: bool) -> ASTExpression:
- # -> conditional-expression
- # | logical-or-expression assignment-operator initializer-clause
- # | yield-expression -> "co_yield" assignment-expression
- # | "co_yield" braced-init-list
- # | throw-expression -> "throw" assignment-expression[opt]
- # TODO: yield-expression
- # TODO: throw-expression
-
- # Now we have (after expanding conditional-expression:
- # logical-or-expression
- # | logical-or-expression "?" expression ":" assignment-expression
- # | logical-or-expression assignment-operator initializer-clause
- leftExpr = self._parse_logical_or_expression(inTemplate=inTemplate)
- # the ternary operator
- condExpr = self._parse_conditional_expression_tail(leftExpr, inTemplate)
- if condExpr is not None:
- return condExpr
- # and actual assignment
- for op in _expression_assignment_ops:
- if op[0] in 'anox':
- if not self.skip_word(op):
- continue
- else:
- if not self.skip_string(op):
- continue
- rightExpr = self._parse_initializer_clause()
- return ASTAssignmentExpr(leftExpr, op, rightExpr)
- # just a logical-or-expression
- return leftExpr
-
- def _parse_constant_expression(self, inTemplate: bool) -> ASTExpression:
- # -> conditional-expression ->
- # logical-or-expression
- # | logical-or-expression "?" expression ":" assignment-expression
- orExpr = self._parse_logical_or_expression(inTemplate=inTemplate)
- condExpr = self._parse_conditional_expression_tail(orExpr, inTemplate)
- if condExpr is not None:
- return condExpr
- return orExpr
-
- def _parse_expression(self) -> ASTExpression:
- # -> assignment-expression
- # | expression "," assignment-expression
- exprs = [self._parse_assignment_expression(inTemplate=False)]
- while True:
- self.skip_ws()
- if not self.skip_string(','):
- break
- exprs.append(self._parse_assignment_expression(inTemplate=False))
- if len(exprs) == 1:
- return exprs[0]
- else:
- return ASTCommaExpr(exprs)
-
- def _parse_expression_fallback(self, end: list[str],
- parser: Callable[[], ASTExpression],
- allow: bool = True) -> ASTExpression:
- # Stupidly "parse" an expression.
- # 'end' should be a list of characters which ends the expression.
-
- # first try to use the provided parser
- prevPos = self.pos
- try:
- return parser()
- except DefinitionError as e:
- # some places (e.g., template parameters) we really don't want to use fallback,
- # and for testing we may want to globally disable it
- if not allow or not self.allowFallbackExpressionParsing:
- raise
- self.warn("Parsing of expression failed. Using fallback parser."
- " Error was:\n%s" % e)
- self.pos = prevPos
- # and then the fallback scanning
- assert end is not None
- self.skip_ws()
- startPos = self.pos
- if self.match(_string_re):
- value = self.matched_text
- else:
- # TODO: add handling of more bracket-like things, and quote handling
- brackets = {'(': ')', '{': '}', '[': ']', '<': '>'}
- symbols: list[str] = []
- while not self.eof:
- if (len(symbols) == 0 and self.current_char in end):
- break
- if self.current_char in brackets:
- symbols.append(brackets[self.current_char])
- elif len(symbols) > 0 and self.current_char == symbols[-1]:
- symbols.pop()
- self.pos += 1
- if len(end) > 0 and self.eof:
- self.fail("Could not find end of expression starting at %d."
- % startPos)
- value = self.definition[startPos:self.pos].strip()
- return ASTFallbackExpr(value.strip())
-
- # ==========================================================================
-
- def _parse_operator(self) -> ASTOperator:
- self.skip_ws()
- # adapted from the old code
- # yay, a regular operator definition
- if self.match(_operator_re):
- return ASTOperatorBuildIn(self.matched_text)
-
- # new/delete operator?
- for op in 'new', 'delete':
- if not self.skip_word(op):
- continue
- self.skip_ws()
- if self.skip_string('['):
- self.skip_ws()
- if not self.skip_string(']'):
- self.fail('Expected "]" after "operator ' + op + '["')
- op += '[]'
- return ASTOperatorBuildIn(op)
-
- # user-defined literal?
- if self.skip_string('""'):
- self.skip_ws()
- if not self.match(identifier_re):
- self.fail("Expected user-defined literal suffix.")
- identifier = ASTIdentifier(self.matched_text)
- return ASTOperatorLiteral(identifier)
-
- # oh well, looks like a cast operator definition.
- # In that case, eat another type.
- type = self._parse_type(named=False, outer="operatorCast")
- return ASTOperatorType(type)
-
- def _parse_template_argument_list(self) -> ASTTemplateArgs:
- # template-argument-list: (but we include the < and > here
- # template-argument ...[opt]
- # template-argument-list, template-argument ...[opt]
- # template-argument:
- # constant-expression
- # type-id
- # id-expression
- self.skip_ws()
- if not self.skip_string_and_ws('<'):
- return None
- if self.skip_string('>'):
- return ASTTemplateArgs([], False)
- prevErrors = []
- templateArgs: list[ASTType | ASTTemplateArgConstant] = []
- packExpansion = False
- while 1:
- pos = self.pos
- parsedComma = False
- parsedEnd = False
- try:
- type = self._parse_type(named=False)
- self.skip_ws()
- if self.skip_string_and_ws('...'):
- packExpansion = True
- parsedEnd = True
- if not self.skip_string('>'):
- self.fail('Expected ">" after "..." in template argument list.')
- elif self.skip_string('>'):
- parsedEnd = True
- elif self.skip_string(','):
- parsedComma = True
- else:
- self.fail('Expected "...>", ">" or "," in template argument list.')
- templateArgs.append(type)
- except DefinitionError as e:
- prevErrors.append((e, "If type argument"))
- self.pos = pos
- try:
- value = self._parse_constant_expression(inTemplate=True)
- self.skip_ws()
- if self.skip_string_and_ws('...'):
- packExpansion = True
- parsedEnd = True
- if not self.skip_string('>'):
- self.fail('Expected ">" after "..." in template argument list.')
- elif self.skip_string('>'):
- parsedEnd = True
- elif self.skip_string(','):
- parsedComma = True
- else:
- self.fail('Expected "...>", ">" or "," in template argument list.')
- templateArgs.append(ASTTemplateArgConstant(value))
- except DefinitionError as e:
- self.pos = pos
- prevErrors.append((e, "If non-type argument"))
- header = "Error in parsing template argument list."
- raise self._make_multi_error(prevErrors, header) from e
- if parsedEnd:
- assert not parsedComma
- break
- assert not packExpansion
- return ASTTemplateArgs(templateArgs, packExpansion)
-
- def _parse_nested_name(self, memberPointer: bool = False) -> ASTNestedName:
- names: list[ASTNestedNameElement] = []
- templates: list[bool] = []
-
- self.skip_ws()
- rooted = False
- if self.skip_string('::'):
- rooted = True
- while 1:
- self.skip_ws()
- if len(names) > 0:
- template = self.skip_word_and_ws('template')
- else:
- template = False
- templates.append(template)
- identOrOp: ASTIdentifier | ASTOperator = None
- if self.skip_word_and_ws('operator'):
- identOrOp = self._parse_operator()
- else:
- if not self.match(identifier_re):
- if memberPointer and len(names) > 0:
- templates.pop()
- break
- self.fail("Expected identifier in nested name.")
- identifier = self.matched_text
- # make sure there isn't a keyword
- if identifier in _keywords:
- self.fail("Expected identifier in nested name, "
- "got keyword: %s" % identifier)
- identOrOp = ASTIdentifier(identifier)
- # try greedily to get template arguments,
- # but otherwise a < might be because we are in an expression
- pos = self.pos
- try:
- templateArgs = self._parse_template_argument_list()
- except DefinitionError as ex:
- self.pos = pos
- templateArgs = None
- self.otherErrors.append(ex)
- names.append(ASTNestedNameElement(identOrOp, templateArgs))
-
- self.skip_ws()
- if not self.skip_string('::'):
- if memberPointer:
- self.fail("Expected '::' in pointer to member (function).")
- break
- return ASTNestedName(names, templates, rooted)
-
- # ==========================================================================
-
- def _parse_simple_type_specifiers(self) -> ASTTrailingTypeSpecFundamental:
- modifier: str | None = None
- signedness: str | None = None
- width: list[str] = []
- typ: str | None = None
- names: list[str] = [] # the parsed sequence
-
- self.skip_ws()
- while self.match(_simple_type_specifiers_re):
- t = self.matched_text
- names.append(t)
- if t in ('auto', 'void', 'bool',
- 'char', 'wchar_t', 'char8_t', 'char16_t', 'char32_t',
- 'int', '__int64', '__int128',
- 'float', 'double',
- '__float80', '_Float64x', '__float128', '_Float128'):
- if typ is not None:
- self.fail(f"Can not have both {t} and {typ}.")
- typ = t
- elif t in ('signed', 'unsigned'):
- if signedness is not None:
- self.fail(f"Can not have both {t} and {signedness}.")
- signedness = t
- elif t == 'short':
- if len(width) != 0:
- self.fail(f"Can not have both {t} and {width[0]}.")
- width.append(t)
- elif t == 'long':
- if len(width) != 0 and width[0] != 'long':
- self.fail(f"Can not have both {t} and {width[0]}.")
- width.append(t)
- elif t in ('_Imaginary', '_Complex'):
- if modifier is not None:
- self.fail(f"Can not have both {t} and {modifier}.")
- modifier = t
- self.skip_ws()
- if len(names) == 0:
- return None
-
- if typ in ('auto', 'void', 'bool',
- 'wchar_t', 'char8_t', 'char16_t', 'char32_t',
- '__float80', '_Float64x', '__float128', '_Float128'):
- if modifier is not None:
- self.fail(f"Can not have both {typ} and {modifier}.")
- if signedness is not None:
- self.fail(f"Can not have both {typ} and {signedness}.")
- if len(width) != 0:
- self.fail(f"Can not have both {typ} and {' '.join(width)}.")
- elif typ == 'char':
- if modifier is not None:
- self.fail(f"Can not have both {typ} and {modifier}.")
- if len(width) != 0:
- self.fail(f"Can not have both {typ} and {' '.join(width)}.")
- elif typ == 'int':
- if modifier is not None:
- self.fail(f"Can not have both {typ} and {modifier}.")
- elif typ in ('__int64', '__int128'):
- if modifier is not None:
- self.fail(f"Can not have both {typ} and {modifier}.")
- if len(width) != 0:
- self.fail(f"Can not have both {typ} and {' '.join(width)}.")
- elif typ == 'float':
- if signedness is not None:
- self.fail(f"Can not have both {typ} and {signedness}.")
- if len(width) != 0:
- self.fail(f"Can not have both {typ} and {' '.join(width)}.")
- elif typ == 'double':
- if signedness is not None:
- self.fail(f"Can not have both {typ} and {signedness}.")
- if len(width) > 1:
- self.fail(f"Can not have both {typ} and {' '.join(width)}.")
- if len(width) == 1 and width[0] != 'long':
- self.fail(f"Can not have both {typ} and {' '.join(width)}.")
- elif typ is None:
- if modifier is not None:
- self.fail(f"Can not have {modifier} without a floating point type.")
- else:
- msg = f'Unhandled type {typ}'
- raise AssertionError(msg)
-
- canonNames: list[str] = []
- if modifier is not None:
- canonNames.append(modifier)
- if signedness is not None:
- canonNames.append(signedness)
- canonNames.extend(width)
- if typ is not None:
- canonNames.append(typ)
- return ASTTrailingTypeSpecFundamental(names, canonNames)
-
- def _parse_trailing_type_spec(self) -> ASTTrailingTypeSpec:
- # fundamental types, https://en.cppreference.com/w/cpp/language/type
- # and extensions
- self.skip_ws()
- res = self._parse_simple_type_specifiers()
- if res is not None:
- return res
-
- # decltype
- self.skip_ws()
- if self.skip_word_and_ws('decltype'):
- if not self.skip_string_and_ws('('):
- self.fail("Expected '(' after 'decltype'.")
- if self.skip_word_and_ws('auto'):
- if not self.skip_string(')'):
- self.fail("Expected ')' after 'decltype(auto'.")
- return ASTTrailingTypeSpecDecltypeAuto()
- expr = self._parse_expression()
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expected ')' after 'decltype(<expr>'.")
- return ASTTrailingTypeSpecDecltype(expr)
-
- # prefixed
- prefix = None
- self.skip_ws()
- for k in ('class', 'struct', 'enum', 'union', 'typename'):
- if self.skip_word_and_ws(k):
- prefix = k
- break
- nestedName = self._parse_nested_name()
- self.skip_ws()
- placeholderType = None
- if self.skip_word('auto'):
- placeholderType = 'auto'
- elif self.skip_word_and_ws('decltype'):
- if not self.skip_string_and_ws('('):
- self.fail("Expected '(' after 'decltype' in placeholder type specifier.")
- if not self.skip_word_and_ws('auto'):
- self.fail("Expected 'auto' after 'decltype(' in placeholder type specifier.")
- if not self.skip_string_and_ws(')'):
- self.fail("Expected ')' after 'decltype(auto' in placeholder type specifier.")
- placeholderType = 'decltype(auto)'
- return ASTTrailingTypeSpecName(prefix, nestedName, placeholderType)
-
- def _parse_parameters_and_qualifiers(self, paramMode: str) -> ASTParametersQualifiers:
- if paramMode == 'new':
- return None
- self.skip_ws()
- if not self.skip_string('('):
- if paramMode == 'function':
- self.fail('Expecting "(" in parameters-and-qualifiers.')
- else:
- return None
- args = []
- self.skip_ws()
- if not self.skip_string(')'):
- while 1:
- self.skip_ws()
- if self.skip_string('...'):
- args.append(ASTFunctionParameter(None, True))
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail('Expected ")" after "..." in '
- 'parameters-and-qualifiers.')
- break
- # note: it seems that function arguments can always be named,
- # even in function pointers and similar.
- arg = self._parse_type_with_init(outer=None, named='single')
- # TODO: parse default parameters # TODO: didn't we just do that?
- args.append(ASTFunctionParameter(arg))
-
- self.skip_ws()
- if self.skip_string(','):
- continue
- if self.skip_string(')'):
- break
- self.fail('Expecting "," or ")" in parameters-and-qualifiers, '
- f'got "{self.current_char}".')
-
- self.skip_ws()
- const = self.skip_word_and_ws('const')
- volatile = self.skip_word_and_ws('volatile')
- if not const: # the can be permuted
- const = self.skip_word_and_ws('const')
-
- refQual = None
- if self.skip_string('&&'):
- refQual = '&&'
- if not refQual and self.skip_string('&'):
- refQual = '&'
-
- exceptionSpec = None
- self.skip_ws()
- if self.skip_string('noexcept'):
- if self.skip_string_and_ws('('):
- expr = self._parse_constant_expression(False)
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expecting ')' to end 'noexcept'.")
- exceptionSpec = ASTNoexceptSpec(expr)
- else:
- exceptionSpec = ASTNoexceptSpec(None)
-
- self.skip_ws()
- if self.skip_string('->'):
- trailingReturn = self._parse_type(named=False)
- else:
- trailingReturn = None
-
- self.skip_ws()
- override = self.skip_word_and_ws('override')
- final = self.skip_word_and_ws('final')
- if not override:
- override = self.skip_word_and_ws(
- 'override') # they can be permuted
-
- attrs = self._parse_attribute_list()
-
- self.skip_ws()
- initializer = None
- # if this is a function pointer we should not swallow an initializer
- if paramMode == 'function' and self.skip_string('='):
- self.skip_ws()
- valid = ('0', 'delete', 'default')
- for w in valid:
- if self.skip_word_and_ws(w):
- initializer = w
- break
- if not initializer:
- self.fail(
- 'Expected "%s" in initializer-specifier.'
- % '" or "'.join(valid))
-
- return ASTParametersQualifiers(
- args, volatile, const, refQual, exceptionSpec, trailingReturn,
- override, final, attrs, initializer)
-
- def _parse_decl_specs_simple(self, outer: str, typed: bool) -> ASTDeclSpecsSimple:
- """Just parse the simple ones."""
- storage = None
- threadLocal = None
- inline = None
- virtual = None
- explicitSpec = None
- consteval = None
- constexpr = None
- constinit = None
- volatile = None
- const = None
- friend = None
- attrs = []
- while 1: # accept any permutation of a subset of some decl-specs
- self.skip_ws()
- if not const and typed:
- const = self.skip_word('const')
- if const:
- continue
- if not volatile and typed:
- volatile = self.skip_word('volatile')
- if volatile:
- continue
- if not storage:
- if outer in ('member', 'function'):
- if self.skip_word('static'):
- storage = 'static'
- continue
- if self.skip_word('extern'):
- storage = 'extern'
- continue
- if outer == 'member':
- if self.skip_word('mutable'):
- storage = 'mutable'
- continue
- if self.skip_word('register'):
- storage = 'register'
- continue
- if not inline and outer in ('function', 'member'):
- inline = self.skip_word('inline')
- if inline:
- continue
- if not constexpr and outer in ('member', 'function'):
- constexpr = self.skip_word("constexpr")
- if constexpr:
- continue
-
- if outer == 'member':
- if not constinit:
- constinit = self.skip_word('constinit')
- if constinit:
- continue
- if not threadLocal:
- threadLocal = self.skip_word('thread_local')
- if threadLocal:
- continue
- if outer == 'function':
- if not consteval:
- consteval = self.skip_word('consteval')
- if consteval:
- continue
- if not friend:
- friend = self.skip_word('friend')
- if friend:
- continue
- if not virtual:
- virtual = self.skip_word('virtual')
- if virtual:
- continue
- if not explicitSpec:
- explicit = self.skip_word_and_ws('explicit')
- if explicit:
- expr: ASTExpression = None
- if self.skip_string('('):
- expr = self._parse_constant_expression(inTemplate=False)
- if not expr:
- self.fail("Expected constant expression after '('" +
- " in explicit specifier.")
- self.skip_ws()
- if not self.skip_string(')'):
- self.fail("Expected ')' to end explicit specifier.")
- explicitSpec = ASTExplicitSpec(expr)
- continue
- attr = self._parse_attribute()
- if attr:
- attrs.append(attr)
- continue
- break
- return ASTDeclSpecsSimple(storage, threadLocal, inline, virtual,
- explicitSpec, consteval, constexpr, constinit,
- volatile, const, friend, ASTAttributeList(attrs))
-
- def _parse_decl_specs(self, outer: str, typed: bool = True) -> ASTDeclSpecs:
- if outer:
- if outer not in ('type', 'member', 'function', 'templateParam'):
- raise Exception('Internal error, unknown outer "%s".' % outer)
- """
- storage-class-specifier function-specifier "constexpr"
- "volatile" "const" trailing-type-specifier
-
- storage-class-specifier ->
- "static" (only for member_object and function_object)
- | "register"
-
- function-specifier -> "inline" | "virtual" | "explicit" (only for
- function_object)
-
- "constexpr" (only for member_object and function_object)
- """
- leftSpecs = self._parse_decl_specs_simple(outer, typed)
- rightSpecs = None
-
- if typed:
- trailing = self._parse_trailing_type_spec()
- rightSpecs = self._parse_decl_specs_simple(outer, typed)
- else:
- trailing = None
- return ASTDeclSpecs(outer, leftSpecs, rightSpecs, trailing)
-
- def _parse_declarator_name_suffix(
- self, named: bool | str, paramMode: str, typed: bool,
- ) -> ASTDeclaratorNameParamQual | ASTDeclaratorNameBitField:
- # now we should parse the name, and then suffixes
- if named == 'maybe':
- pos = self.pos
- try:
- declId = self._parse_nested_name()
- except DefinitionError:
- self.pos = pos
- declId = None
- elif named == 'single':
- if self.match(identifier_re):
- identifier = ASTIdentifier(self.matched_text)
- nne = ASTNestedNameElement(identifier, None)
- declId = ASTNestedName([nne], [False], rooted=False)
- # if it's a member pointer, we may have '::', which should be an error
- self.skip_ws()
- if self.current_char == ':':
- self.fail("Unexpected ':' after identifier.")
- else:
- declId = None
- elif named:
- declId = self._parse_nested_name()
- else:
- declId = None
- arrayOps = []
- while 1:
- self.skip_ws()
- if typed and self.skip_string('['):
- self.skip_ws()
- if self.skip_string(']'):
- arrayOps.append(ASTArray(None))
- continue
-
- def parser() -> ASTExpression:
- return self._parse_expression()
- value = self._parse_expression_fallback([']'], parser)
- if not self.skip_string(']'):
- self.fail("Expected ']' in end of array operator.")
- arrayOps.append(ASTArray(value))
- continue
- break
- paramQual = self._parse_parameters_and_qualifiers(paramMode)
- if paramQual is None and len(arrayOps) == 0:
- # perhaps a bit-field
- if named and paramMode == 'type' and typed:
- self.skip_ws()
- if self.skip_string(':'):
- size = self._parse_constant_expression(inTemplate=False)
- return ASTDeclaratorNameBitField(declId=declId, size=size)
- return ASTDeclaratorNameParamQual(declId=declId, arrayOps=arrayOps,
- paramQual=paramQual)
-
- def _parse_declarator(self, named: bool | str, paramMode: str,
- typed: bool = True,
- ) -> ASTDeclarator:
- # 'typed' here means 'parse return type stuff'
- if paramMode not in ('type', 'function', 'operatorCast', 'new'):
- raise Exception(
- "Internal error, unknown paramMode '%s'." % paramMode)
- prevErrors = []
- self.skip_ws()
- if typed and self.skip_string('*'):
- self.skip_ws()
- volatile = False
- const = False
- attrList = []
- while 1:
- if not volatile:
- volatile = self.skip_word_and_ws('volatile')
- if volatile:
- continue
- if not const:
- const = self.skip_word_and_ws('const')
- if const:
- continue
- attr = self._parse_attribute()
- if attr is not None:
- attrList.append(attr)
- continue
- break
- next = self._parse_declarator(named, paramMode, typed)
- return ASTDeclaratorPtr(next=next, volatile=volatile, const=const,
- attrs=ASTAttributeList(attrList))
- # TODO: shouldn't we parse an R-value ref here first?
- if typed and self.skip_string("&"):
- attrs = self._parse_attribute_list()
- next = self._parse_declarator(named, paramMode, typed)
- return ASTDeclaratorRef(next=next, attrs=attrs)
- if typed and self.skip_string("..."):
- next = self._parse_declarator(named, paramMode, False)
- return ASTDeclaratorParamPack(next=next)
- if typed and self.current_char == '(': # note: peeking, not skipping
- if paramMode == "operatorCast":
- # TODO: we should be able to parse cast operators which return
- # function pointers. For now, just hax it and ignore.
- return ASTDeclaratorNameParamQual(declId=None, arrayOps=[],
- paramQual=None)
- # maybe this is the beginning of params and quals,try that first,
- # otherwise assume it's noptr->declarator > ( ptr-declarator )
- pos = self.pos
- try:
- # assume this is params and quals
- res = self._parse_declarator_name_suffix(named, paramMode,
- typed)
- return res
- except DefinitionError as exParamQual:
- prevErrors.append((exParamQual,
- "If declarator-id with parameters-and-qualifiers"))
- self.pos = pos
- try:
- assert self.current_char == '('
- self.skip_string('(')
- # TODO: hmm, if there is a name, it must be in inner, right?
- # TODO: hmm, if there must be parameters, they must be
- # inside, right?
- inner = self._parse_declarator(named, paramMode, typed)
- if not self.skip_string(')'):
- self.fail("Expected ')' in \"( ptr-declarator )\"")
- next = self._parse_declarator(named=False,
- paramMode="type",
- typed=typed)
- return ASTDeclaratorParen(inner=inner, next=next)
- except DefinitionError as exNoPtrParen:
- self.pos = pos
- prevErrors.append((exNoPtrParen, "If parenthesis in noptr-declarator"))
- header = "Error in declarator"
- raise self._make_multi_error(prevErrors, header) from exNoPtrParen
- if typed: # pointer to member
- pos = self.pos
- try:
- name = self._parse_nested_name(memberPointer=True)
- self.skip_ws()
- if not self.skip_string('*'):
- self.fail("Expected '*' in pointer to member declarator.")
- self.skip_ws()
- except DefinitionError as e:
- self.pos = pos
- prevErrors.append((e, "If pointer to member declarator"))
- else:
- volatile = False
- const = False
- while 1:
- if not volatile:
- volatile = self.skip_word_and_ws('volatile')
- if volatile:
- continue
- if not const:
- const = self.skip_word_and_ws('const')
- if const:
- continue
- break
- next = self._parse_declarator(named, paramMode, typed)
- return ASTDeclaratorMemPtr(name, const, volatile, next=next)
- pos = self.pos
- try:
- res = self._parse_declarator_name_suffix(named, paramMode, typed)
- # this is a heuristic for error messages, for when there is a < after a
- # nested name, but it was not a successful template argument list
- if self.current_char == '<':
- self.otherErrors.append(self._make_multi_error(prevErrors, ""))
- return res
- except DefinitionError as e:
- self.pos = pos
- prevErrors.append((e, "If declarator-id"))
- header = "Error in declarator or parameters-and-qualifiers"
- raise self._make_multi_error(prevErrors, header) from e
-
- def _parse_initializer(self, outer: str | None = None, allowFallback: bool = True,
- ) -> ASTInitializer:
- # initializer # global vars
- # -> brace-or-equal-initializer
- # | '(' expression-list ')'
- #
- # brace-or-equal-initializer # member vars
- # -> '=' initializer-clause
- # | braced-init-list
- #
- # initializer-clause # function params, non-type template params (with '=' in front)
- # -> assignment-expression
- # | braced-init-list
- #
- # we don't distinguish between global and member vars, so disallow paren:
- #
- # -> braced-init-list # var only
- # | '=' assignment-expression
- # | '=' braced-init-list
- self.skip_ws()
- if outer == 'member':
- bracedInit = self._parse_braced_init_list()
- if bracedInit is not None:
- return ASTInitializer(bracedInit, hasAssign=False)
-
- if not self.skip_string('='):
- return None
-
- bracedInit = self._parse_braced_init_list()
- if bracedInit is not None:
- return ASTInitializer(bracedInit)
-
- if outer == 'member':
- fallbackEnd: list[str] = []
- elif outer == 'templateParam':
- fallbackEnd = [',', '>']
- elif outer is None: # function parameter
- fallbackEnd = [',', ')']
- else:
- self.fail("Internal error, initializer for outer '%s' not "
- "implemented." % outer)
-
- inTemplate = outer == 'templateParam'
-
- def parser() -> ASTExpression:
- return self._parse_assignment_expression(inTemplate=inTemplate)
- value = self._parse_expression_fallback(fallbackEnd, parser, allow=allowFallback)
- return ASTInitializer(value)
-
- def _parse_type(self, named: bool | str, outer: str | None = None) -> ASTType:
- """
- named=False|'maybe'|True: 'maybe' is e.g., for function objects which
- doesn't need to name the arguments
-
- outer == operatorCast: annoying case, we should not take the params
- """
- if outer: # always named
- if outer not in ('type', 'member', 'function',
- 'operatorCast', 'templateParam'):
- raise Exception('Internal error, unknown outer "%s".' % outer)
- if outer != 'operatorCast':
- assert named
- if outer in ('type', 'function'):
- # We allow type objects to just be a name.
- # Some functions don't have normal return types: constructors,
- # destructors, cast operators
- prevErrors = []
- startPos = self.pos
- # first try without the type
- try:
- declSpecs = self._parse_decl_specs(outer=outer, typed=False)
- decl = self._parse_declarator(named=True, paramMode=outer,
- typed=False)
- mustEnd = True
- if outer == 'function':
- # Allow trailing requires on functions.
- self.skip_ws()
- if re.compile(r'requires\b').match(self.definition, self.pos):
- mustEnd = False
- if mustEnd:
- self.assert_end(allowSemicolon=True)
- except DefinitionError as exUntyped:
- if outer == 'type':
- desc = "If just a name"
- elif outer == 'function':
- desc = "If the function has no return type"
- else:
- raise AssertionError from exUntyped
- prevErrors.append((exUntyped, desc))
- self.pos = startPos
- try:
- declSpecs = self._parse_decl_specs(outer=outer)
- decl = self._parse_declarator(named=True, paramMode=outer)
- except DefinitionError as exTyped:
- self.pos = startPos
- if outer == 'type':
- desc = "If typedef-like declaration"
- elif outer == 'function':
- desc = "If the function has a return type"
- else:
- raise AssertionError from exUntyped
- prevErrors.append((exTyped, desc))
- # Retain the else branch for easier debugging.
- # TODO: it would be nice to save the previous stacktrace
- # and output it here.
- if True:
- if outer == 'type':
- header = "Type must be either just a name or a "
- header += "typedef-like declaration."
- elif outer == 'function':
- header = "Error when parsing function declaration."
- else:
- raise AssertionError from exUntyped
- raise self._make_multi_error(prevErrors, header) from exTyped
- else: # NoQA: RET506
- # For testing purposes.
- # do it again to get the proper traceback (how do you
- # reliably save a traceback when an exception is
- # constructed?)
- self.pos = startPos
- typed = True
- declSpecs = self._parse_decl_specs(outer=outer, typed=typed)
- decl = self._parse_declarator(named=True, paramMode=outer,
- typed=typed)
- else:
- paramMode = 'type'
- if outer == 'member':
- named = True
- elif outer == 'operatorCast':
- paramMode = 'operatorCast'
- outer = None
- elif outer == 'templateParam':
- named = 'single'
- declSpecs = self._parse_decl_specs(outer=outer)
- decl = self._parse_declarator(named=named, paramMode=paramMode)
- return ASTType(declSpecs, decl)
-
- def _parse_type_with_init(
- self, named: bool | str,
- outer: str) -> ASTTypeWithInit | ASTTemplateParamConstrainedTypeWithInit:
- if outer:
- assert outer in ('type', 'member', 'function', 'templateParam')
- type = self._parse_type(outer=outer, named=named)
- if outer != 'templateParam':
- init = self._parse_initializer(outer=outer)
- return ASTTypeWithInit(type, init)
- # it could also be a constrained type parameter, e.g., C T = int&
- pos = self.pos
- eExpr = None
- try:
- init = self._parse_initializer(outer=outer, allowFallback=False)
- # note: init may be None if there is no =
- if init is None:
- return ASTTypeWithInit(type, None)
- # we parsed an expression, so we must have a , or a >,
- # otherwise the expression didn't get everything
- self.skip_ws()
- if self.current_char != ',' and self.current_char != '>':
- # pretend it didn't happen
- self.pos = pos
- init = None
- else:
- # we assume that it was indeed an expression
- return ASTTypeWithInit(type, init)
- except DefinitionError as e:
- self.pos = pos
- eExpr = e
- if not self.skip_string("="):
- return ASTTypeWithInit(type, None)
- try:
- typeInit = self._parse_type(named=False, outer=None)
- return ASTTemplateParamConstrainedTypeWithInit(type, typeInit)
- except DefinitionError as eType:
- if eExpr is None:
- raise
- errs = []
- errs.append((eExpr, "If default template argument is an expression"))
- errs.append((eType, "If default template argument is a type"))
- msg = "Error in non-type template parameter"
- msg += " or constrained template parameter."
- raise self._make_multi_error(errs, msg) from eType
-
- def _parse_type_using(self) -> ASTTypeUsing:
- name = self._parse_nested_name()
- self.skip_ws()
- if not self.skip_string('='):
- return ASTTypeUsing(name, None)
- type = self._parse_type(False, None)
- return ASTTypeUsing(name, type)
-
- def _parse_concept(self) -> ASTConcept:
- nestedName = self._parse_nested_name()
- self.skip_ws()
- initializer = self._parse_initializer('member')
- return ASTConcept(nestedName, initializer)
-
- def _parse_class(self) -> ASTClass:
- attrs = self._parse_attribute_list()
- name = self._parse_nested_name()
- self.skip_ws()
- final = self.skip_word_and_ws('final')
- bases = []
- self.skip_ws()
- if self.skip_string(':'):
- while 1:
- self.skip_ws()
- visibility = None
- virtual = False
- pack = False
- if self.skip_word_and_ws('virtual'):
- virtual = True
- if self.match(_visibility_re):
- visibility = self.matched_text
- self.skip_ws()
- if not virtual and self.skip_word_and_ws('virtual'):
- virtual = True
- baseName = self._parse_nested_name()
- self.skip_ws()
- pack = self.skip_string('...')
- bases.append(ASTBaseClass(baseName, visibility, virtual, pack))
- self.skip_ws()
- if self.skip_string(','):
- continue
- break
- return ASTClass(name, final, bases, attrs)
-
- def _parse_union(self) -> ASTUnion:
- attrs = self._parse_attribute_list()
- name = self._parse_nested_name()
- return ASTUnion(name, attrs)
-
- def _parse_enum(self) -> ASTEnum:
- scoped = None # is set by CPPEnumObject
- attrs = self._parse_attribute_list()
- name = self._parse_nested_name()
- self.skip_ws()
- underlyingType = None
- if self.skip_string(':'):
- underlyingType = self._parse_type(named=False)
- return ASTEnum(name, scoped, underlyingType, attrs)
-
- def _parse_enumerator(self) -> ASTEnumerator:
- name = self._parse_nested_name()
- attrs = self._parse_attribute_list()
- self.skip_ws()
- init = None
- if self.skip_string('='):
- self.skip_ws()
-
- def parser() -> ASTExpression:
- return self._parse_constant_expression(inTemplate=False)
- initVal = self._parse_expression_fallback([], parser)
- init = ASTInitializer(initVal)
- return ASTEnumerator(name, init, attrs)
-
- # ==========================================================================
-
- def _parse_template_parameter(self) -> ASTTemplateParam:
- self.skip_ws()
- if self.skip_word('template'):
- # declare a template template parameter
- nestedParams = self._parse_template_parameter_list()
- else:
- nestedParams = None
-
- pos = self.pos
- try:
- # Unconstrained type parameter or template type parameter
- key = None
- self.skip_ws()
- if self.skip_word_and_ws('typename'):
- key = 'typename'
- elif self.skip_word_and_ws('class'):
- key = 'class'
- elif nestedParams:
- self.fail("Expected 'typename' or 'class' after "
- "template template parameter list.")
- else:
- self.fail("Expected 'typename' or 'class' in the "
- "beginning of template type parameter.")
- self.skip_ws()
- parameterPack = self.skip_string('...')
- self.skip_ws()
- if self.match(identifier_re):
- identifier = ASTIdentifier(self.matched_text)
- else:
- identifier = None
- self.skip_ws()
- if not parameterPack and self.skip_string('='):
- default = self._parse_type(named=False, outer=None)
- else:
- default = None
- if self.current_char not in ',>':
- self.fail('Expected "," or ">" after (template) type parameter.')
- data = ASTTemplateKeyParamPackIdDefault(key, identifier,
- parameterPack, default)
- if nestedParams:
- return ASTTemplateParamTemplateType(nestedParams, data)
- else:
- return ASTTemplateParamType(data)
- except DefinitionError as eType:
- if nestedParams:
- raise
- try:
- # non-type parameter or constrained type parameter
- self.pos = pos
- param = self._parse_type_with_init('maybe', 'templateParam')
- self.skip_ws()
- parameterPack = self.skip_string('...')
- return ASTTemplateParamNonType(param, parameterPack)
- except DefinitionError as eNonType:
- self.pos = pos
- header = "Error when parsing template parameter."
- errs = []
- errs.append(
- (eType, "If unconstrained type parameter or template type parameter"))
- errs.append(
- (eNonType, "If constrained type parameter or non-type parameter"))
- raise self._make_multi_error(errs, header) from None
-
- def _parse_template_parameter_list(self) -> ASTTemplateParams:
- # only: '<' parameter-list '>'
- # we assume that 'template' has just been parsed
- templateParams: list[ASTTemplateParam] = []
- self.skip_ws()
- if not self.skip_string("<"):
- self.fail("Expected '<' after 'template'")
- while 1:
- pos = self.pos
- err = None
- try:
- param = self._parse_template_parameter()
- templateParams.append(param)
- except DefinitionError as eParam:
- self.pos = pos
- err = eParam
- self.skip_ws()
- if self.skip_string('>'):
- requiresClause = self._parse_requires_clause()
- return ASTTemplateParams(templateParams, requiresClause)
- elif self.skip_string(','):
- continue
- else:
- header = "Error in template parameter list."
- errs = []
- if err:
- errs.append((err, "If parameter"))
- try:
- self.fail('Expected "," or ">".')
- except DefinitionError as e:
- errs.append((e, "If no parameter"))
- logger.debug(errs)
- raise self._make_multi_error(errs, header)
-
- def _parse_template_introduction(self) -> ASTTemplateIntroduction:
- pos = self.pos
- try:
- concept = self._parse_nested_name()
- except Exception:
- self.pos = pos
- return None
- self.skip_ws()
- if not self.skip_string('{'):
- self.pos = pos
- return None
-
- # for sure it must be a template introduction now
- params = []
- while 1:
- self.skip_ws()
- parameterPack = self.skip_string('...')
- self.skip_ws()
- if not self.match(identifier_re):
- self.fail("Expected identifier in template introduction list.")
- txt_identifier = self.matched_text
- # make sure there isn't a keyword
- if txt_identifier in _keywords:
- self.fail("Expected identifier in template introduction list, "
- "got keyword: %s" % txt_identifier)
- identifier = ASTIdentifier(txt_identifier)
- params.append(ASTTemplateIntroductionParameter(identifier, parameterPack))
-
- self.skip_ws()
- if self.skip_string('}'):
- break
- if self.skip_string(','):
- continue
- self.fail('Error in template introduction list. Expected ",", or "}".')
- return ASTTemplateIntroduction(concept, params)
-
- def _parse_requires_clause(self) -> ASTRequiresClause | None:
- # requires-clause -> 'requires' constraint-logical-or-expression
- # constraint-logical-or-expression
- # -> constraint-logical-and-expression
- # | constraint-logical-or-expression '||' constraint-logical-and-expression
- # constraint-logical-and-expression
- # -> primary-expression
- # | constraint-logical-and-expression '&&' primary-expression
- self.skip_ws()
- if not self.skip_word('requires'):
- return None
-
- def parse_and_expr(self: DefinitionParser) -> ASTExpression:
- andExprs = []
- ops = []
- andExprs.append(self._parse_primary_expression())
- while True:
- self.skip_ws()
- oneMore = False
- if self.skip_string('&&'):
- oneMore = True
- ops.append('&&')
- elif self.skip_word('and'):
- oneMore = True
- ops.append('and')
- if not oneMore:
- break
- andExprs.append(self._parse_primary_expression())
- if len(andExprs) == 1:
- return andExprs[0]
- else:
- return ASTBinOpExpr(andExprs, ops)
-
- orExprs = []
- ops = []
- orExprs.append(parse_and_expr(self))
- while True:
- self.skip_ws()
- oneMore = False
- if self.skip_string('||'):
- oneMore = True
- ops.append('||')
- elif self.skip_word('or'):
- oneMore = True
- ops.append('or')
- if not oneMore:
- break
- orExprs.append(parse_and_expr(self))
- if len(orExprs) == 1:
- return ASTRequiresClause(orExprs[0])
- else:
- return ASTRequiresClause(ASTBinOpExpr(orExprs, ops))
-
- def _parse_template_declaration_prefix(self, objectType: str,
- ) -> ASTTemplateDeclarationPrefix | None:
- templates: list[ASTTemplateParams | ASTTemplateIntroduction] = []
- while 1:
- self.skip_ws()
- # the saved position is only used to provide a better error message
- params: ASTTemplateParams | ASTTemplateIntroduction = None
- pos = self.pos
- if self.skip_word("template"):
- try:
- params = self._parse_template_parameter_list()
- except DefinitionError as e:
- if objectType == 'member' and len(templates) == 0:
- return ASTTemplateDeclarationPrefix(None)
- else:
- raise e
- if objectType == 'concept' and params.requiresClause is not None:
- self.fail('requires-clause not allowed for concept')
- else:
- params = self._parse_template_introduction()
- if not params:
- break
- if objectType == 'concept' and len(templates) > 0:
- self.pos = pos
- self.fail("More than 1 template parameter list for concept.")
- templates.append(params)
- if len(templates) == 0 and objectType == 'concept':
- self.fail('Missing template parameter list for concept.')
- if len(templates) == 0:
- return None
- else:
- return ASTTemplateDeclarationPrefix(templates)
-
- def _check_template_consistency(self, nestedName: ASTNestedName,
- templatePrefix: ASTTemplateDeclarationPrefix,
- fullSpecShorthand: bool, isMember: bool = False,
- ) -> ASTTemplateDeclarationPrefix:
- numArgs = nestedName.num_templates()
- isMemberInstantiation = False
- if not templatePrefix:
- numParams = 0
- else:
- if isMember and templatePrefix.templates is None:
- numParams = 0
- isMemberInstantiation = True
- else:
- numParams = len(templatePrefix.templates)
- if numArgs + 1 < numParams:
- self.fail("Too few template argument lists comapred to parameter"
- " lists. Argument lists: %d, Parameter lists: %d."
- % (numArgs, numParams))
- if numArgs > numParams:
- numExtra = numArgs - numParams
- if not fullSpecShorthand and not isMemberInstantiation:
- msg = "Too many template argument lists compared to parameter" \
- " lists. Argument lists: %d, Parameter lists: %d," \
- " Extra empty parameters lists prepended: %d." \
- % (numArgs, numParams, numExtra)
- msg += " Declaration:\n\t"
- if templatePrefix:
- msg += "%s\n\t" % templatePrefix
- msg += str(nestedName)
- self.warn(msg)
-
- newTemplates: list[ASTTemplateParams | ASTTemplateIntroduction] = []
- for _i in range(numExtra):
- newTemplates.append(ASTTemplateParams([], requiresClause=None))
- if templatePrefix and not isMemberInstantiation:
- newTemplates.extend(templatePrefix.templates)
- templatePrefix = ASTTemplateDeclarationPrefix(newTemplates)
- return templatePrefix
-
- def parse_declaration(self, objectType: str, directiveType: str) -> ASTDeclaration:
- if objectType not in ('class', 'union', 'function', 'member', 'type',
- 'concept', 'enum', 'enumerator'):
- raise Exception('Internal error, unknown objectType "%s".' % objectType)
- if directiveType not in ('class', 'struct', 'union', 'function', 'member', 'var',
- 'type', 'concept',
- 'enum', 'enum-struct', 'enum-class', 'enumerator'):
- raise Exception('Internal error, unknown directiveType "%s".' % directiveType)
- visibility = None
- templatePrefix = None
- trailingRequiresClause = None
- declaration: Any = None
-
- self.skip_ws()
- if self.match(_visibility_re):
- visibility = self.matched_text
-
- if objectType in ('type', 'concept', 'member', 'function', 'class', 'union'):
- templatePrefix = self._parse_template_declaration_prefix(objectType)
-
- if objectType == 'type':
- prevErrors = []
- pos = self.pos
- try:
- if not templatePrefix:
- declaration = self._parse_type(named=True, outer='type')
- except DefinitionError as e:
- prevErrors.append((e, "If typedef-like declaration"))
- self.pos = pos
- pos = self.pos
- try:
- if not declaration:
- declaration = self._parse_type_using()
- except DefinitionError as e:
- self.pos = pos
- prevErrors.append((e, "If type alias or template alias"))
- header = "Error in type declaration."
- raise self._make_multi_error(prevErrors, header) from e
- elif objectType == 'concept':
- declaration = self._parse_concept()
- elif objectType == 'member':
- declaration = self._parse_type_with_init(named=True, outer='member')
- elif objectType == 'function':
- declaration = self._parse_type(named=True, outer='function')
- trailingRequiresClause = self._parse_requires_clause()
- elif objectType == 'class':
- declaration = self._parse_class()
- elif objectType == 'union':
- declaration = self._parse_union()
- elif objectType == 'enum':
- declaration = self._parse_enum()
- elif objectType == 'enumerator':
- declaration = self._parse_enumerator()
- else:
- raise AssertionError
- templatePrefix = self._check_template_consistency(declaration.name,
- templatePrefix,
- fullSpecShorthand=False,
- isMember=objectType == 'member')
- self.skip_ws()
- semicolon = self.skip_string(';')
- return ASTDeclaration(objectType, directiveType, visibility,
- templatePrefix, declaration,
- trailingRequiresClause, semicolon)
-
- def parse_namespace_object(self) -> ASTNamespace:
- templatePrefix = self._parse_template_declaration_prefix(objectType="namespace")
- name = self._parse_nested_name()
- templatePrefix = self._check_template_consistency(name, templatePrefix,
- fullSpecShorthand=False)
- res = ASTNamespace(name, templatePrefix)
- res.objectType = 'namespace' # type: ignore[attr-defined]
- return res
-
- def parse_xref_object(self) -> tuple[ASTNamespace | ASTDeclaration, bool]:
- pos = self.pos
- try:
- templatePrefix = self._parse_template_declaration_prefix(objectType="xref")
- name = self._parse_nested_name()
- # if there are '()' left, just skip them
- self.skip_ws()
- self.skip_string('()')
- self.assert_end()
- templatePrefix = self._check_template_consistency(name, templatePrefix,
- fullSpecShorthand=True)
- res1 = ASTNamespace(name, templatePrefix)
- res1.objectType = 'xref' # type: ignore[attr-defined]
- return res1, True
- except DefinitionError as e1:
- try:
- self.pos = pos
- res2 = self.parse_declaration('function', 'function')
- # if there are '()' left, just skip them
- self.skip_ws()
- self.skip_string('()')
- self.assert_end()
- return res2, False
- except DefinitionError as e2:
- errs = []
- errs.append((e1, "If shorthand ref"))
- errs.append((e2, "If full function ref"))
- msg = "Error in cross-reference."
- raise self._make_multi_error(errs, msg) from e2
-
- def parse_expression(self) -> ASTExpression | ASTType:
- pos = self.pos
- try:
- expr = self._parse_expression()
- self.skip_ws()
- self.assert_end()
- return expr
- except DefinitionError as exExpr:
- self.pos = pos
- try:
- typ = self._parse_type(False)
- self.skip_ws()
- self.assert_end()
- return typ
- except DefinitionError as exType:
- header = "Error when parsing (type) expression."
- errs = []
- errs.append((exExpr, "If expression"))
- errs.append((exType, "If type"))
- raise self._make_multi_error(errs, header) from exType
-
-
-def _make_phony_error_name() -> ASTNestedName:
- nne = ASTNestedNameElement(ASTIdentifier("PhonyNameDueToError"), None)
- return ASTNestedName([nne], [False], rooted=False)
-
-
-class CPPObject(ObjectDescription[ASTDeclaration]):
- """Description of a C++ language object."""
-
- doc_field_types: list[Field] = [
- GroupedField('template parameter', label=_('Template Parameters'),
- names=('tparam', 'template parameter'),
- can_collapse=True),
- ]
-
- option_spec: OptionSpec = {
- 'no-index-entry': directives.flag,
- 'no-contents-entry': directives.flag,
- 'no-typesetting': directives.flag,
- 'noindexentry': directives.flag,
- 'nocontentsentry': directives.flag,
- 'tparam-line-spec': directives.flag,
- 'single-line-parameter-list': directives.flag,
- }
-
- def _add_enumerator_to_parent(self, ast: ASTDeclaration) -> None:
- assert ast.objectType == 'enumerator'
- # find the parent, if it exists && is an enum
- # && it's unscoped,
- # then add the name to the parent scope
- symbol = ast.symbol
- assert symbol
- assert symbol.identOrOp is not None
- assert symbol.templateParams is None
- assert symbol.templateArgs is None
- parentSymbol = symbol.parent
- assert parentSymbol
- if parentSymbol.parent is None:
- # TODO: we could warn, but it is somewhat equivalent to unscoped
- # enums, without the enum
- return # no parent
- parentDecl = parentSymbol.declaration
- if parentDecl is None:
- # the parent is not explicitly declared
- # TODO: we could warn, but it could be a style to just assume
- # enumerator parents to be scoped
- return
- if parentDecl.objectType != 'enum':
- # TODO: maybe issue a warning, enumerators in non-enums is weird,
- # but it is somewhat equivalent to unscoped enums, without the enum
- return
- if parentDecl.directiveType != 'enum':
- return
-
- targetSymbol = parentSymbol.parent
- s = targetSymbol.find_identifier(symbol.identOrOp, matchSelf=False, recurseInAnon=True,
- searchInSiblings=False)
- if s is not None:
- # something is already declared with that name
- return
- declClone = symbol.declaration.clone()
- declClone.enumeratorScopedSymbol = symbol
- Symbol(parent=targetSymbol, identOrOp=symbol.identOrOp,
- templateParams=None, templateArgs=None,
- declaration=declClone,
- docname=self.env.docname, line=self.get_source_info()[1])
-
- def add_target_and_index(self, ast: ASTDeclaration, sig: str,
- signode: TextElement) -> None:
- # general note: name must be lstrip(':')'ed, to remove "::"
- ids = []
- for i in range(1, _max_id + 1):
- try:
- id = ast.get_id(version=i)
- ids.append(id)
- except NoOldIdError:
- assert i < _max_id
- # let's keep the newest first
- ids = list(reversed(ids))
- newestId = ids[0]
- assert newestId # shouldn't be None
- if not re.compile(r'^[a-zA-Z0-9_]*$').match(newestId):
- logger.warning('Index id generation for C++ object "%s" failed, please '
- 'report as bug (id=%s).', ast, newestId,
- location=self.get_location())
-
- name = ast.symbol.get_full_nested_name().get_display_string().lstrip(':')
- # Add index entry, but not if it's a declaration inside a concept
- isInConcept = False
- s = ast.symbol.parent
- while s is not None:
- decl = s.declaration
- s = s.parent
- if decl is None:
- continue
- if decl.objectType == 'concept':
- isInConcept = True
- break
- if not isInConcept and 'no-index-entry' not in self.options:
- strippedName = name
- for prefix in self.env.config.cpp_index_common_prefix:
- if name.startswith(prefix):
- strippedName = strippedName[len(prefix):]
- break
- indexText = self.get_index_text(strippedName)
- self.indexnode['entries'].append(('single', indexText, newestId, '', None))
-
- if newestId not in self.state.document.ids:
- # if the name is not unique, the first one will win
- names = self.env.domaindata['cpp']['names']
- if name not in names:
- names[name] = ast.symbol.docname
- # always add the newest id
- assert newestId
- signode['ids'].append(newestId)
- # only add compatibility ids when there are no conflicts
- for id in ids[1:]:
- if not id: # is None when the element didn't exist in that version
- continue
- if id not in self.state.document.ids:
- signode['ids'].append(id)
- self.state.document.note_explicit_target(signode)
-
- @property
- def object_type(self) -> str:
- raise NotImplementedError
-
- @property
- def display_object_type(self) -> str:
- return self.object_type
-
- def get_index_text(self, name: str) -> str:
- return _('%s (C++ %s)') % (name, self.display_object_type)
-
- def parse_definition(self, parser: DefinitionParser) -> ASTDeclaration:
- return parser.parse_declaration(self.object_type, self.objtype)
-
- def describe_signature(self, signode: desc_signature,
- ast: ASTDeclaration, options: dict) -> None:
- ast.describe_signature(signode, 'lastIsName', self.env, options)
-
- def run(self) -> list[Node]:
- env = self.state.document.settings.env # from ObjectDescription.run
- if 'cpp:parent_symbol' not in env.temp_data:
- root = env.domaindata['cpp']['root_symbol']
- env.temp_data['cpp:parent_symbol'] = root
- env.ref_context['cpp:parent_key'] = root.get_lookup_key()
-
- # The lookup keys assume that no nested scopes exists inside overloaded functions.
- # (see also #5191)
- # Example:
- # .. cpp:function:: void f(int)
- # .. cpp:function:: void f(double)
- #
- # .. cpp:function:: void g()
- #
- # :cpp:any:`boom`
- #
- # So we disallow any signatures inside functions.
- parentSymbol = env.temp_data['cpp:parent_symbol']
- parentDecl = parentSymbol.declaration
- if parentDecl is not None and parentDecl.objectType == 'function':
- msg = ("C++ declarations inside functions are not supported. "
- f"Parent function: {parentSymbol.get_full_nested_name()}\n"
- f"Directive name: {self.name}\nDirective arg: {self.arguments[0]}")
- logger.warning(msg, location=self.get_location())
- name = _make_phony_error_name()
- symbol = parentSymbol.add_name(name)
- env.temp_data['cpp:last_symbol'] = symbol
- return []
- # When multiple declarations are made in the same directive
- # they need to know about each other to provide symbol lookup for function parameters.
- # We use last_symbol to store the latest added declaration in a directive.
- env.temp_data['cpp:last_symbol'] = None
- return super().run()
-
- def handle_signature(self, sig: str, signode: desc_signature) -> ASTDeclaration:
- parentSymbol: Symbol = self.env.temp_data['cpp:parent_symbol']
-
- max_len = (self.env.config.cpp_maximum_signature_line_length
- or self.env.config.maximum_signature_line_length
- or 0)
- signode['multi_line_parameter_list'] = (
- 'single-line-parameter-list' not in self.options
- and (len(sig) > max_len > 0)
- )
-
- parser = DefinitionParser(sig, location=signode, config=self.env.config)
- try:
- ast = self.parse_definition(parser)
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=signode)
- # It is easier to assume some phony name than handling the error in
- # the possibly inner declarations.
- name = _make_phony_error_name()
- symbol = parentSymbol.add_name(name)
- self.env.temp_data['cpp:last_symbol'] = symbol
- raise ValueError from e
-
- try:
- symbol = parentSymbol.add_declaration(
- ast, docname=self.env.docname, line=self.get_source_info()[1])
- # append the new declaration to the sibling list
- assert symbol.siblingAbove is None
- assert symbol.siblingBelow is None
- symbol.siblingAbove = self.env.temp_data['cpp:last_symbol']
- if symbol.siblingAbove is not None:
- assert symbol.siblingAbove.siblingBelow is None
- symbol.siblingAbove.siblingBelow = symbol
- self.env.temp_data['cpp:last_symbol'] = symbol
- except _DuplicateSymbolError as e:
- # Assume we are actually in the old symbol,
- # instead of the newly created duplicate.
- self.env.temp_data['cpp:last_symbol'] = e.symbol
- msg = __("Duplicate C++ declaration, also defined at %s:%s.\n"
- "Declaration is '.. cpp:%s:: %s'.")
- msg = msg % (e.symbol.docname, e.symbol.line,
- self.display_object_type, sig)
- logger.warning(msg, location=signode)
-
- if ast.objectType == 'enumerator':
- self._add_enumerator_to_parent(ast)
-
- # note: handle_signature may be called multiple time per directive,
- # if it has multiple signatures, so don't mess with the original options.
- options = dict(self.options)
- options['tparam-line-spec'] = 'tparam-line-spec' in self.options
- self.describe_signature(signode, ast, options)
- return ast
-
- def before_content(self) -> None:
- lastSymbol: Symbol = self.env.temp_data['cpp:last_symbol']
- assert lastSymbol
- self.oldParentSymbol = self.env.temp_data['cpp:parent_symbol']
- self.oldParentKey: LookupKey = self.env.ref_context['cpp:parent_key']
- self.env.temp_data['cpp:parent_symbol'] = lastSymbol
- self.env.ref_context['cpp:parent_key'] = lastSymbol.get_lookup_key()
- self.env.temp_data['cpp:domain_name'] = (
- *self.env.temp_data.get('cpp:domain_name', ()),
- lastSymbol.identOrOp._stringify(str),
- )
-
- def after_content(self) -> None:
- self.env.temp_data['cpp:parent_symbol'] = self.oldParentSymbol
- self.env.ref_context['cpp:parent_key'] = self.oldParentKey
- self.env.temp_data['cpp:domain_name'] = self.env.temp_data['cpp:domain_name'][:-1]
-
- def _object_hierarchy_parts(self, sig_node: desc_signature) -> tuple[str, ...]:
- return tuple(s.identOrOp._stringify(str) for s in
- self.env.temp_data['cpp:last_symbol'].get_full_nested_name().names)
-
- def _toc_entry_name(self, sig_node: desc_signature) -> str:
- if not sig_node.get('_toc_parts'):
- return ''
-
- config = self.env.app.config
- objtype = sig_node.parent.get('objtype')
- if config.add_function_parentheses and objtype in {'function', 'method'}:
- parens = '()'
- else:
- parens = ''
- *parents, name = sig_node['_toc_parts']
- if config.toc_object_entries_show_parents == 'domain':
- return '::'.join((*self.env.temp_data.get('cpp:domain_name', ()), name + parens))
- if config.toc_object_entries_show_parents == 'hide':
- return name + parens
- if config.toc_object_entries_show_parents == 'all':
- return '::'.join(parents + [name + parens])
- return ''
-
-
-class CPPTypeObject(CPPObject):
- object_type = 'type'
-
-
-class CPPConceptObject(CPPObject):
- object_type = 'concept'
-
-
-class CPPMemberObject(CPPObject):
- object_type = 'member'
-
-
-class CPPFunctionObject(CPPObject):
- object_type = 'function'
-
- doc_field_types = CPPObject.doc_field_types + [
- GroupedField('parameter', label=_('Parameters'),
- names=('param', 'parameter', 'arg', 'argument'),
- can_collapse=True),
- GroupedField('exceptions', label=_('Throws'), rolename='expr',
- names=('throws', 'throw', 'exception'),
- can_collapse=True),
- GroupedField('retval', label=_('Return values'),
- names=('retvals', 'retval'),
- can_collapse=True),
- Field('returnvalue', label=_('Returns'), has_arg=False,
- names=('returns', 'return')),
- ]
-
-
-class CPPClassObject(CPPObject):
- object_type = 'class'
-
- @property
- def display_object_type(self) -> str:
- # the distinction between class and struct is only cosmetic
- assert self.objtype in ('class', 'struct')
- return self.objtype
-
-
-class CPPUnionObject(CPPObject):
- object_type = 'union'
-
-
-class CPPEnumObject(CPPObject):
- object_type = 'enum'
-
-
-class CPPEnumeratorObject(CPPObject):
- object_type = 'enumerator'
-
-
-class CPPNamespaceObject(SphinxDirective):
- """
- This directive is just to tell Sphinx that we're documenting stuff in
- namespace foo.
- """
-
- has_content = False
- required_arguments = 1
- optional_arguments = 0
- final_argument_whitespace = True
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- rootSymbol = self.env.domaindata['cpp']['root_symbol']
- if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
- symbol = rootSymbol
- stack: list[Symbol] = []
- else:
- parser = DefinitionParser(self.arguments[0],
- location=self.get_location(),
- config=self.config)
- try:
- ast = parser.parse_namespace_object()
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=self.get_location())
- name = _make_phony_error_name()
- ast = ASTNamespace(name, None)
- symbol = rootSymbol.add_name(ast.nestedName, ast.templatePrefix)
- stack = [symbol]
- self.env.temp_data['cpp:parent_symbol'] = symbol
- self.env.temp_data['cpp:namespace_stack'] = stack
- self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
- return []
-
-
-class CPPNamespacePushObject(SphinxDirective):
- has_content = False
- required_arguments = 1
- optional_arguments = 0
- final_argument_whitespace = True
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
- return []
- parser = DefinitionParser(self.arguments[0],
- location=self.get_location(),
- config=self.config)
- try:
- ast = parser.parse_namespace_object()
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=self.get_location())
- name = _make_phony_error_name()
- ast = ASTNamespace(name, None)
- oldParent = self.env.temp_data.get('cpp:parent_symbol', None)
- if not oldParent:
- oldParent = self.env.domaindata['cpp']['root_symbol']
- symbol = oldParent.add_name(ast.nestedName, ast.templatePrefix)
- stack = self.env.temp_data.get('cpp:namespace_stack', [])
- stack.append(symbol)
- self.env.temp_data['cpp:parent_symbol'] = symbol
- self.env.temp_data['cpp:namespace_stack'] = stack
- self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
- return []
-
-
-class CPPNamespacePopObject(SphinxDirective):
- has_content = False
- required_arguments = 0
- optional_arguments = 0
- final_argument_whitespace = True
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- stack = self.env.temp_data.get('cpp:namespace_stack', None)
- if not stack or len(stack) == 0:
- logger.warning("C++ namespace pop on empty stack. Defaulting to global scope.",
- location=self.get_location())
- stack = []
- else:
- stack.pop()
- if len(stack) > 0:
- symbol = stack[-1]
- else:
- symbol = self.env.domaindata['cpp']['root_symbol']
- self.env.temp_data['cpp:parent_symbol'] = symbol
- self.env.temp_data['cpp:namespace_stack'] = stack
- self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
- return []
-
-
-class AliasNode(nodes.Element):
- def __init__(self, sig: str, aliasOptions: dict,
- env: BuildEnvironment | None = None,
- parentKey: LookupKey | None = None) -> None:
- super().__init__()
- self.sig = sig
- self.aliasOptions = aliasOptions
- if env is not None:
- if 'cpp:parent_symbol' not in env.temp_data:
- root = env.domaindata['cpp']['root_symbol']
- env.temp_data['cpp:parent_symbol'] = root
- env.ref_context['cpp:parent_key'] = root.get_lookup_key()
- self.parentKey = env.ref_context['cpp:parent_key']
- else:
- assert parentKey is not None
- self.parentKey = parentKey
-
- def copy(self) -> AliasNode:
- return self.__class__(self.sig, self.aliasOptions,
- env=None, parentKey=self.parentKey)
-
-
-class AliasTransform(SphinxTransform):
- default_priority = ReferencesResolver.default_priority - 1
-
- def _render_symbol(self, s: Symbol, maxdepth: int, skipThis: bool,
- aliasOptions: dict, renderOptions: dict,
- document: Any) -> list[Node]:
- if maxdepth == 0:
- recurse = True
- elif maxdepth == 1:
- recurse = False
- else:
- maxdepth -= 1
- recurse = True
-
- nodes: list[Node] = []
- if not skipThis:
- signode = addnodes.desc_signature('', '')
- nodes.append(signode)
- s.declaration.describe_signature(signode, 'markName', self.env, renderOptions)
-
- if recurse:
- if skipThis:
- childContainer: list[Node] | addnodes.desc = nodes
- else:
- content = addnodes.desc_content()
- desc = addnodes.desc()
- content.append(desc)
- desc.document = document
- desc['domain'] = 'cpp'
- # 'desctype' is a backwards compatible attribute
- desc['objtype'] = desc['desctype'] = 'alias'
- desc['no-index'] = True
- childContainer = desc
-
- for sChild in s._children:
- if sChild.declaration is None:
- continue
- if sChild.declaration.objectType in ("templateParam", "functionParam"):
- continue
- childNodes = self._render_symbol(
- sChild, maxdepth=maxdepth, skipThis=False,
- aliasOptions=aliasOptions, renderOptions=renderOptions,
- document=document)
- childContainer.extend(childNodes)
-
- if not skipThis and len(desc.children) != 0:
- nodes.append(content)
- return nodes
-
- def apply(self, **kwargs: Any) -> None:
- for node in self.document.findall(AliasNode):
- sig = node.sig
- parentKey = node.parentKey
- try:
- parser = DefinitionParser(sig, location=node,
- config=self.env.config)
- ast, isShorthand = parser.parse_xref_object()
- parser.assert_end()
- except DefinitionError as e:
- logger.warning(e, location=node)
- ast, isShorthand = None, None
-
- if ast is None:
- # could not be parsed, so stop here
- signode = addnodes.desc_signature(sig, '')
- signode.clear()
- signode += addnodes.desc_name(sig, sig)
- node.replace_self(signode)
- continue
-
- rootSymbol: Symbol = self.env.domains['cpp'].data['root_symbol']
- parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
- if not parentSymbol:
- logger.debug("Target: %s", sig)
- logger.debug("ParentKey: %s", parentKey)
- logger.debug(rootSymbol.dump(1))
- assert parentSymbol # should be there
-
- symbols: list[Symbol] = []
- if isShorthand:
- assert isinstance(ast, ASTNamespace)
- ns = ast
- name = ns.nestedName
- if ns.templatePrefix:
- templateDecls = ns.templatePrefix.templates
- else:
- templateDecls = []
- symbols, failReason = parentSymbol.find_name(
- nestedName=name,
- templateDecls=templateDecls,
- typ='any',
- templateShorthand=True,
- matchSelf=True, recurseInAnon=True,
- searchInSiblings=False)
- if symbols is None:
- symbols = []
- else:
- assert isinstance(ast, ASTDeclaration)
- decl = ast
- name = decl.name
- s = parentSymbol.find_declaration(decl, 'any',
- templateShorthand=True,
- matchSelf=True, recurseInAnon=True)
- if s is not None:
- symbols.append(s)
-
- symbols = [s for s in symbols if s.declaration is not None]
-
- if len(symbols) == 0:
- signode = addnodes.desc_signature(sig, '')
- node.append(signode)
- signode.clear()
- signode += addnodes.desc_name(sig, sig)
-
- logger.warning("Can not find C++ declaration for alias '%s'." % ast,
- location=node)
- node.replace_self(signode)
- else:
- nodes = []
- renderOptions = {
- 'tparam-line-spec': False,
- }
- for s in symbols:
- assert s.declaration is not None
- res = self._render_symbol(
- s, maxdepth=node.aliasOptions['maxdepth'],
- skipThis=node.aliasOptions['noroot'],
- aliasOptions=node.aliasOptions,
- renderOptions=renderOptions,
- document=node.document)
- nodes.extend(res)
- node.replace_self(nodes)
-
-
-class CPPAliasObject(ObjectDescription):
- option_spec: OptionSpec = {
- 'maxdepth': directives.nonnegative_int,
- 'noroot': directives.flag,
- }
-
- def run(self) -> list[Node]:
- """
- On purpose this doesn't call the ObjectDescription version, but is based on it.
- Each alias signature may expand into multiple real signatures (an overload set).
- The code is therefore based on the ObjectDescription version.
- """
- if ':' in self.name:
- self.domain, self.objtype = self.name.split(':', 1)
- else:
- self.domain, self.objtype = '', self.name
-
- node = addnodes.desc()
- node.document = self.state.document
- node['domain'] = self.domain
- # 'desctype' is a backwards compatible attribute
- node['objtype'] = node['desctype'] = self.objtype
-
- self.names: list[str] = []
- aliasOptions = {
- 'maxdepth': self.options.get('maxdepth', 1),
- 'noroot': 'noroot' in self.options,
- }
- if aliasOptions['noroot'] and aliasOptions['maxdepth'] == 1:
- logger.warning("Error in C++ alias declaration."
- " Requested 'noroot' but 'maxdepth' 1."
- " When skipping the root declaration,"
- " need 'maxdepth' 0 for infinite or at least 2.",
- location=self.get_location())
- signatures = self.get_signatures()
- for sig in signatures:
- node.append(AliasNode(sig, aliasOptions, env=self.env))
-
- contentnode = addnodes.desc_content()
- node.append(contentnode)
- self.before_content()
- self.state.nested_parse(self.content, self.content_offset, contentnode)
- self.env.temp_data['object'] = None
- self.after_content()
- return [node]
-
-
-class CPPXRefRole(XRefRole):
- def process_link(self, env: BuildEnvironment, refnode: Element, has_explicit_title: bool,
- title: str, target: str) -> tuple[str, str]:
- refnode.attributes.update(env.ref_context)
-
- if not has_explicit_title:
- # major hax: replace anon names via simple string manipulation.
- # Can this actually fail?
- title = anon_identifier_re.sub("[anonymous]", str(title))
-
- if refnode['reftype'] == 'any':
- # Assume the removal part of fix_parens for :any: refs.
- # The addition part is done with the reference is resolved.
- if not has_explicit_title and title.endswith('()'):
- title = title[:-2]
- if target.endswith('()'):
- target = target[:-2]
- # TODO: should this really be here?
- if not has_explicit_title:
- target = target.lstrip('~') # only has a meaning for the title
- # if the first character is a tilde, don't display the module/class
- # parts of the contents
- if title[:1] == '~':
- title = title[1:]
- dcolon = title.rfind('::')
- if dcolon != -1:
- title = title[dcolon + 2:]
- return title, target
-
-
-class CPPExprRole(SphinxRole):
- def __init__(self, asCode: bool) -> None:
- super().__init__()
- if asCode:
- # render the expression as inline code
- self.class_type = 'cpp-expr'
- else:
- # render the expression as inline text
- self.class_type = 'cpp-texpr'
-
- def run(self) -> tuple[list[Node], list[system_message]]:
- text = self.text.replace('\n', ' ')
- parser = DefinitionParser(text,
- location=self.get_location(),
- config=self.config)
- # attempt to mimic XRefRole classes, except that...
- try:
- ast = parser.parse_expression()
- except DefinitionError as ex:
- logger.warning('Unparseable C++ expression: %r\n%s', text, ex,
- location=self.get_location())
- # see below
- return [addnodes.desc_inline('cpp', text, text, classes=[self.class_type])], []
- parentSymbol = self.env.temp_data.get('cpp:parent_symbol', None)
- if parentSymbol is None:
- parentSymbol = self.env.domaindata['cpp']['root_symbol']
- # ...most if not all of these classes should really apply to the individual references,
- # not the container node
- signode = addnodes.desc_inline('cpp', classes=[self.class_type])
- ast.describe_signature(signode, 'markType', self.env, parentSymbol)
- return [signode], []
-
-
-class CPPDomain(Domain):
- """C++ language domain.
-
- There are two 'object type' attributes being used::
-
- - Each object created from directives gets an assigned .objtype from ObjectDescription.run.
- This is simply the directive name.
- - Each declaration (see the distinction in the directives dict below) has a nested .ast of
- type ASTDeclaration. That object has .objectType which corresponds to the keys in the
- object_types dict below. They are the core different types of declarations in C++ that
- one can document.
- """
- name = 'cpp'
- label = 'C++'
- object_types = {
- 'class': ObjType(_('class'), 'class', 'struct', 'identifier', 'type'),
- 'union': ObjType(_('union'), 'union', 'identifier', 'type'),
- 'function': ObjType(_('function'), 'func', 'identifier', 'type'),
- 'member': ObjType(_('member'), 'member', 'var', 'identifier'),
- 'type': ObjType(_('type'), 'identifier', 'type'),
- 'concept': ObjType(_('concept'), 'concept', 'identifier'),
- 'enum': ObjType(_('enum'), 'enum', 'identifier', 'type'),
- 'enumerator': ObjType(_('enumerator'), 'enumerator', 'identifier'),
- # generated object types
- 'functionParam': ObjType(_('function parameter'), 'identifier', 'member', 'var'), # noqa: E501
- 'templateParam': ObjType(_('template parameter'),
- 'identifier', 'class', 'struct', 'union', 'member', 'var', 'type'), # noqa: E501
- }
-
- directives = {
- # declarations
- 'class': CPPClassObject,
- 'struct': CPPClassObject,
- 'union': CPPUnionObject,
- 'function': CPPFunctionObject,
- 'member': CPPMemberObject,
- 'var': CPPMemberObject,
- 'type': CPPTypeObject,
- 'concept': CPPConceptObject,
- 'enum': CPPEnumObject,
- 'enum-struct': CPPEnumObject,
- 'enum-class': CPPEnumObject,
- 'enumerator': CPPEnumeratorObject,
- # scope control
- 'namespace': CPPNamespaceObject,
- 'namespace-push': CPPNamespacePushObject,
- 'namespace-pop': CPPNamespacePopObject,
- # other
- 'alias': CPPAliasObject,
- }
- roles = {
- 'any': CPPXRefRole(),
- 'class': CPPXRefRole(),
- 'struct': CPPXRefRole(),
- 'union': CPPXRefRole(),
- 'func': CPPXRefRole(fix_parens=True),
- 'member': CPPXRefRole(),
- 'var': CPPXRefRole(),
- 'type': CPPXRefRole(),
- 'concept': CPPXRefRole(),
- 'enum': CPPXRefRole(),
- 'enumerator': CPPXRefRole(),
- 'expr': CPPExprRole(asCode=True),
- 'texpr': CPPExprRole(asCode=False),
- }
- initial_data = {
- 'root_symbol': Symbol(None, None, None, None, None, None, None),
- 'names': {}, # full name for indexing -> docname
- }
-
- def clear_doc(self, docname: str) -> None:
- if Symbol.debug_show_tree:
- logger.debug("clear_doc: %s", docname)
- logger.debug("\tbefore:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tbefore end")
-
- rootSymbol = self.data['root_symbol']
- rootSymbol.clear_doc(docname)
-
- if Symbol.debug_show_tree:
- logger.debug("\tafter:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tafter end")
- logger.debug("clear_doc end: %s", docname)
- for name, nDocname in list(self.data['names'].items()):
- if nDocname == docname:
- del self.data['names'][name]
-
- def process_doc(self, env: BuildEnvironment, docname: str,
- document: nodes.document) -> None:
- if Symbol.debug_show_tree:
- logger.debug("process_doc: %s", docname)
- logger.debug(self.data['root_symbol'].dump(0))
- logger.debug("process_doc end: %s", docname)
-
- def process_field_xref(self, pnode: pending_xref) -> None:
- pnode.attributes.update(self.env.ref_context)
-
- def merge_domaindata(self, docnames: list[str], otherdata: dict) -> None:
- if Symbol.debug_show_tree:
- logger.debug("merge_domaindata:")
- logger.debug("\tself:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tself end")
- logger.debug("\tother:")
- logger.debug(otherdata['root_symbol'].dump(1))
- logger.debug("\tother end")
-
- self.data['root_symbol'].merge_with(otherdata['root_symbol'],
- docnames, self.env)
- ourNames = self.data['names']
- for name, docname in otherdata['names'].items():
- if docname in docnames:
- if name not in ourNames:
- ourNames[name] = docname
- # no need to warn on duplicates, the symbol merge already does that
- if Symbol.debug_show_tree:
- logger.debug("\tresult:")
- logger.debug(self.data['root_symbol'].dump(1))
- logger.debug("\tresult end")
- logger.debug("merge_domaindata end")
-
- def _resolve_xref_inner(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- typ: str, target: str, node: pending_xref,
- contnode: Element) -> tuple[Element | None, str | None]:
- # add parens again for those that could be functions
- if typ in ('any', 'func'):
- target += '()'
- parser = DefinitionParser(target, location=node, config=env.config)
- try:
- ast, isShorthand = parser.parse_xref_object()
- except DefinitionError as e:
- # as arg to stop flake8 from complaining
- def findWarning(e: Exception) -> tuple[str, Exception]:
- if typ != 'any' and typ != 'func':
- return target, e
- # hax on top of the paren hax to try to get correct errors
- parser2 = DefinitionParser(target[:-2],
- location=node,
- config=env.config)
- try:
- parser2.parse_xref_object()
- except DefinitionError as e2:
- return target[:-2], e2
- # strange, that we don't get the error now, use the original
- return target, e
- t, ex = findWarning(e)
- logger.warning('Unparseable C++ cross-reference: %r\n%s', t, ex,
- location=node)
- return None, None
- parentKey: LookupKey = node.get("cpp:parent_key", None)
- rootSymbol = self.data['root_symbol']
- if parentKey:
- parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
- if not parentSymbol:
- logger.debug("Target: %s", target)
- logger.debug("ParentKey: %s", parentKey.data)
- logger.debug(rootSymbol.dump(1))
- assert parentSymbol # should be there
- else:
- parentSymbol = rootSymbol
-
- if isShorthand:
- assert isinstance(ast, ASTNamespace)
- ns = ast
- name = ns.nestedName
- if ns.templatePrefix:
- templateDecls = ns.templatePrefix.templates
- else:
- templateDecls = []
- # let's be conservative with the sibling lookup for now
- searchInSiblings = (not name.rooted) and len(name.names) == 1
- symbols, failReason = parentSymbol.find_name(
- name, templateDecls, typ,
- templateShorthand=True,
- matchSelf=True, recurseInAnon=True,
- searchInSiblings=searchInSiblings)
- if symbols is None:
- if typ == 'identifier':
- if failReason == 'templateParamInQualified':
- # this is an xref we created as part of a signature,
- # so don't warn for names nested in template parameters
- raise NoUri(str(name), typ)
- s = None
- else:
- # just refer to the arbitrarily first symbol
- s = symbols[0]
- else:
- assert isinstance(ast, ASTDeclaration)
- decl = ast
- name = decl.name
- s = parentSymbol.find_declaration(decl, typ,
- templateShorthand=True,
- matchSelf=True, recurseInAnon=True)
- if s is None or s.declaration is None:
- txtName = str(name)
- if txtName.startswith('std::') or txtName == 'std':
- raise NoUri(txtName, typ)
- return None, None
-
- if typ.startswith('cpp:'):
- typ = typ[4:]
- declTyp = s.declaration.objectType
-
- def checkType() -> bool:
- if typ == 'any':
- return True
- objtypes = self.objtypes_for_role(typ)
- if objtypes:
- return declTyp in objtypes
- logger.debug(f"Type is {typ}, declaration type is {declTyp}") # NoQA: G004
- raise AssertionError
- if not checkType():
- logger.warning("cpp:%s targets a %s (%s).",
- typ, s.declaration.objectType,
- s.get_full_nested_name(),
- location=node)
-
- declaration = s.declaration
- if isShorthand:
- fullNestedName = s.get_full_nested_name()
- displayName = fullNestedName.get_display_string().lstrip(':')
- else:
- displayName = decl.get_display_string()
- docname = s.docname
- assert docname
-
- # the non-identifier refs are cross-references, which should be processed:
- # - fix parenthesis due to operator() and add_function_parentheses
- if typ != "identifier":
- title = contnode.pop(0).astext()
- # If it's operator(), we need to add '()' if explicit function parens
- # are requested. Then the Sphinx machinery will add another pair.
- # Also, if it's an 'any' ref that resolves to a function, we need to add
- # parens as well.
- # However, if it's a non-shorthand function ref, for a function that
- # takes no arguments, then we may need to add parens again as well.
- addParen = 0
- if not node.get('refexplicit', False) and declaration.objectType == 'function':
- if isShorthand:
- # this is just the normal haxing for 'any' roles
- if env.config.add_function_parentheses and typ == 'any':
- addParen += 1
- # and now this stuff for operator()
- if (env.config.add_function_parentheses and typ == 'func' and
- title.endswith('operator()')):
- addParen += 1
- if (typ in ('any', 'func') and
- title.endswith('operator') and
- displayName.endswith('operator()')):
- addParen += 1
- else:
- # our job here is to essentially nullify add_function_parentheses
- if env.config.add_function_parentheses:
- if typ == 'any' and displayName.endswith('()'):
- addParen += 1
- elif typ == 'func':
- if title.endswith('()') and not displayName.endswith('()'):
- title = title[:-2]
- else:
- if displayName.endswith('()'):
- addParen += 1
- if addParen > 0:
- title += '()' * addParen
- # and reconstruct the title again
- contnode += nodes.Text(title)
- res = make_refnode(builder, fromdocname, docname,
- declaration.get_newest_id(), contnode, displayName,
- ), declaration.objectType
- return res
-
- def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- typ: str, target: str, node: pending_xref, contnode: Element,
- ) -> Element | None:
- return self._resolve_xref_inner(env, fromdocname, builder, typ,
- target, node, contnode)[0]
-
- def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- target: str, node: pending_xref, contnode: Element,
- ) -> list[tuple[str, Element]]:
- with logging.suppress_logging():
- retnode, objtype = self._resolve_xref_inner(env, fromdocname, builder,
- 'any', target, node, contnode)
- if retnode:
- if objtype == 'templateParam':
- return [('cpp:templateParam', retnode)]
- else:
- return [('cpp:' + self.role_for_objtype(objtype), retnode)]
- return []
-
- def get_objects(self) -> Iterator[tuple[str, str, str, str, str, int]]:
- rootSymbol = self.data['root_symbol']
- for symbol in rootSymbol.get_all_symbols():
- if symbol.declaration is None:
- continue
- assert symbol.docname
- fullNestedName = symbol.get_full_nested_name()
- name = str(fullNestedName).lstrip(':')
- dispname = fullNestedName.get_display_string().lstrip(':')
- objectType = symbol.declaration.objectType
- docname = symbol.docname
- newestId = symbol.declaration.get_newest_id()
- yield (name, dispname, objectType, docname, newestId, 1)
-
- def get_full_qualified_name(self, node: Element) -> str:
- target = node.get('reftarget', None)
- if target is None:
- return None
- parentKey: LookupKey = node.get("cpp:parent_key", None)
- if parentKey is None or len(parentKey.data) <= 0:
- return None
-
- rootSymbol = self.data['root_symbol']
- parentSymbol = rootSymbol.direct_lookup(parentKey)
- parentName = parentSymbol.get_full_nested_name()
- return '::'.join([str(parentName), target])
-
-
-def setup(app: Sphinx) -> dict[str, Any]:
- app.add_domain(CPPDomain)
- app.add_config_value("cpp_index_common_prefix", [], 'env')
- app.add_config_value("cpp_id_attributes", [], 'env')
- app.add_config_value("cpp_paren_attributes", [], 'env')
- app.add_config_value("cpp_maximum_signature_line_length", None, 'env', types={int, None})
- app.add_post_transform(AliasTransform)
-
- # debug stuff
- app.add_config_value("cpp_debug_lookup", False, '')
- app.add_config_value("cpp_debug_show_tree", False, '')
-
- def initStuff(app):
- Symbol.debug_lookup = app.config.cpp_debug_lookup
- Symbol.debug_show_tree = app.config.cpp_debug_show_tree
- app.config.cpp_index_common_prefix.sort(reverse=True)
- app.connect("builder-inited", initStuff)
-
- return {
- 'version': 'builtin',
- 'env_version': 9,
- 'parallel_read_safe': True,
- 'parallel_write_safe': True,
- }
diff --git a/sphinx/domains/cpp/__init__.py b/sphinx/domains/cpp/__init__.py
new file mode 100644
index 0000000..9e1f075
--- /dev/null
+++ b/sphinx/domains/cpp/__init__.py
@@ -0,0 +1,1181 @@
+"""The C++ language domain."""
+
+from __future__ import annotations
+
+import re
+from typing import TYPE_CHECKING, Any, ClassVar
+
+from docutils import nodes
+from docutils.parsers.rst import directives
+
+from sphinx import addnodes
+from sphinx.directives import ObjectDescription
+from sphinx.domains import Domain, ObjType
+from sphinx.domains.cpp._ast import (
+ ASTDeclaration,
+ ASTIdentifier,
+ ASTNamespace,
+ ASTNestedName,
+ ASTNestedNameElement,
+)
+from sphinx.domains.cpp._ids import _max_id
+from sphinx.domains.cpp._parser import DefinitionParser
+from sphinx.domains.cpp._symbol import Symbol, _DuplicateSymbolError
+from sphinx.errors import NoUri
+from sphinx.locale import _, __
+from sphinx.roles import SphinxRole, XRefRole
+from sphinx.transforms import SphinxTransform
+from sphinx.transforms.post_transforms import ReferencesResolver
+from sphinx.util import logging
+from sphinx.util.cfamily import (
+ DefinitionError,
+ NoOldIdError,
+ anon_identifier_re,
+)
+from sphinx.util.docfields import Field, GroupedField
+from sphinx.util.docutils import SphinxDirective
+from sphinx.util.nodes import make_refnode
+
+if TYPE_CHECKING:
+ from collections.abc import Iterator
+
+ from docutils.nodes import Element, Node, TextElement, system_message
+
+ from sphinx.addnodes import desc_signature, pending_xref
+ from sphinx.application import Sphinx
+ from sphinx.builders import Builder
+ from sphinx.domains.cpp._symbol import LookupKey
+ from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
+
+# re-export objects for backwards compatibility
+# xref https://github.com/sphinx-doc/sphinx/issues/12295
+from sphinx.domains.cpp._ast import ( # NoQA: F401
+ ASTAlignofExpr,
+ ASTArray,
+ ASTAssignmentExpr,
+ ASTBase,
+ ASTBaseClass,
+ ASTBinOpExpr,
+ ASTBooleanLiteral,
+ ASTBracedInitList,
+ ASTCastExpr,
+ ASTCharLiteral,
+ ASTClass,
+ ASTCommaExpr,
+ ASTConcept,
+ ASTConditionalExpr,
+ ASTDeclarator,
+ ASTDeclaratorMemPtr,
+ ASTDeclaratorNameBitField,
+ ASTDeclaratorNameParamQual,
+ ASTDeclaratorParamPack,
+ ASTDeclaratorParen,
+ ASTDeclaratorPtr,
+ ASTDeclaratorRef,
+ ASTDeclSpecs,
+ ASTDeclSpecsSimple,
+ ASTDeleteExpr,
+ ASTEnum,
+ ASTEnumerator,
+ ASTExplicitCast,
+ ASTExplicitSpec,
+ ASTExpression,
+ ASTFallbackExpr,
+ ASTFoldExpr,
+ ASTFunctionParameter,
+ ASTIdExpression,
+ ASTInitializer,
+ ASTLiteral,
+ ASTNewExpr,
+ ASTNoexceptExpr,
+ ASTNoexceptSpec,
+ ASTNumberLiteral,
+ ASTOperator,
+ ASTOperatorBuildIn,
+ ASTOperatorLiteral,
+ ASTOperatorType,
+ ASTPackExpansionExpr,
+ ASTParametersQualifiers,
+ ASTParenExpr,
+ ASTParenExprList,
+ ASTPointerLiteral,
+ ASTPostfixArray,
+ ASTPostfixCallExpr,
+ ASTPostfixDec,
+ ASTPostfixExpr,
+ ASTPostfixInc,
+ ASTPostfixMember,
+ ASTPostfixMemberOfPointer,
+ ASTPostfixOp,
+ ASTRequiresClause,
+ ASTSizeofExpr,
+ ASTSizeofParamPack,
+ ASTSizeofType,
+ ASTStringLiteral,
+ ASTTemplateArgConstant,
+ ASTTemplateArgs,
+ ASTTemplateDeclarationPrefix,
+ ASTTemplateIntroduction,
+ ASTTemplateIntroductionParameter,
+ ASTTemplateKeyParamPackIdDefault,
+ ASTTemplateParam,
+ ASTTemplateParamConstrainedTypeWithInit,
+ ASTTemplateParamNonType,
+ ASTTemplateParams,
+ ASTTemplateParamTemplateType,
+ ASTTemplateParamType,
+ ASTThisLiteral,
+ ASTTrailingTypeSpec,
+ ASTTrailingTypeSpecDecltype,
+ ASTTrailingTypeSpecDecltypeAuto,
+ ASTTrailingTypeSpecFundamental,
+ ASTTrailingTypeSpecName,
+ ASTType,
+ ASTTypeId,
+ ASTTypeUsing,
+ ASTTypeWithInit,
+ ASTUnaryOpExpr,
+ ASTUnion,
+ ASTUserDefinedLiteral,
+)
+
+logger = logging.getLogger(__name__)
+
+
+def _make_phony_error_name() -> ASTNestedName:
+ nne = ASTNestedNameElement(ASTIdentifier("PhonyNameDueToError"), None)
+ return ASTNestedName([nne], [False], rooted=False)
+
+
+class CPPObject(ObjectDescription[ASTDeclaration]):
+ """Description of a C++ language object."""
+
+ doc_field_types: list[Field] = [
+ GroupedField('template parameter', label=_('Template Parameters'),
+ names=('tparam', 'template parameter'),
+ can_collapse=True),
+ ]
+
+ option_spec: ClassVar[OptionSpec] = {
+ 'no-index-entry': directives.flag,
+ 'no-contents-entry': directives.flag,
+ 'no-typesetting': directives.flag,
+ 'noindexentry': directives.flag,
+ 'nocontentsentry': directives.flag,
+ 'tparam-line-spec': directives.flag,
+ 'single-line-parameter-list': directives.flag,
+ }
+
+ def _add_enumerator_to_parent(self, ast: ASTDeclaration) -> None:
+ assert ast.objectType == 'enumerator'
+ # find the parent, if it exists && is an enum
+ # && it's unscoped,
+ # then add the name to the parent scope
+ symbol = ast.symbol
+ assert symbol
+ assert symbol.identOrOp is not None
+ assert symbol.templateParams is None
+ assert symbol.templateArgs is None
+ parentSymbol = symbol.parent
+ assert parentSymbol
+ if parentSymbol.parent is None:
+ # TODO: we could warn, but it is somewhat equivalent to unscoped
+ # enums, without the enum
+ return # no parent
+ parentDecl = parentSymbol.declaration
+ if parentDecl is None:
+ # the parent is not explicitly declared
+ # TODO: we could warn, but it could be a style to just assume
+ # enumerator parents to be scoped
+ return
+ if parentDecl.objectType != 'enum':
+ # TODO: maybe issue a warning, enumerators in non-enums is weird,
+ # but it is somewhat equivalent to unscoped enums, without the enum
+ return
+ if parentDecl.directiveType != 'enum':
+ return
+
+ targetSymbol = parentSymbol.parent
+ s = targetSymbol.find_identifier(symbol.identOrOp, matchSelf=False, recurseInAnon=True,
+ searchInSiblings=False)
+ if s is not None:
+ # something is already declared with that name
+ return
+ declClone = symbol.declaration.clone()
+ declClone.enumeratorScopedSymbol = symbol
+ Symbol(parent=targetSymbol, identOrOp=symbol.identOrOp,
+ templateParams=None, templateArgs=None,
+ declaration=declClone,
+ docname=self.env.docname, line=self.get_source_info()[1])
+
+ def add_target_and_index(self, ast: ASTDeclaration, sig: str,
+ signode: TextElement) -> None:
+ # general note: name must be lstrip(':')'ed, to remove "::"
+ ids = []
+ for i in range(1, _max_id + 1):
+ try:
+ id = ast.get_id(version=i)
+ ids.append(id)
+ except NoOldIdError:
+ assert i < _max_id
+ # let's keep the newest first
+ ids.reverse()
+ newestId = ids[0]
+ assert newestId # shouldn't be None
+ if not re.compile(r'^[a-zA-Z0-9_]*$').match(newestId):
+ logger.warning('Index id generation for C++ object "%s" failed, please '
+ 'report as bug (id=%s).', ast, newestId,
+ location=self.get_location())
+
+ name = ast.symbol.get_full_nested_name().get_display_string().lstrip(':')
+ # Add index entry, but not if it's a declaration inside a concept
+ isInConcept = False
+ s = ast.symbol.parent
+ while s is not None:
+ decl = s.declaration
+ s = s.parent
+ if decl is None:
+ continue
+ if decl.objectType == 'concept':
+ isInConcept = True
+ break
+ if not isInConcept and 'no-index-entry' not in self.options:
+ strippedName = name
+ for prefix in self.env.config.cpp_index_common_prefix:
+ if name.startswith(prefix):
+ strippedName = strippedName[len(prefix):]
+ break
+ indexText = self.get_index_text(strippedName)
+ self.indexnode['entries'].append(('single', indexText, newestId, '', None))
+
+ if newestId not in self.state.document.ids:
+ # if the name is not unique, the first one will win
+ names = self.env.domaindata['cpp']['names']
+ if name not in names:
+ names[name] = ast.symbol.docname
+ # always add the newest id
+ assert newestId
+ signode['ids'].append(newestId)
+ # only add compatibility ids when there are no conflicts
+ for id in ids[1:]:
+ if not id: # is None when the element didn't exist in that version
+ continue
+ if id not in self.state.document.ids:
+ signode['ids'].append(id)
+ self.state.document.note_explicit_target(signode)
+
+ @property
+ def object_type(self) -> str:
+ raise NotImplementedError
+
+ @property
+ def display_object_type(self) -> str:
+ return self.object_type
+
+ def get_index_text(self, name: str) -> str:
+ return _('%s (C++ %s)') % (name, self.display_object_type)
+
+ def parse_definition(self, parser: DefinitionParser) -> ASTDeclaration:
+ return parser.parse_declaration(self.object_type, self.objtype)
+
+ def describe_signature(self, signode: desc_signature,
+ ast: ASTDeclaration, options: dict) -> None:
+ ast.describe_signature(signode, 'lastIsName', self.env, options)
+
+ def run(self) -> list[Node]:
+ env = self.state.document.settings.env # from ObjectDescription.run
+ if 'cpp:parent_symbol' not in env.temp_data:
+ root = env.domaindata['cpp']['root_symbol']
+ env.temp_data['cpp:parent_symbol'] = root
+ env.ref_context['cpp:parent_key'] = root.get_lookup_key()
+
+ # The lookup keys assume that no nested scopes exists inside overloaded functions.
+ # (see also #5191)
+ # Example:
+ # .. cpp:function:: void f(int)
+ # .. cpp:function:: void f(double)
+ #
+ # .. cpp:function:: void g()
+ #
+ # :cpp:any:`boom`
+ #
+ # So we disallow any signatures inside functions.
+ parentSymbol = env.temp_data['cpp:parent_symbol']
+ parentDecl = parentSymbol.declaration
+ if parentDecl is not None and parentDecl.objectType == 'function':
+ msg = ("C++ declarations inside functions are not supported. "
+ f"Parent function: {parentSymbol.get_full_nested_name()}\n"
+ f"Directive name: {self.name}\nDirective arg: {self.arguments[0]}")
+ logger.warning(msg, location=self.get_location())
+ name = _make_phony_error_name()
+ symbol = parentSymbol.add_name(name)
+ env.temp_data['cpp:last_symbol'] = symbol
+ return []
+ # When multiple declarations are made in the same directive
+ # they need to know about each other to provide symbol lookup for function parameters.
+ # We use last_symbol to store the latest added declaration in a directive.
+ env.temp_data['cpp:last_symbol'] = None
+ return super().run()
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> ASTDeclaration:
+ parentSymbol: Symbol = self.env.temp_data['cpp:parent_symbol']
+
+ max_len = (self.env.config.cpp_maximum_signature_line_length
+ or self.env.config.maximum_signature_line_length
+ or 0)
+ signode['multi_line_parameter_list'] = (
+ 'single-line-parameter-list' not in self.options
+ and (len(sig) > max_len > 0)
+ )
+
+ parser = DefinitionParser(sig, location=signode, config=self.env.config)
+ try:
+ ast = self.parse_definition(parser)
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=signode)
+ # It is easier to assume some phony name than handling the error in
+ # the possibly inner declarations.
+ name = _make_phony_error_name()
+ symbol = parentSymbol.add_name(name)
+ self.env.temp_data['cpp:last_symbol'] = symbol
+ raise ValueError from e
+
+ try:
+ symbol = parentSymbol.add_declaration(
+ ast, docname=self.env.docname, line=self.get_source_info()[1])
+ # append the new declaration to the sibling list
+ assert symbol.siblingAbove is None
+ assert symbol.siblingBelow is None
+ symbol.siblingAbove = self.env.temp_data['cpp:last_symbol']
+ if symbol.siblingAbove is not None:
+ assert symbol.siblingAbove.siblingBelow is None
+ symbol.siblingAbove.siblingBelow = symbol
+ self.env.temp_data['cpp:last_symbol'] = symbol
+ except _DuplicateSymbolError as e:
+ # Assume we are actually in the old symbol,
+ # instead of the newly created duplicate.
+ self.env.temp_data['cpp:last_symbol'] = e.symbol
+ msg = __("Duplicate C++ declaration, also defined at %s:%s.\n"
+ "Declaration is '.. cpp:%s:: %s'.")
+ msg = msg % (e.symbol.docname, e.symbol.line,
+ self.display_object_type, sig)
+ logger.warning(msg, location=signode)
+
+ if ast.objectType == 'enumerator':
+ self._add_enumerator_to_parent(ast)
+
+ # note: handle_signature may be called multiple time per directive,
+ # if it has multiple signatures, so don't mess with the original options.
+ options = dict(self.options)
+ options['tparam-line-spec'] = 'tparam-line-spec' in self.options
+ self.describe_signature(signode, ast, options)
+ return ast
+
+ def before_content(self) -> None:
+ lastSymbol: Symbol = self.env.temp_data['cpp:last_symbol']
+ assert lastSymbol
+ self.oldParentSymbol = self.env.temp_data['cpp:parent_symbol']
+ self.oldParentKey: LookupKey = self.env.ref_context['cpp:parent_key']
+ self.env.temp_data['cpp:parent_symbol'] = lastSymbol
+ self.env.ref_context['cpp:parent_key'] = lastSymbol.get_lookup_key()
+ self.env.temp_data['cpp:domain_name'] = (
+ *self.env.temp_data.get('cpp:domain_name', ()),
+ lastSymbol.identOrOp._stringify(str),
+ )
+
+ def after_content(self) -> None:
+ self.env.temp_data['cpp:parent_symbol'] = self.oldParentSymbol
+ self.env.ref_context['cpp:parent_key'] = self.oldParentKey
+ self.env.temp_data['cpp:domain_name'] = self.env.temp_data['cpp:domain_name'][:-1]
+
+ def _object_hierarchy_parts(self, sig_node: desc_signature) -> tuple[str, ...]:
+ return tuple(s.identOrOp._stringify(str) for s in
+ self.env.temp_data['cpp:last_symbol'].get_full_nested_name().names)
+
+ def _toc_entry_name(self, sig_node: desc_signature) -> str:
+ if not sig_node.get('_toc_parts'):
+ return ''
+
+ config = self.env.app.config
+ objtype = sig_node.parent.get('objtype')
+ if config.add_function_parentheses and objtype in {'function', 'method'}:
+ parens = '()'
+ else:
+ parens = ''
+ *parents, name = sig_node['_toc_parts']
+ if config.toc_object_entries_show_parents == 'domain':
+ return '::'.join((*self.env.temp_data.get('cpp:domain_name', ()), name + parens))
+ if config.toc_object_entries_show_parents == 'hide':
+ return name + parens
+ if config.toc_object_entries_show_parents == 'all':
+ return '::'.join([*parents, name + parens])
+ return ''
+
+
+class CPPTypeObject(CPPObject):
+ object_type = 'type'
+
+
+class CPPConceptObject(CPPObject):
+ object_type = 'concept'
+
+
+class CPPMemberObject(CPPObject):
+ object_type = 'member'
+
+
+class CPPFunctionObject(CPPObject):
+ object_type = 'function'
+
+ doc_field_types = [
+ *CPPObject.doc_field_types,
+ GroupedField(
+ "parameter",
+ label=_("Parameters"),
+ names=("param", "parameter", "arg", "argument"),
+ can_collapse=True,
+ ),
+ GroupedField(
+ "exceptions",
+ label=_("Throws"),
+ rolename="expr",
+ names=("throws", "throw", "exception"),
+ can_collapse=True,
+ ),
+ GroupedField(
+ "retval",
+ label=_("Return values"),
+ names=("retvals", "retval"),
+ can_collapse=True,
+ ),
+ Field("returnvalue", label=_("Returns"), has_arg=False, names=("returns", "return")),
+ ]
+
+
+class CPPClassObject(CPPObject):
+ object_type = 'class'
+
+ @property
+ def display_object_type(self) -> str:
+ # the distinction between class and struct is only cosmetic
+ assert self.objtype in ('class', 'struct')
+ return self.objtype
+
+
+class CPPUnionObject(CPPObject):
+ object_type = 'union'
+
+
+class CPPEnumObject(CPPObject):
+ object_type = 'enum'
+
+
+class CPPEnumeratorObject(CPPObject):
+ object_type = 'enumerator'
+
+
+class CPPNamespaceObject(SphinxDirective):
+ """
+ This directive is just to tell Sphinx that we're documenting stuff in
+ namespace foo.
+ """
+
+ has_content = False
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ rootSymbol = self.env.domaindata['cpp']['root_symbol']
+ if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
+ symbol = rootSymbol
+ stack: list[Symbol] = []
+ else:
+ parser = DefinitionParser(self.arguments[0],
+ location=self.get_location(),
+ config=self.config)
+ try:
+ ast = parser.parse_namespace_object()
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=self.get_location())
+ name = _make_phony_error_name()
+ ast = ASTNamespace(name, None)
+ symbol = rootSymbol.add_name(ast.nestedName, ast.templatePrefix)
+ stack = [symbol]
+ self.env.temp_data['cpp:parent_symbol'] = symbol
+ self.env.temp_data['cpp:namespace_stack'] = stack
+ self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
+ return []
+
+
+class CPPNamespacePushObject(SphinxDirective):
+ has_content = False
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ if self.arguments[0].strip() in ('NULL', '0', 'nullptr'):
+ return []
+ parser = DefinitionParser(self.arguments[0],
+ location=self.get_location(),
+ config=self.config)
+ try:
+ ast = parser.parse_namespace_object()
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=self.get_location())
+ name = _make_phony_error_name()
+ ast = ASTNamespace(name, None)
+ oldParent = self.env.temp_data.get('cpp:parent_symbol', None)
+ if not oldParent:
+ oldParent = self.env.domaindata['cpp']['root_symbol']
+ symbol = oldParent.add_name(ast.nestedName, ast.templatePrefix)
+ stack = self.env.temp_data.get('cpp:namespace_stack', [])
+ stack.append(symbol)
+ self.env.temp_data['cpp:parent_symbol'] = symbol
+ self.env.temp_data['cpp:namespace_stack'] = stack
+ self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
+ return []
+
+
+class CPPNamespacePopObject(SphinxDirective):
+ has_content = False
+ required_arguments = 0
+ optional_arguments = 0
+ final_argument_whitespace = True
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ stack = self.env.temp_data.get('cpp:namespace_stack', None)
+ if not stack or len(stack) == 0:
+ logger.warning("C++ namespace pop on empty stack. Defaulting to global scope.",
+ location=self.get_location())
+ stack = []
+ else:
+ stack.pop()
+ if len(stack) > 0:
+ symbol = stack[-1]
+ else:
+ symbol = self.env.domaindata['cpp']['root_symbol']
+ self.env.temp_data['cpp:parent_symbol'] = symbol
+ self.env.temp_data['cpp:namespace_stack'] = stack
+ self.env.ref_context['cpp:parent_key'] = symbol.get_lookup_key()
+ return []
+
+
+class AliasNode(nodes.Element):
+ def __init__(self, sig: str, aliasOptions: dict,
+ env: BuildEnvironment | None = None,
+ parentKey: LookupKey | None = None) -> None:
+ super().__init__()
+ self.sig = sig
+ self.aliasOptions = aliasOptions
+ if env is not None:
+ if 'cpp:parent_symbol' not in env.temp_data:
+ root = env.domaindata['cpp']['root_symbol']
+ env.temp_data['cpp:parent_symbol'] = root
+ env.ref_context['cpp:parent_key'] = root.get_lookup_key()
+ self.parentKey = env.ref_context['cpp:parent_key']
+ else:
+ assert parentKey is not None
+ self.parentKey = parentKey
+
+ def copy(self) -> AliasNode:
+ return self.__class__(self.sig, self.aliasOptions,
+ env=None, parentKey=self.parentKey)
+
+
+class AliasTransform(SphinxTransform):
+ default_priority = ReferencesResolver.default_priority - 1
+
+ def _render_symbol(self, s: Symbol, maxdepth: int, skipThis: bool,
+ aliasOptions: dict, renderOptions: dict,
+ document: Any) -> list[Node]:
+ if maxdepth == 0:
+ recurse = True
+ elif maxdepth == 1:
+ recurse = False
+ else:
+ maxdepth -= 1
+ recurse = True
+
+ nodes: list[Node] = []
+ if not skipThis:
+ signode = addnodes.desc_signature('', '')
+ nodes.append(signode)
+ s.declaration.describe_signature(signode, 'markName', self.env, renderOptions)
+
+ if recurse:
+ if skipThis:
+ childContainer: list[Node] | addnodes.desc = nodes
+ else:
+ content = addnodes.desc_content()
+ desc = addnodes.desc()
+ content.append(desc)
+ desc.document = document
+ desc['domain'] = 'cpp'
+ # 'desctype' is a backwards compatible attribute
+ desc['objtype'] = desc['desctype'] = 'alias'
+ desc['no-index'] = True
+ childContainer = desc
+
+ for sChild in s._children:
+ if sChild.declaration is None:
+ continue
+ if sChild.declaration.objectType in ("templateParam", "functionParam"):
+ continue
+ childNodes = self._render_symbol(
+ sChild, maxdepth=maxdepth, skipThis=False,
+ aliasOptions=aliasOptions, renderOptions=renderOptions,
+ document=document)
+ childContainer.extend(childNodes)
+
+ if not skipThis and len(desc.children) != 0:
+ nodes.append(content)
+ return nodes
+
+ def apply(self, **kwargs: Any) -> None:
+ for node in self.document.findall(AliasNode):
+ sig = node.sig
+ parentKey = node.parentKey
+ try:
+ parser = DefinitionParser(sig, location=node,
+ config=self.env.config)
+ ast, isShorthand = parser.parse_xref_object()
+ parser.assert_end()
+ except DefinitionError as e:
+ logger.warning(e, location=node)
+ ast, isShorthand = None, None
+
+ if ast is None:
+ # could not be parsed, so stop here
+ signode = addnodes.desc_signature(sig, '')
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+ node.replace_self(signode)
+ continue
+
+ rootSymbol: Symbol = self.env.domains['cpp'].data['root_symbol']
+ parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
+ if not parentSymbol:
+ logger.debug("Target: %s", sig)
+ logger.debug("ParentKey: %s", parentKey)
+ logger.debug(rootSymbol.dump(1))
+ assert parentSymbol # should be there
+
+ symbols: list[Symbol] = []
+ if isShorthand:
+ assert isinstance(ast, ASTNamespace)
+ ns = ast
+ name = ns.nestedName
+ if ns.templatePrefix:
+ templateDecls = ns.templatePrefix.templates
+ else:
+ templateDecls = []
+ symbols, failReason = parentSymbol.find_name(
+ nestedName=name,
+ templateDecls=templateDecls,
+ typ='any',
+ templateShorthand=True,
+ matchSelf=True, recurseInAnon=True,
+ searchInSiblings=False)
+ if symbols is None:
+ symbols = []
+ else:
+ assert isinstance(ast, ASTDeclaration)
+ decl = ast
+ name = decl.name
+ s = parentSymbol.find_declaration(decl, 'any',
+ templateShorthand=True,
+ matchSelf=True, recurseInAnon=True)
+ if s is not None:
+ symbols.append(s)
+
+ symbols = [s for s in symbols if s.declaration is not None]
+
+ if len(symbols) == 0:
+ signode = addnodes.desc_signature(sig, '')
+ node.append(signode)
+ signode.clear()
+ signode += addnodes.desc_name(sig, sig)
+
+ logger.warning("Can not find C++ declaration for alias '%s'." % ast,
+ location=node)
+ node.replace_self(signode)
+ else:
+ nodes = []
+ renderOptions = {
+ 'tparam-line-spec': False,
+ }
+ for s in symbols:
+ assert s.declaration is not None
+ res = self._render_symbol(
+ s, maxdepth=node.aliasOptions['maxdepth'],
+ skipThis=node.aliasOptions['noroot'],
+ aliasOptions=node.aliasOptions,
+ renderOptions=renderOptions,
+ document=node.document)
+ nodes.extend(res)
+ node.replace_self(nodes)
+
+
+class CPPAliasObject(ObjectDescription):
+ option_spec: ClassVar[OptionSpec] = {
+ 'maxdepth': directives.nonnegative_int,
+ 'noroot': directives.flag,
+ }
+
+ def run(self) -> list[Node]:
+ """
+ On purpose this doesn't call the ObjectDescription version, but is based on it.
+ Each alias signature may expand into multiple real signatures (an overload set).
+ The code is therefore based on the ObjectDescription version.
+ """
+ if ':' in self.name:
+ self.domain, self.objtype = self.name.split(':', 1)
+ else:
+ self.domain, self.objtype = '', self.name
+
+ node = addnodes.desc()
+ node.document = self.state.document
+ node['domain'] = self.domain
+ # 'desctype' is a backwards compatible attribute
+ node['objtype'] = node['desctype'] = self.objtype
+
+ self.names: list[str] = []
+ aliasOptions = {
+ 'maxdepth': self.options.get('maxdepth', 1),
+ 'noroot': 'noroot' in self.options,
+ }
+ if aliasOptions['noroot'] and aliasOptions['maxdepth'] == 1:
+ logger.warning("Error in C++ alias declaration."
+ " Requested 'noroot' but 'maxdepth' 1."
+ " When skipping the root declaration,"
+ " need 'maxdepth' 0 for infinite or at least 2.",
+ location=self.get_location())
+ signatures = self.get_signatures()
+ for sig in signatures:
+ node.append(AliasNode(sig, aliasOptions, env=self.env))
+
+ contentnode = addnodes.desc_content()
+ node.append(contentnode)
+ self.before_content()
+ self.state.nested_parse(self.content, self.content_offset, contentnode)
+ self.env.temp_data['object'] = None
+ self.after_content()
+ return [node]
+
+
+class CPPXRefRole(XRefRole):
+ def process_link(self, env: BuildEnvironment, refnode: Element, has_explicit_title: bool,
+ title: str, target: str) -> tuple[str, str]:
+ refnode.attributes.update(env.ref_context)
+
+ if not has_explicit_title:
+ # major hax: replace anon names via simple string manipulation.
+ # Can this actually fail?
+ title = anon_identifier_re.sub("[anonymous]", str(title))
+
+ if refnode['reftype'] == 'any':
+ # Assume the removal part of fix_parens for :any: refs.
+ # The addition part is done with the reference is resolved.
+ if not has_explicit_title and title.endswith('()'):
+ title = title[:-2]
+ if target.endswith('()'):
+ target = target[:-2]
+ # TODO: should this really be here?
+ if not has_explicit_title:
+ target = target.lstrip('~') # only has a meaning for the title
+ # if the first character is a tilde, don't display the module/class
+ # parts of the contents
+ if title[:1] == '~':
+ title = title[1:]
+ dcolon = title.rfind('::')
+ if dcolon != -1:
+ title = title[dcolon + 2:]
+ return title, target
+
+
+class CPPExprRole(SphinxRole):
+ def __init__(self, asCode: bool) -> None:
+ super().__init__()
+ if asCode:
+ # render the expression as inline code
+ self.class_type = 'cpp-expr'
+ else:
+ # render the expression as inline text
+ self.class_type = 'cpp-texpr'
+
+ def run(self) -> tuple[list[Node], list[system_message]]:
+ text = self.text.replace('\n', ' ')
+ parser = DefinitionParser(text,
+ location=self.get_location(),
+ config=self.config)
+ # attempt to mimic XRefRole classes, except that...
+ try:
+ ast = parser.parse_expression()
+ except DefinitionError as ex:
+ logger.warning('Unparseable C++ expression: %r\n%s', text, ex,
+ location=self.get_location())
+ # see below
+ return [addnodes.desc_inline('cpp', text, text, classes=[self.class_type])], []
+ parentSymbol = self.env.temp_data.get('cpp:parent_symbol', None)
+ if parentSymbol is None:
+ parentSymbol = self.env.domaindata['cpp']['root_symbol']
+ # ...most if not all of these classes should really apply to the individual references,
+ # not the container node
+ signode = addnodes.desc_inline('cpp', classes=[self.class_type])
+ ast.describe_signature(signode, 'markType', self.env, parentSymbol)
+ return [signode], []
+
+
+class CPPDomain(Domain):
+ """C++ language domain.
+
+ There are two 'object type' attributes being used::
+
+ - Each object created from directives gets an assigned .objtype from ObjectDescription.run.
+ This is simply the directive name.
+ - Each declaration (see the distinction in the directives dict below) has a nested .ast of
+ type ASTDeclaration. That object has .objectType which corresponds to the keys in the
+ object_types dict below. They are the core different types of declarations in C++ that
+ one can document.
+ """
+
+ name = 'cpp'
+ label = 'C++'
+ object_types = {
+ 'class': ObjType(_('class'), 'class', 'struct', 'identifier', 'type'),
+ 'union': ObjType(_('union'), 'union', 'identifier', 'type'),
+ 'function': ObjType(_('function'), 'func', 'identifier', 'type'),
+ 'member': ObjType(_('member'), 'member', 'var', 'identifier'),
+ 'type': ObjType(_('type'), 'identifier', 'type'),
+ 'concept': ObjType(_('concept'), 'concept', 'identifier'),
+ 'enum': ObjType(_('enum'), 'enum', 'identifier', 'type'),
+ 'enumerator': ObjType(_('enumerator'), 'enumerator', 'identifier'),
+ # generated object types
+ 'functionParam': ObjType(_('function parameter'), 'identifier', 'member', 'var'), # NoQA: E501
+ 'templateParam': ObjType(_('template parameter'),
+ 'identifier', 'class', 'struct', 'union', 'member', 'var', 'type'), # NoQA: E501
+ }
+
+ directives = {
+ # declarations
+ 'class': CPPClassObject,
+ 'struct': CPPClassObject,
+ 'union': CPPUnionObject,
+ 'function': CPPFunctionObject,
+ 'member': CPPMemberObject,
+ 'var': CPPMemberObject,
+ 'type': CPPTypeObject,
+ 'concept': CPPConceptObject,
+ 'enum': CPPEnumObject,
+ 'enum-struct': CPPEnumObject,
+ 'enum-class': CPPEnumObject,
+ 'enumerator': CPPEnumeratorObject,
+ # scope control
+ 'namespace': CPPNamespaceObject,
+ 'namespace-push': CPPNamespacePushObject,
+ 'namespace-pop': CPPNamespacePopObject,
+ # other
+ 'alias': CPPAliasObject,
+ }
+ roles = {
+ 'any': CPPXRefRole(),
+ 'class': CPPXRefRole(),
+ 'struct': CPPXRefRole(),
+ 'union': CPPXRefRole(),
+ 'func': CPPXRefRole(fix_parens=True),
+ 'member': CPPXRefRole(),
+ 'var': CPPXRefRole(),
+ 'type': CPPXRefRole(),
+ 'concept': CPPXRefRole(),
+ 'enum': CPPXRefRole(),
+ 'enumerator': CPPXRefRole(),
+ 'expr': CPPExprRole(asCode=True),
+ 'texpr': CPPExprRole(asCode=False),
+ }
+ initial_data = {
+ 'root_symbol': Symbol(None, None, None, None, None, None, None),
+ 'names': {}, # full name for indexing -> docname
+ }
+
+ def clear_doc(self, docname: str) -> None:
+ if Symbol.debug_show_tree:
+ logger.debug("clear_doc: %s", docname)
+ logger.debug("\tbefore:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tbefore end")
+
+ rootSymbol = self.data['root_symbol']
+ rootSymbol.clear_doc(docname)
+
+ if Symbol.debug_show_tree:
+ logger.debug("\tafter:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tafter end")
+ logger.debug("clear_doc end: %s", docname)
+ for name, nDocname in list(self.data['names'].items()):
+ if nDocname == docname:
+ del self.data['names'][name]
+
+ def process_doc(self, env: BuildEnvironment, docname: str,
+ document: nodes.document) -> None:
+ if Symbol.debug_show_tree:
+ logger.debug("process_doc: %s", docname)
+ logger.debug(self.data['root_symbol'].dump(0))
+ logger.debug("process_doc end: %s", docname)
+
+ def process_field_xref(self, pnode: pending_xref) -> None:
+ pnode.attributes.update(self.env.ref_context)
+
+ def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
+ if Symbol.debug_show_tree:
+ logger.debug("merge_domaindata:")
+ logger.debug("\tself:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tself end")
+ logger.debug("\tother:")
+ logger.debug(otherdata['root_symbol'].dump(1))
+ logger.debug("\tother end")
+
+ self.data['root_symbol'].merge_with(otherdata['root_symbol'],
+ docnames, self.env)
+ ourNames = self.data['names']
+ for name, docname in otherdata['names'].items():
+ if docname in docnames:
+ if name not in ourNames:
+ ourNames[name] = docname
+ # no need to warn on duplicates, the symbol merge already does that
+ if Symbol.debug_show_tree:
+ logger.debug("\tresult:")
+ logger.debug(self.data['root_symbol'].dump(1))
+ logger.debug("\tresult end")
+ logger.debug("merge_domaindata end")
+
+ def _resolve_xref_inner(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ typ: str, target: str, node: pending_xref,
+ contnode: Element) -> tuple[Element | None, str | None]:
+ # add parens again for those that could be functions
+ if typ in ('any', 'func'):
+ target += '()'
+ parser = DefinitionParser(target, location=node, config=env.config)
+ try:
+ ast, isShorthand = parser.parse_xref_object()
+ except DefinitionError as e:
+ # as arg to stop flake8 from complaining
+ def findWarning(e: Exception) -> tuple[str, Exception]:
+ if typ != 'any' and typ != 'func':
+ return target, e
+ # hax on top of the paren hax to try to get correct errors
+ parser2 = DefinitionParser(target[:-2],
+ location=node,
+ config=env.config)
+ try:
+ parser2.parse_xref_object()
+ except DefinitionError as e2:
+ return target[:-2], e2
+ # strange, that we don't get the error now, use the original
+ return target, e
+ t, ex = findWarning(e)
+ logger.warning('Unparseable C++ cross-reference: %r\n%s', t, ex,
+ location=node)
+ return None, None
+ parentKey: LookupKey = node.get("cpp:parent_key", None)
+ rootSymbol = self.data['root_symbol']
+ if parentKey:
+ parentSymbol: Symbol = rootSymbol.direct_lookup(parentKey)
+ if not parentSymbol:
+ logger.debug("Target: %s", target)
+ logger.debug("ParentKey: %s", parentKey.data)
+ logger.debug(rootSymbol.dump(1))
+ assert parentSymbol # should be there
+ else:
+ parentSymbol = rootSymbol
+
+ if isShorthand:
+ assert isinstance(ast, ASTNamespace)
+ ns = ast
+ name = ns.nestedName
+ if ns.templatePrefix:
+ templateDecls = ns.templatePrefix.templates
+ else:
+ templateDecls = []
+ # let's be conservative with the sibling lookup for now
+ searchInSiblings = (not name.rooted) and len(name.names) == 1
+ symbols, failReason = parentSymbol.find_name(
+ name, templateDecls, typ,
+ templateShorthand=True,
+ matchSelf=True, recurseInAnon=True,
+ searchInSiblings=searchInSiblings)
+ if symbols is None:
+ if typ == 'identifier':
+ if failReason == 'templateParamInQualified':
+ # this is an xref we created as part of a signature,
+ # so don't warn for names nested in template parameters
+ raise NoUri(str(name), typ)
+ s = None
+ else:
+ # just refer to the arbitrarily first symbol
+ s = symbols[0]
+ else:
+ assert isinstance(ast, ASTDeclaration)
+ decl = ast
+ name = decl.name
+ s = parentSymbol.find_declaration(decl, typ,
+ templateShorthand=True,
+ matchSelf=True, recurseInAnon=True)
+ if s is None or s.declaration is None:
+ txtName = str(name)
+ if txtName.startswith('std::') or txtName == 'std':
+ raise NoUri(txtName, typ)
+ return None, None
+
+ if typ.startswith('cpp:'):
+ typ = typ[4:]
+ declTyp = s.declaration.objectType
+
+ def checkType() -> bool:
+ if typ == 'any':
+ return True
+ objtypes = self.objtypes_for_role(typ)
+ if objtypes:
+ return declTyp in objtypes
+ logger.debug(f"Type is {typ}, declaration type is {declTyp}") # NoQA: G004
+ raise AssertionError
+ if not checkType():
+ logger.warning("cpp:%s targets a %s (%s).",
+ typ, s.declaration.objectType,
+ s.get_full_nested_name(),
+ location=node)
+
+ declaration = s.declaration
+ if isShorthand:
+ fullNestedName = s.get_full_nested_name()
+ displayName = fullNestedName.get_display_string().lstrip(':')
+ else:
+ displayName = decl.get_display_string()
+ docname = s.docname
+ assert docname
+
+ # the non-identifier refs are cross-references, which should be processed:
+ # - fix parenthesis due to operator() and add_function_parentheses
+ if typ != "identifier":
+ title = contnode.pop(0).astext()
+ # If it's operator(), we need to add '()' if explicit function parens
+ # are requested. Then the Sphinx machinery will add another pair.
+ # Also, if it's an 'any' ref that resolves to a function, we need to add
+ # parens as well.
+ # However, if it's a non-shorthand function ref, for a function that
+ # takes no arguments, then we may need to add parens again as well.
+ addParen = 0
+ if not node.get('refexplicit', False) and declaration.objectType == 'function':
+ if isShorthand:
+ # this is just the normal haxing for 'any' roles
+ if env.config.add_function_parentheses and typ == 'any':
+ addParen += 1
+ # and now this stuff for operator()
+ if (env.config.add_function_parentheses and typ == 'func' and
+ title.endswith('operator()')):
+ addParen += 1
+ if (typ in ('any', 'func') and
+ title.endswith('operator') and
+ displayName.endswith('operator()')):
+ addParen += 1
+ else:
+ # our job here is to essentially nullify add_function_parentheses
+ if env.config.add_function_parentheses:
+ if typ == 'any' and displayName.endswith('()'):
+ addParen += 1
+ elif typ == 'func':
+ if title.endswith('()') and not displayName.endswith('()'):
+ title = title[:-2]
+ else:
+ if displayName.endswith('()'):
+ addParen += 1
+ if addParen > 0:
+ title += '()' * addParen
+ # and reconstruct the title again
+ contnode += nodes.Text(title)
+ res = make_refnode(builder, fromdocname, docname,
+ declaration.get_newest_id(), contnode, displayName,
+ ), declaration.objectType
+ return res
+
+ def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ typ: str, target: str, node: pending_xref, contnode: Element,
+ ) -> Element | None:
+ return self._resolve_xref_inner(env, fromdocname, builder, typ,
+ target, node, contnode)[0]
+
+ def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ target: str, node: pending_xref, contnode: Element,
+ ) -> list[tuple[str, Element]]:
+ with logging.suppress_logging():
+ retnode, objtype = self._resolve_xref_inner(env, fromdocname, builder,
+ 'any', target, node, contnode)
+ if retnode:
+ if objtype == 'templateParam':
+ return [('cpp:templateParam', retnode)]
+ else:
+ return [('cpp:' + self.role_for_objtype(objtype), retnode)]
+ return []
+
+ def get_objects(self) -> Iterator[tuple[str, str, str, str, str, int]]:
+ rootSymbol = self.data['root_symbol']
+ for symbol in rootSymbol.get_all_symbols():
+ if symbol.declaration is None:
+ continue
+ assert symbol.docname
+ fullNestedName = symbol.get_full_nested_name()
+ name = str(fullNestedName).lstrip(':')
+ dispname = fullNestedName.get_display_string().lstrip(':')
+ objectType = symbol.declaration.objectType
+ docname = symbol.docname
+ newestId = symbol.declaration.get_newest_id()
+ yield (name, dispname, objectType, docname, newestId, 1)
+
+ def get_full_qualified_name(self, node: Element) -> str | None:
+ target = node.get('reftarget', None)
+ if target is None:
+ return None
+ parentKey: LookupKey = node.get("cpp:parent_key", None)
+ if parentKey is None or len(parentKey.data) <= 0:
+ return None
+
+ rootSymbol = self.data['root_symbol']
+ parentSymbol = rootSymbol.direct_lookup(parentKey)
+ parentName = parentSymbol.get_full_nested_name()
+ return f'{parentName}::{target}'
+
+
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.add_domain(CPPDomain)
+ app.add_config_value("cpp_index_common_prefix", [], 'env')
+ app.add_config_value("cpp_id_attributes", [], 'env')
+ app.add_config_value("cpp_paren_attributes", [], 'env')
+ app.add_config_value("cpp_maximum_signature_line_length", None, 'env', types={int, None})
+ app.add_post_transform(AliasTransform)
+
+ # debug stuff
+ app.add_config_value("cpp_debug_lookup", False, '')
+ app.add_config_value("cpp_debug_show_tree", False, '')
+
+ def initStuff(app: Sphinx) -> None:
+ Symbol.debug_lookup = app.config.cpp_debug_lookup
+ Symbol.debug_show_tree = app.config.cpp_debug_show_tree
+ app.config.cpp_index_common_prefix.sort(reverse=True)
+ app.connect("builder-inited", initStuff)
+
+ return {
+ 'version': 'builtin',
+ 'env_version': 9,
+ 'parallel_read_safe': True,
+ 'parallel_write_safe': True,
+ }
diff --git a/sphinx/domains/cpp/_ast.py b/sphinx/domains/cpp/_ast.py
new file mode 100644
index 0000000..ad57695
--- /dev/null
+++ b/sphinx/domains/cpp/_ast.py
@@ -0,0 +1,3635 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any
+
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.domains.cpp._ids import (
+ _id_char_from_prefix,
+ _id_explicit_cast,
+ _id_fundamental_v1,
+ _id_fundamental_v2,
+ _id_operator_unary_v2,
+ _id_operator_v1,
+ _id_operator_v2,
+ _id_prefix,
+ _id_shorthands_v1,
+ _max_id,
+)
+from sphinx.util.cfamily import (
+ ASTAttributeList,
+ ASTBaseBase,
+ ASTBaseParenExprList,
+ NoOldIdError,
+ StringifyTransform,
+ UnsupportedMultiCharacterCharLiteral,
+ verify_description_mode,
+)
+
+if TYPE_CHECKING:
+
+ from docutils.nodes import Element, TextElement
+
+ from sphinx.addnodes import desc_signature
+ from sphinx.domains.cpp._symbol import Symbol
+ from sphinx.environment import BuildEnvironment
+
+
+class ASTBase(ASTBaseBase):
+ pass
+
+
+# Names
+################################################################################
+
+class ASTIdentifier(ASTBase):
+ def __init__(self, identifier: str) -> None:
+ assert identifier is not None
+ assert len(identifier) != 0
+ self.identifier = identifier
+
+ # ASTBaseBase already implements this method,
+ # but specialising it here improves performance
+ def __eq__(self, other: object) -> bool:
+ if type(other) is not ASTIdentifier:
+ return NotImplemented
+ return self.identifier == other.identifier
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.identifier)
+
+ def is_anon(self) -> bool:
+ return self.identifier[0] == '@'
+
+ def get_id(self, version: int) -> str:
+ if self.is_anon() and version < 3:
+ raise NoOldIdError
+ if version == 1:
+ if self.identifier == 'size_t':
+ return 's'
+ else:
+ return self.identifier
+ if self.identifier == "std":
+ return 'St'
+ elif self.identifier[0] == "~":
+ # a destructor, just use an arbitrary version of dtors
+ return 'D0'
+ else:
+ if self.is_anon():
+ return 'Ut%d_%s' % (len(self.identifier) - 1, self.identifier[1:])
+ else:
+ return str(len(self.identifier)) + self.identifier
+
+ # and this is where we finally make a difference between __str__ and the display string
+
+ def __str__(self) -> str:
+ return self.identifier
+
+ def get_display_string(self) -> str:
+ return "[anonymous]" if self.is_anon() else self.identifier
+
+ def describe_signature(self, signode: TextElement, mode: str, env: BuildEnvironment,
+ prefix: str, templateArgs: str, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.is_anon():
+ node = addnodes.desc_sig_name(text="[anonymous]")
+ else:
+ node = addnodes.desc_sig_name(self.identifier, self.identifier)
+ if mode == 'markType':
+ targetText = prefix + self.identifier + templateArgs
+ pnode = addnodes.pending_xref('', refdomain='cpp',
+ reftype='identifier',
+ reftarget=targetText, modname=None,
+ classname=None)
+ pnode['cpp:parent_key'] = symbol.get_lookup_key()
+ pnode += node
+ signode += pnode
+ elif mode == 'lastIsName':
+ nameNode = addnodes.desc_name()
+ nameNode += node
+ signode += nameNode
+ elif mode == 'noneIsName':
+ signode += node
+ elif mode == 'param':
+ node['classes'].append('sig-param')
+ signode += node
+ elif mode == 'udl':
+ # the target is 'operator""id' instead of just 'id'
+ assert len(prefix) == 0
+ assert len(templateArgs) == 0
+ assert not self.is_anon()
+ targetText = 'operator""' + self.identifier
+ pnode = addnodes.pending_xref('', refdomain='cpp',
+ reftype='identifier',
+ reftarget=targetText, modname=None,
+ classname=None)
+ pnode['cpp:parent_key'] = symbol.get_lookup_key()
+ pnode += node
+ signode += pnode
+ else:
+ raise Exception('Unknown description mode: %s' % mode)
+
+
+class ASTNestedNameElement(ASTBase):
+ def __init__(self, identOrOp: ASTIdentifier | ASTOperator,
+ templateArgs: ASTTemplateArgs | None) -> None:
+ self.identOrOp = identOrOp
+ self.templateArgs = templateArgs
+
+ def is_operator(self) -> bool:
+ return False
+
+ def get_id(self, version: int) -> str:
+ res = self.identOrOp.get_id(version)
+ if self.templateArgs:
+ res += self.templateArgs.get_id(version)
+ return res
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = transform(self.identOrOp)
+ if self.templateArgs:
+ res += transform(self.templateArgs)
+ return res
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, prefix: str, symbol: Symbol) -> None:
+ tArgs = str(self.templateArgs) if self.templateArgs is not None else ''
+ self.identOrOp.describe_signature(signode, mode, env, prefix, tArgs, symbol)
+ if self.templateArgs is not None:
+ self.templateArgs.describe_signature(signode, 'markType', env, symbol)
+
+
+class ASTNestedName(ASTBase):
+ def __init__(self, names: list[ASTNestedNameElement],
+ templates: list[bool], rooted: bool) -> None:
+ assert len(names) > 0
+ self.names = names
+ self.templates = templates
+ assert len(self.names) == len(self.templates)
+ self.rooted = rooted
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self
+
+ def num_templates(self) -> int:
+ count = 0
+ for n in self.names:
+ if n.is_operator():
+ continue
+ if n.templateArgs:
+ count += 1
+ return count
+
+ def get_id(self, version: int, modifiers: str = '') -> str:
+ if version == 1:
+ tt = str(self)
+ if tt in _id_shorthands_v1:
+ return _id_shorthands_v1[tt]
+ else:
+ return '::'.join(n.get_id(version) for n in self.names)
+
+ res = []
+ if len(self.names) > 1 or len(modifiers) > 0:
+ res.append('N')
+ res.append(modifiers)
+ res.extend(n.get_id(version) for n in self.names)
+ if len(self.names) > 1 or len(modifiers) > 0:
+ res.append('E')
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.rooted:
+ res.append('')
+ for i in range(len(self.names)):
+ n = self.names[i]
+ if self.templates[i]:
+ res.append("template " + transform(n))
+ else:
+ res.append(transform(n))
+ return '::'.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ # just print the name part, with template args, not template params
+ if mode == 'noneIsName':
+ if self.rooted:
+ unreachable = "Can this happen?"
+ raise AssertionError(unreachable) # TODO
+ signode += nodes.Text('::')
+ for i in range(len(self.names)):
+ if i != 0:
+ unreachable = "Can this happen?"
+ raise AssertionError(unreachable) # TODO
+ signode += nodes.Text('::blah')
+ n = self.names[i]
+ if self.templates[i]:
+ unreachable = "Can this happen?"
+ raise AssertionError(unreachable) # TODO
+ signode += nodes.Text("template")
+ signode += nodes.Text(" ")
+ n.describe_signature(signode, mode, env, '', symbol)
+ elif mode == 'param':
+ assert not self.rooted, str(self)
+ assert len(self.names) == 1
+ assert not self.templates[0]
+ self.names[0].describe_signature(signode, 'param', env, '', symbol)
+ elif mode in ('markType', 'lastIsName', 'markName'):
+ # Each element should be a pending xref targeting the complete
+ # prefix. however, only the identifier part should be a link, such
+ # that template args can be a link as well.
+ # For 'lastIsName' we should also prepend template parameter lists.
+ templateParams: list[Any] = []
+ if mode == 'lastIsName':
+ assert symbol is not None
+ if symbol.declaration.templatePrefix is not None:
+ templateParams = symbol.declaration.templatePrefix.templates
+ iTemplateParams = 0
+ templateParamsPrefix = ''
+ prefix = ''
+ first = True
+ names = self.names[:-1] if mode == 'lastIsName' else self.names
+ # If lastIsName, then wrap all of the prefix in a desc_addname,
+ # else append directly to signode.
+ # NOTE: Breathe previously relied on the prefix being in the desc_addname node,
+ # so it can remove it in inner declarations.
+ dest = signode
+ if mode == 'lastIsName':
+ dest = addnodes.desc_addname()
+ if self.rooted:
+ prefix += '::'
+ if mode == 'lastIsName' and len(names) == 0:
+ signode += addnodes.desc_sig_punctuation('::', '::')
+ else:
+ dest += addnodes.desc_sig_punctuation('::', '::')
+ for i in range(len(names)):
+ nne = names[i]
+ template = self.templates[i]
+ if not first:
+ dest += addnodes.desc_sig_punctuation('::', '::')
+ prefix += '::'
+ if template:
+ dest += addnodes.desc_sig_keyword('template', 'template')
+ dest += addnodes.desc_sig_space()
+ first = False
+ txt_nne = str(nne)
+ if txt_nne != '':
+ if nne.templateArgs and iTemplateParams < len(templateParams):
+ templateParamsPrefix += str(templateParams[iTemplateParams])
+ iTemplateParams += 1
+ nne.describe_signature(dest, 'markType',
+ env, templateParamsPrefix + prefix, symbol)
+ prefix += txt_nne
+ if mode == 'lastIsName':
+ if len(self.names) > 1:
+ dest += addnodes.desc_sig_punctuation('::', '::')
+ signode += dest
+ if self.templates[-1]:
+ signode += addnodes.desc_sig_keyword('template', 'template')
+ signode += addnodes.desc_sig_space()
+ self.names[-1].describe_signature(signode, mode, env, '', symbol)
+ else:
+ raise Exception('Unknown description mode: %s' % mode)
+
+
+################################################################################
+# Expressions
+################################################################################
+
+class ASTExpression(ASTBase):
+ def get_id(self, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ raise NotImplementedError(repr(self))
+
+
+# Primary expressions
+################################################################################
+
+class ASTLiteral(ASTExpression):
+ pass
+
+
+class ASTPointerLiteral(ASTLiteral):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'nullptr'
+
+ def get_id(self, version: int) -> str:
+ return 'LDnE'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('nullptr', 'nullptr')
+
+
+class ASTBooleanLiteral(ASTLiteral):
+ def __init__(self, value: bool) -> None:
+ self.value = value
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.value:
+ return 'true'
+ else:
+ return 'false'
+
+ def get_id(self, version: int) -> str:
+ if self.value:
+ return 'L1E'
+ else:
+ return 'L0E'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword(str(self), str(self))
+
+
+class ASTNumberLiteral(ASTLiteral):
+ def __init__(self, data: str) -> None:
+ self.data = data
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return self.data
+
+ def get_id(self, version: int) -> str:
+ # TODO: floats should be mangled by writing the hex of the binary representation
+ return "L%sE" % self.data.replace("'", "")
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_literal_number(self.data, self.data)
+
+
+class ASTStringLiteral(ASTLiteral):
+ def __init__(self, data: str) -> None:
+ self.data = data
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return self.data
+
+ def get_id(self, version: int) -> str:
+ # note: the length is not really correct with escaping
+ return "LA%d_KcE" % (len(self.data) - 2)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_literal_string(self.data, self.data)
+
+
+class ASTCharLiteral(ASTLiteral):
+ def __init__(self, prefix: str, data: str) -> None:
+ self.prefix = prefix # may be None when no prefix
+ self.data = data
+ assert prefix in _id_char_from_prefix
+ self.type = _id_char_from_prefix[prefix]
+ decoded = data.encode().decode('unicode-escape')
+ if len(decoded) == 1:
+ self.value = ord(decoded)
+ else:
+ raise UnsupportedMultiCharacterCharLiteral(decoded)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.prefix is None:
+ return "'" + self.data + "'"
+ else:
+ return self.prefix + "'" + self.data + "'"
+
+ def get_id(self, version: int) -> str:
+ # TODO: the ID should be have L E around it
+ return self.type + str(self.value)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.prefix is not None:
+ signode += addnodes.desc_sig_keyword(self.prefix, self.prefix)
+ txt = "'" + self.data + "'"
+ signode += addnodes.desc_sig_literal_char(txt, txt)
+
+
+class ASTUserDefinedLiteral(ASTLiteral):
+ def __init__(self, literal: ASTLiteral, ident: ASTIdentifier) -> None:
+ self.literal = literal
+ self.ident = ident
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.literal) + transform(self.ident)
+
+ def get_id(self, version: int) -> str:
+ # mangle as if it was a function call: ident(literal)
+ return f'clL_Zli{self.ident.get_id(version)}E{self.literal.get_id(version)}E'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.literal.describe_signature(signode, mode, env, symbol)
+ self.ident.describe_signature(signode, "udl", env, "", "", symbol)
+
+
+################################################################################
+
+class ASTThisLiteral(ASTExpression):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "this"
+
+ def get_id(self, version: int) -> str:
+ return "fpT"
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('this', 'this')
+
+
+class ASTFoldExpr(ASTExpression):
+ def __init__(self, leftExpr: ASTExpression | None,
+ op: str, rightExpr: ASTExpression | None) -> None:
+ assert leftExpr is not None or rightExpr is not None
+ self.leftExpr = leftExpr
+ self.op = op
+ self.rightExpr = rightExpr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['(']
+ if self.leftExpr:
+ res.append(transform(self.leftExpr))
+ res.append(' ')
+ res.append(self.op)
+ res.append(' ')
+ res.append('...')
+ if self.rightExpr:
+ res.append(' ')
+ res.append(self.op)
+ res.append(' ')
+ res.append(transform(self.rightExpr))
+ res.append(')')
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ assert version >= 3
+ if version == 3:
+ return str(self)
+ # https://github.com/itanium-cxx-abi/cxx-abi/pull/67
+ res = []
+ if self.leftExpr is None: # (... op expr)
+ res.append('fl')
+ elif self.rightExpr is None: # (expr op ...)
+ res.append('fr')
+ else: # (expr op ... op expr)
+ # we don't check where the parameter pack is,
+ # we just always call this a binary left fold
+ res.append('fL')
+ res.append(_id_operator_v2[self.op])
+ if self.leftExpr:
+ res.append(self.leftExpr.get_id(version))
+ if self.rightExpr:
+ res.append(self.rightExpr.get_id(version))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ if self.leftExpr:
+ self.leftExpr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_operator(self.op, self.op)
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ if self.rightExpr:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_operator(self.op, self.op)
+ signode += addnodes.desc_sig_space()
+ self.rightExpr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTParenExpr(ASTExpression):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '(' + transform(self.expr) + ')'
+
+ def get_id(self, version: int) -> str:
+ return self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTIdExpression(ASTExpression):
+ def __init__(self, name: ASTNestedName) -> None:
+ # note: this class is basically to cast a nested name as an expression
+ self.name = name
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.name)
+
+ def get_id(self, version: int) -> str:
+ return self.name.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.name.describe_signature(signode, mode, env, symbol)
+
+
+# Postfix expressions
+################################################################################
+
+class ASTPostfixOp(ASTBase):
+ def get_id(self, idPrefix: str, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ raise NotImplementedError(repr(self))
+
+
+class ASTPostfixArray(ASTPostfixOp):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '[' + transform(self.expr) + ']'
+
+ def get_id(self, idPrefix: str, version: int) -> str:
+ return 'ix' + idPrefix + self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('[', '[')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(']', ']')
+
+
+class ASTPostfixMember(ASTPostfixOp):
+ def __init__(self, name: ASTNestedName) -> None:
+ self.name = name
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '.' + transform(self.name)
+
+ def get_id(self, idPrefix: str, version: int) -> str:
+ return 'dt' + idPrefix + self.name.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('.', '.')
+ self.name.describe_signature(signode, 'noneIsName', env, symbol)
+
+
+class ASTPostfixMemberOfPointer(ASTPostfixOp):
+ def __init__(self, name: ASTNestedName) -> None:
+ self.name = name
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '->' + transform(self.name)
+
+ def get_id(self, idPrefix: str, version: int) -> str:
+ return 'pt' + idPrefix + self.name.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_operator('->', '->')
+ self.name.describe_signature(signode, 'noneIsName', env, symbol)
+
+
+class ASTPostfixInc(ASTPostfixOp):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '++'
+
+ def get_id(self, idPrefix: str, version: int) -> str:
+ return 'pp' + idPrefix
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_operator('++', '++')
+
+
+class ASTPostfixDec(ASTPostfixOp):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return '--'
+
+ def get_id(self, idPrefix: str, version: int) -> str:
+ return 'mm' + idPrefix
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_operator('--', '--')
+
+
+class ASTPostfixCallExpr(ASTPostfixOp):
+ def __init__(self, lst: ASTParenExprList | ASTBracedInitList) -> None:
+ self.lst = lst
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.lst)
+
+ def get_id(self, idPrefix: str, version: int) -> str:
+ return ''.join([
+ 'cl',
+ idPrefix,
+ *(e.get_id(version) for e in self.lst.exprs),
+ 'E',
+ ])
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.lst.describe_signature(signode, mode, env, symbol)
+
+
+class ASTPostfixExpr(ASTExpression):
+ def __init__(self, prefix: ASTType, postFixes: list[ASTPostfixOp]) -> None:
+ self.prefix = prefix
+ self.postFixes = postFixes
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return ''.join([transform(self.prefix), *(transform(p) for p in self.postFixes)])
+
+ def get_id(self, version: int) -> str:
+ id = self.prefix.get_id(version)
+ for p in self.postFixes:
+ id = p.get_id(id, version)
+ return id
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.prefix.describe_signature(signode, mode, env, symbol)
+ for p in self.postFixes:
+ p.describe_signature(signode, mode, env, symbol)
+
+
+class ASTExplicitCast(ASTExpression):
+ def __init__(self, cast: str, typ: ASTType, expr: ASTExpression) -> None:
+ assert cast in _id_explicit_cast
+ self.cast = cast
+ self.typ = typ
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = [self.cast]
+ res.append('<')
+ res.append(transform(self.typ))
+ res.append('>(')
+ res.append(transform(self.expr))
+ res.append(')')
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ return (_id_explicit_cast[self.cast] +
+ self.typ.get_id(version) +
+ self.expr.get_id(version))
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword(self.cast, self.cast)
+ signode += addnodes.desc_sig_punctuation('<', '<')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation('>', '>')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTTypeId(ASTExpression):
+ def __init__(self, typeOrExpr: ASTType | ASTExpression, isType: bool) -> None:
+ self.typeOrExpr = typeOrExpr
+ self.isType = isType
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'typeid(' + transform(self.typeOrExpr) + ')'
+
+ def get_id(self, version: int) -> str:
+ prefix = 'ti' if self.isType else 'te'
+ return prefix + self.typeOrExpr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('typeid', 'typeid')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typeOrExpr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+# Unary expressions
+################################################################################
+
+class ASTUnaryOpExpr(ASTExpression):
+ def __init__(self, op: str, expr: ASTExpression) -> None:
+ self.op = op
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.op[0] in 'cn':
+ return self.op + " " + transform(self.expr)
+ else:
+ return self.op + transform(self.expr)
+
+ def get_id(self, version: int) -> str:
+ return _id_operator_unary_v2[self.op] + self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.op[0] in 'cn':
+ signode += addnodes.desc_sig_keyword(self.op, self.op)
+ signode += addnodes.desc_sig_space()
+ else:
+ signode += addnodes.desc_sig_operator(self.op, self.op)
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTSizeofParamPack(ASTExpression):
+ def __init__(self, identifier: ASTIdentifier) -> None:
+ self.identifier = identifier
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "sizeof...(" + transform(self.identifier) + ")"
+
+ def get_id(self, version: int) -> str:
+ return 'sZ' + self.identifier.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.identifier.describe_signature(signode, 'markType', env,
+ symbol=symbol, prefix="", templateArgs="")
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTSizeofType(ASTExpression):
+ def __init__(self, typ: ASTType) -> None:
+ self.typ = typ
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "sizeof(" + transform(self.typ) + ")"
+
+ def get_id(self, version: int) -> str:
+ return 'st' + self.typ.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTSizeofExpr(ASTExpression):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "sizeof " + transform(self.expr)
+
+ def get_id(self, version: int) -> str:
+ return 'sz' + self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('sizeof', 'sizeof')
+ signode += addnodes.desc_sig_space()
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTAlignofExpr(ASTExpression):
+ def __init__(self, typ: ASTType) -> None:
+ self.typ = typ
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return "alignof(" + transform(self.typ) + ")"
+
+ def get_id(self, version: int) -> str:
+ return 'at' + self.typ.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('alignof', 'alignof')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTNoexceptExpr(ASTExpression):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'noexcept(' + transform(self.expr) + ')'
+
+ def get_id(self, version: int) -> str:
+ return 'nx' + self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('noexcept', 'noexcept')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTNewExpr(ASTExpression):
+ def __init__(self, rooted: bool, isNewTypeId: bool, typ: ASTType,
+ initList: ASTParenExprList | ASTBracedInitList) -> None:
+ self.rooted = rooted
+ self.isNewTypeId = isNewTypeId
+ self.typ = typ
+ self.initList = initList
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.rooted:
+ res.append('::')
+ res.append('new ')
+ # TODO: placement
+ if self.isNewTypeId:
+ res.append(transform(self.typ))
+ else:
+ raise AssertionError
+ if self.initList is not None:
+ res.append(transform(self.initList))
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ # the array part will be in the type mangling, so na is not used
+ res = ['nw']
+ # TODO: placement
+ res.append('_')
+ res.append(self.typ.get_id(version))
+ if self.initList is not None:
+ res.append(self.initList.get_id(version))
+ else:
+ res.append('E')
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.rooted:
+ signode += addnodes.desc_sig_punctuation('::', '::')
+ signode += addnodes.desc_sig_keyword('new', 'new')
+ signode += addnodes.desc_sig_space()
+ # TODO: placement
+ if self.isNewTypeId:
+ self.typ.describe_signature(signode, mode, env, symbol)
+ else:
+ raise AssertionError
+ if self.initList is not None:
+ self.initList.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeleteExpr(ASTExpression):
+ def __init__(self, rooted: bool, array: bool, expr: ASTExpression) -> None:
+ self.rooted = rooted
+ self.array = array
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.rooted:
+ res.append('::')
+ res.append('delete ')
+ if self.array:
+ res.append('[] ')
+ res.append(transform(self.expr))
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ if self.array:
+ id = "da"
+ else:
+ id = "dl"
+ return id + self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.rooted:
+ signode += addnodes.desc_sig_punctuation('::', '::')
+ signode += addnodes.desc_sig_keyword('delete', 'delete')
+ signode += addnodes.desc_sig_space()
+ if self.array:
+ signode += addnodes.desc_sig_punctuation('[]', '[]')
+ signode += addnodes.desc_sig_space()
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+# Other expressions
+################################################################################
+
+class ASTCastExpr(ASTExpression):
+ def __init__(self, typ: ASTType, expr: ASTExpression) -> None:
+ self.typ = typ
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['(']
+ res.append(transform(self.typ))
+ res.append(')')
+ res.append(transform(self.expr))
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ return 'cv' + self.typ.get_id(version) + self.expr.get_id(version)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.typ.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTBinOpExpr(ASTExpression):
+ def __init__(self, exprs: list[ASTExpression], ops: list[str]) -> None:
+ assert len(exprs) > 0
+ assert len(exprs) == len(ops) + 1
+ self.exprs = exprs
+ self.ops = ops
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.exprs[0]))
+ for i in range(1, len(self.exprs)):
+ res.append(' ')
+ res.append(self.ops[i - 1])
+ res.append(' ')
+ res.append(transform(self.exprs[i]))
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ assert version >= 2
+ res = []
+ for i in range(len(self.ops)):
+ res.append(_id_operator_v2[self.ops[i]])
+ res.append(self.exprs[i].get_id(version))
+ res.append(self.exprs[-1].get_id(version))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.exprs[0].describe_signature(signode, mode, env, symbol)
+ for i in range(1, len(self.exprs)):
+ signode += addnodes.desc_sig_space()
+ op = self.ops[i - 1]
+ if ord(op[0]) >= ord('a') and ord(op[0]) <= ord('z'):
+ signode += addnodes.desc_sig_keyword(op, op)
+ else:
+ signode += addnodes.desc_sig_operator(op, op)
+ signode += addnodes.desc_sig_space()
+ self.exprs[i].describe_signature(signode, mode, env, symbol)
+
+
+class ASTConditionalExpr(ASTExpression):
+ def __init__(self, ifExpr: ASTExpression, thenExpr: ASTExpression,
+ elseExpr: ASTExpression) -> None:
+ self.ifExpr = ifExpr
+ self.thenExpr = thenExpr
+ self.elseExpr = elseExpr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.ifExpr))
+ res.append(' ? ')
+ res.append(transform(self.thenExpr))
+ res.append(' : ')
+ res.append(transform(self.elseExpr))
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ assert version >= 2
+ res = []
+ res.append(_id_operator_v2['?'])
+ res.append(self.ifExpr.get_id(version))
+ res.append(self.thenExpr.get_id(version))
+ res.append(self.elseExpr.get_id(version))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.ifExpr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_operator('?', '?')
+ signode += addnodes.desc_sig_space()
+ self.thenExpr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_operator(':', ':')
+ signode += addnodes.desc_sig_space()
+ self.elseExpr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTBracedInitList(ASTBase):
+ def __init__(self, exprs: list[ASTExpression | ASTBracedInitList],
+ trailingComma: bool) -> None:
+ self.exprs = exprs
+ self.trailingComma = trailingComma
+
+ def get_id(self, version: int) -> str:
+ return "il%sE" % ''.join(e.get_id(version) for e in self.exprs)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ exprs = ', '.join(transform(e) for e in self.exprs)
+ trailingComma = ',' if self.trailingComma else ''
+ return f'{{{exprs}{trailingComma}}}'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('{', '{')
+ first = True
+ for e in self.exprs:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ else:
+ first = False
+ e.describe_signature(signode, mode, env, symbol)
+ if self.trailingComma:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_punctuation('}', '}')
+
+
+class ASTAssignmentExpr(ASTExpression):
+ def __init__(self, leftExpr: ASTExpression, op: str,
+ rightExpr: ASTExpression | ASTBracedInitList) -> None:
+ self.leftExpr = leftExpr
+ self.op = op
+ self.rightExpr = rightExpr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.leftExpr))
+ res.append(' ')
+ res.append(self.op)
+ res.append(' ')
+ res.append(transform(self.rightExpr))
+ return ''.join(res)
+
+ def get_id(self, version: int) -> str:
+ # we end up generating the ID from left to right, instead of right to left
+ res = []
+ res.append(_id_operator_v2[self.op])
+ res.append(self.leftExpr.get_id(version))
+ res.append(self.rightExpr.get_id(version))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.leftExpr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_space()
+ if ord(self.op[0]) >= ord('a') and ord(self.op[0]) <= ord('z'):
+ signode += addnodes.desc_sig_keyword(self.op, self.op)
+ else:
+ signode += addnodes.desc_sig_operator(self.op, self.op)
+ signode += addnodes.desc_sig_space()
+ self.rightExpr.describe_signature(signode, mode, env, symbol)
+
+
+class ASTCommaExpr(ASTExpression):
+ def __init__(self, exprs: list[ASTExpression]) -> None:
+ assert len(exprs) > 0
+ self.exprs = exprs
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return ', '.join(transform(e) for e in self.exprs)
+
+ def get_id(self, version: int) -> str:
+ id_ = _id_operator_v2[',']
+ res = []
+ for i in range(len(self.exprs) - 1):
+ res.append(id_)
+ res.append(self.exprs[i].get_id(version))
+ res.append(self.exprs[-1].get_id(version))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.exprs[0].describe_signature(signode, mode, env, symbol)
+ for i in range(1, len(self.exprs)):
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ self.exprs[i].describe_signature(signode, mode, env, symbol)
+
+
+class ASTFallbackExpr(ASTExpression):
+ def __init__(self, expr: str) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return self.expr
+
+ def get_id(self, version: int) -> str:
+ return str(self.expr)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += nodes.literal(self.expr, self.expr)
+
+
+################################################################################
+# Types
+################################################################################
+
+# Things for ASTNestedName
+################################################################################
+
+class ASTOperator(ASTBase):
+ def __eq__(self, other: object) -> bool:
+ raise NotImplementedError(repr(self))
+
+ def is_anon(self) -> bool:
+ return False
+
+ def is_operator(self) -> bool:
+ return True
+
+ def get_id(self, version: int) -> str:
+ raise NotImplementedError
+
+ def _describe_identifier(self, signode: TextElement, identnode: TextElement,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ """Render the prefix into signode, and the last part into identnode."""
+ raise NotImplementedError
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, prefix: str, templateArgs: str,
+ symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if mode == 'lastIsName':
+ mainName = addnodes.desc_name()
+ self._describe_identifier(mainName, mainName, env, symbol)
+ signode += mainName
+ elif mode == 'markType':
+ targetText = prefix + str(self) + templateArgs
+ pnode = addnodes.pending_xref('', refdomain='cpp',
+ reftype='identifier',
+ reftarget=targetText, modname=None,
+ classname=None)
+ pnode['cpp:parent_key'] = symbol.get_lookup_key()
+ # Render the identifier part, but collapse it into a string
+ # and make that the a link to this operator.
+ # E.g., if it is 'operator SomeType', then 'SomeType' becomes
+ # a link to the operator, not to 'SomeType'.
+ container = nodes.literal()
+ self._describe_identifier(signode, container, env, symbol)
+ txt = container.astext()
+ pnode += addnodes.desc_name(txt, txt)
+ signode += pnode
+ else:
+ addName = addnodes.desc_addname()
+ self._describe_identifier(addName, addName, env, symbol)
+ signode += addName
+
+
+class ASTOperatorBuildIn(ASTOperator):
+ def __init__(self, op: str) -> None:
+ self.op = op
+
+ def __eq__(self, other: object) -> bool:
+ if not isinstance(other, ASTOperatorBuildIn):
+ return NotImplemented
+ return self.op == other.op
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ ids = _id_operator_v1
+ if self.op not in ids:
+ raise NoOldIdError
+ else:
+ ids = _id_operator_v2
+ if self.op not in ids:
+ raise Exception('Internal error: Built-in operator "%s" can not '
+ 'be mapped to an id.' % self.op)
+ return ids[self.op]
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.op in ('new', 'new[]', 'delete', 'delete[]') or self.op[0] in "abcnox":
+ return 'operator ' + self.op
+ else:
+ return 'operator' + self.op
+
+ def _describe_identifier(self, signode: TextElement, identnode: TextElement,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('operator', 'operator')
+ if self.op in ('new', 'new[]', 'delete', 'delete[]') or self.op[0] in "abcnox":
+ signode += addnodes.desc_sig_space()
+ identnode += addnodes.desc_sig_operator(self.op, self.op)
+
+
+class ASTOperatorLiteral(ASTOperator):
+ def __init__(self, identifier: ASTIdentifier) -> None:
+ self.identifier = identifier
+
+ def __eq__(self, other: object) -> bool:
+ if not isinstance(other, ASTOperatorLiteral):
+ return NotImplemented
+ return self.identifier == other.identifier
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return 'li' + self.identifier.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'operator""' + transform(self.identifier)
+
+ def _describe_identifier(self, signode: TextElement, identnode: TextElement,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('operator', 'operator')
+ signode += addnodes.desc_sig_literal_string('""', '""')
+ self.identifier.describe_signature(identnode, 'markType', env, '', '', symbol)
+
+
+class ASTOperatorType(ASTOperator):
+ def __init__(self, type: ASTType) -> None:
+ self.type = type
+
+ def __eq__(self, other: object) -> bool:
+ if not isinstance(other, ASTOperatorType):
+ return NotImplemented
+ return self.type == other.type
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ return 'castto-%s-operator' % self.type.get_id(version)
+ else:
+ return 'cv' + self.type.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return f'operator {transform(self.type)}'
+
+ def get_name_no_template(self) -> str:
+ return str(self)
+
+ def _describe_identifier(self, signode: TextElement, identnode: TextElement,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('operator', 'operator')
+ signode += addnodes.desc_sig_space()
+ self.type.describe_signature(identnode, 'markType', env, symbol)
+
+
+class ASTTemplateArgConstant(ASTBase):
+ def __init__(self, value: ASTExpression) -> None:
+ self.value = value
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.value)
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ return str(self).replace(' ', '-')
+ if version == 2:
+ return 'X' + str(self) + 'E'
+ return 'X' + self.value.get_id(version) + 'E'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.value.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTemplateArgs(ASTBase):
+ def __init__(self, args: list[ASTType | ASTTemplateArgConstant],
+ packExpansion: bool) -> None:
+ assert args is not None
+ self.args = args
+ self.packExpansion = packExpansion
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ res = []
+ res.append(':')
+ res.append('.'.join(a.get_id(version) for a in self.args))
+ res.append(':')
+ return ''.join(res)
+
+ res = []
+ res.append('I')
+ if len(self.args) > 0:
+ for a in self.args[:-1]:
+ res.append(a.get_id(version))
+ if self.packExpansion:
+ res.append('J')
+ res.append(self.args[-1].get_id(version))
+ if self.packExpansion:
+ res.append('E')
+ res.append('E')
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ', '.join(transform(a) for a in self.args)
+ if self.packExpansion:
+ res += '...'
+ return '<' + res + '>'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('<', '<')
+ first = True
+ for a in self.args:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ first = False
+ a.describe_signature(signode, 'markType', env, symbol=symbol)
+ if self.packExpansion:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ signode += addnodes.desc_sig_punctuation('>', '>')
+
+
+# Main part of declarations
+################################################################################
+
+class ASTTrailingTypeSpec(ASTBase):
+ def get_id(self, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ raise NotImplementedError(repr(self))
+
+
+class ASTTrailingTypeSpecFundamental(ASTTrailingTypeSpec):
+ def __init__(self, names: list[str], canonNames: list[str]) -> None:
+ assert len(names) != 0
+ assert len(names) == len(canonNames), (names, canonNames)
+ self.names = names
+ # the canonical name list is for ID lookup
+ self.canonNames = canonNames
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return ' '.join(self.names)
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ res = []
+ for a in self.canonNames:
+ if a in _id_fundamental_v1:
+ res.append(_id_fundamental_v1[a])
+ else:
+ res.append(a)
+ return '-'.join(res)
+
+ txt = ' '.join(self.canonNames)
+ if txt not in _id_fundamental_v2:
+ raise Exception(
+ 'Semi-internal error: Fundamental type "%s" can not be mapped '
+ 'to an ID. Is it a true fundamental type? If not so, the '
+ 'parser should have rejected it.' % txt)
+ return _id_fundamental_v2[txt]
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ first = True
+ for n in self.names:
+ if not first:
+ signode += addnodes.desc_sig_space()
+ else:
+ first = False
+ signode += addnodes.desc_sig_keyword_type(n, n)
+
+
+class ASTTrailingTypeSpecDecltypeAuto(ASTTrailingTypeSpec):
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'decltype(auto)'
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return 'Dc'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('decltype', 'decltype')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ signode += addnodes.desc_sig_keyword('auto', 'auto')
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTTrailingTypeSpecDecltype(ASTTrailingTypeSpec):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'decltype(' + transform(self.expr) + ')'
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return 'DT' + self.expr.get_id(version) + "E"
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('decltype', 'decltype')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTTrailingTypeSpecName(ASTTrailingTypeSpec):
+ def __init__(self, prefix: str, nestedName: ASTNestedName,
+ placeholderType: str | None) -> None:
+ self.prefix = prefix
+ self.nestedName = nestedName
+ self.placeholderType = placeholderType
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.nestedName
+
+ def get_id(self, version: int) -> str:
+ return self.nestedName.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.prefix:
+ res.append(self.prefix)
+ res.append(' ')
+ res.append(transform(self.nestedName))
+ if self.placeholderType is not None:
+ res.append(' ')
+ res.append(self.placeholderType)
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.prefix:
+ signode += addnodes.desc_sig_keyword(self.prefix, self.prefix)
+ signode += addnodes.desc_sig_space()
+ self.nestedName.describe_signature(signode, mode, env, symbol=symbol)
+ if self.placeholderType is not None:
+ signode += addnodes.desc_sig_space()
+ if self.placeholderType == 'auto':
+ signode += addnodes.desc_sig_keyword('auto', 'auto')
+ elif self.placeholderType == 'decltype(auto)':
+ signode += addnodes.desc_sig_keyword('decltype', 'decltype')
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ signode += addnodes.desc_sig_keyword('auto', 'auto')
+ signode += addnodes.desc_sig_punctuation(')', ')')
+ else:
+ raise AssertionError(self.placeholderType)
+
+
+class ASTFunctionParameter(ASTBase):
+ def __init__(self, arg: ASTTypeWithInit | ASTTemplateParamConstrainedTypeWithInit,
+ ellipsis: bool = False) -> None:
+ self.arg = arg
+ self.ellipsis = ellipsis
+
+ def get_id(
+ self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
+ ) -> str:
+ # this is not part of the normal name mangling in C++
+ if symbol:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=False)
+ # else, do the usual
+ if self.ellipsis:
+ return 'z'
+ else:
+ return self.arg.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.ellipsis:
+ return '...'
+ else:
+ return transform(self.arg)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.ellipsis:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ else:
+ self.arg.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTNoexceptSpec(ASTBase):
+ def __init__(self, expr: ASTExpression | None) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.expr:
+ return 'noexcept(' + transform(self.expr) + ')'
+ return 'noexcept'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('noexcept', 'noexcept')
+ if self.expr:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, 'markType', env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTParametersQualifiers(ASTBase):
+ def __init__(self, args: list[ASTFunctionParameter], volatile: bool, const: bool,
+ refQual: str | None, exceptionSpec: ASTNoexceptSpec,
+ trailingReturn: ASTType,
+ override: bool, final: bool, attrs: ASTAttributeList,
+ initializer: str | None) -> None:
+ self.args = args
+ self.volatile = volatile
+ self.const = const
+ self.refQual = refQual
+ self.exceptionSpec = exceptionSpec
+ self.trailingReturn = trailingReturn
+ self.override = override
+ self.final = final
+ self.attrs = attrs
+ self.initializer = initializer
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.args
+
+ def get_modifiers_id(self, version: int) -> str:
+ res = []
+ if self.volatile:
+ res.append('V')
+ if self.const:
+ if version == 1:
+ res.append('C')
+ else:
+ res.append('K')
+ if self.refQual == '&&':
+ res.append('O')
+ elif self.refQual == '&':
+ res.append('R')
+ return ''.join(res)
+
+ def get_param_id(self, version: int) -> str:
+ if version == 1:
+ if len(self.args) == 0:
+ return ''
+ else:
+ return '__' + '.'.join(a.get_id(version) for a in self.args)
+ if len(self.args) == 0:
+ return 'v'
+ else:
+ return ''.join(a.get_id(version) for a in self.args)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append('(')
+ first = True
+ for a in self.args:
+ if not first:
+ res.append(', ')
+ first = False
+ res.append(str(a))
+ res.append(')')
+ if self.volatile:
+ res.append(' volatile')
+ if self.const:
+ res.append(' const')
+ if self.refQual:
+ res.append(' ')
+ res.append(self.refQual)
+ if self.exceptionSpec:
+ res.append(' ')
+ res.append(transform(self.exceptionSpec))
+ if self.trailingReturn:
+ res.append(' -> ')
+ res.append(transform(self.trailingReturn))
+ if self.final:
+ res.append(' final')
+ if self.override:
+ res.append(' override')
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.attrs))
+ if self.initializer:
+ res.append(' = ')
+ res.append(self.initializer)
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ multi_line_parameter_list = False
+ test_node: Element = signode
+ while test_node.parent:
+ if not isinstance(test_node, addnodes.desc_signature):
+ test_node = test_node.parent
+ continue
+ multi_line_parameter_list = test_node.get('multi_line_parameter_list', False)
+ break
+
+ # only use the desc_parameterlist for the outer list, not for inner lists
+ if mode == 'lastIsName':
+ paramlist = addnodes.desc_parameterlist()
+ paramlist['multi_line_parameter_list'] = multi_line_parameter_list
+ for arg in self.args:
+ param = addnodes.desc_parameter('', '', noemph=True)
+ arg.describe_signature(param, 'param', env, symbol=symbol)
+ paramlist += param
+ signode += paramlist
+ else:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ first = True
+ for arg in self.args:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ first = False
+ arg.describe_signature(signode, 'markType', env, symbol=symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+ def _add_anno(signode: TextElement, text: str) -> None:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_keyword(text, text)
+
+ if self.volatile:
+ _add_anno(signode, 'volatile')
+ if self.const:
+ _add_anno(signode, 'const')
+ if self.refQual:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation(self.refQual, self.refQual)
+ if self.exceptionSpec:
+ signode += addnodes.desc_sig_space()
+ self.exceptionSpec.describe_signature(signode, mode, env, symbol)
+ if self.trailingReturn:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_operator('->', '->')
+ signode += addnodes.desc_sig_space()
+ self.trailingReturn.describe_signature(signode, mode, env, symbol)
+ if self.final:
+ _add_anno(signode, 'final')
+ if self.override:
+ _add_anno(signode, 'override')
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.attrs.describe_signature(signode)
+ if self.initializer:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('=', '=')
+ signode += addnodes.desc_sig_space()
+ assert self.initializer in ('0', 'delete', 'default')
+ if self.initializer == '0':
+ signode += addnodes.desc_sig_literal_number('0', '0')
+ else:
+ signode += addnodes.desc_sig_keyword(self.initializer, self.initializer)
+
+
+class ASTExplicitSpec(ASTBase):
+ def __init__(self, expr: ASTExpression | None) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['explicit']
+ if self.expr is not None:
+ res.append('(')
+ res.append(transform(self.expr))
+ res.append(')')
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('explicit', 'explicit')
+ if self.expr is not None:
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.expr.describe_signature(signode, 'markType', env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTDeclSpecsSimple(ASTBase):
+ def __init__(self, storage: str, threadLocal: bool, inline: bool, virtual: bool,
+ explicitSpec: ASTExplicitSpec | None,
+ consteval: bool, constexpr: bool, constinit: bool,
+ volatile: bool, const: bool, friend: bool,
+ attrs: ASTAttributeList) -> None:
+ self.storage = storage
+ self.threadLocal = threadLocal
+ self.inline = inline
+ self.virtual = virtual
+ self.explicitSpec = explicitSpec
+ self.consteval = consteval
+ self.constexpr = constexpr
+ self.constinit = constinit
+ self.volatile = volatile
+ self.const = const
+ self.friend = friend
+ self.attrs = attrs
+
+ def mergeWith(self, other: ASTDeclSpecsSimple) -> ASTDeclSpecsSimple:
+ if not other:
+ return self
+ return ASTDeclSpecsSimple(self.storage or other.storage,
+ self.threadLocal or other.threadLocal,
+ self.inline or other.inline,
+ self.virtual or other.virtual,
+ self.explicitSpec or other.explicitSpec,
+ self.consteval or other.consteval,
+ self.constexpr or other.constexpr,
+ self.constinit or other.constinit,
+ self.volatile or other.volatile,
+ self.const or other.const,
+ self.friend or other.friend,
+ self.attrs + other.attrs)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res: list[str] = []
+ if len(self.attrs) != 0:
+ res.append(transform(self.attrs))
+ if self.storage:
+ res.append(self.storage)
+ if self.threadLocal:
+ res.append('thread_local')
+ if self.inline:
+ res.append('inline')
+ if self.friend:
+ res.append('friend')
+ if self.virtual:
+ res.append('virtual')
+ if self.explicitSpec:
+ res.append(transform(self.explicitSpec))
+ if self.consteval:
+ res.append('consteval')
+ if self.constexpr:
+ res.append('constexpr')
+ if self.constinit:
+ res.append('constinit')
+ if self.volatile:
+ res.append('volatile')
+ if self.const:
+ res.append('const')
+ return ' '.join(res)
+
+ def describe_signature(self, signode: TextElement,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.attrs.describe_signature(signode)
+ addSpace = len(self.attrs) != 0
+
+ def _add(signode: TextElement, text: str) -> bool:
+ if addSpace:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_keyword(text, text)
+ return True
+
+ if self.storage:
+ addSpace = _add(signode, self.storage)
+ if self.threadLocal:
+ addSpace = _add(signode, 'thread_local')
+ if self.inline:
+ addSpace = _add(signode, 'inline')
+ if self.friend:
+ addSpace = _add(signode, 'friend')
+ if self.virtual:
+ addSpace = _add(signode, 'virtual')
+ if self.explicitSpec:
+ if addSpace:
+ signode += addnodes.desc_sig_space()
+ self.explicitSpec.describe_signature(signode, env, symbol)
+ addSpace = True
+ if self.consteval:
+ addSpace = _add(signode, 'consteval')
+ if self.constexpr:
+ addSpace = _add(signode, 'constexpr')
+ if self.constinit:
+ addSpace = _add(signode, 'constinit')
+ if self.volatile:
+ addSpace = _add(signode, 'volatile')
+ if self.const:
+ addSpace = _add(signode, 'const')
+
+
+class ASTDeclSpecs(ASTBase):
+ def __init__(self, outer: str,
+ leftSpecs: ASTDeclSpecsSimple, rightSpecs: ASTDeclSpecsSimple,
+ trailing: ASTTrailingTypeSpec) -> None:
+ # leftSpecs and rightSpecs are used for output
+ # allSpecs are used for id generation
+ self.outer = outer
+ self.leftSpecs = leftSpecs
+ self.rightSpecs = rightSpecs
+ self.allSpecs = self.leftSpecs.mergeWith(self.rightSpecs)
+ self.trailingTypeSpec = trailing
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ res = []
+ res.append(self.trailingTypeSpec.get_id(version))
+ if self.allSpecs.volatile:
+ res.append('V')
+ if self.allSpecs.const:
+ res.append('C')
+ return ''.join(res)
+ res = []
+ if self.allSpecs.volatile:
+ res.append('V')
+ if self.allSpecs.const:
+ res.append('K')
+ if self.trailingTypeSpec is not None:
+ res.append(self.trailingTypeSpec.get_id(version))
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res: list[str] = []
+ l = transform(self.leftSpecs)
+ if len(l) > 0:
+ res.append(l)
+ if self.trailingTypeSpec:
+ if len(res) > 0:
+ res.append(" ")
+ res.append(transform(self.trailingTypeSpec))
+ r = str(self.rightSpecs)
+ if len(r) > 0:
+ if len(res) > 0:
+ res.append(" ")
+ res.append(r)
+ return "".join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ numChildren = len(signode)
+ self.leftSpecs.describe_signature(signode, env, symbol)
+ addSpace = len(signode) != numChildren
+
+ if self.trailingTypeSpec:
+ if addSpace:
+ signode += addnodes.desc_sig_space()
+ numChildren = len(signode)
+ self.trailingTypeSpec.describe_signature(signode, mode, env,
+ symbol=symbol)
+ addSpace = len(signode) != numChildren
+
+ if len(str(self.rightSpecs)) > 0:
+ if addSpace:
+ signode += addnodes.desc_sig_space()
+ self.rightSpecs.describe_signature(signode, env, symbol)
+
+
+# Declarator
+################################################################################
+
+class ASTArray(ASTBase):
+ def __init__(self, size: ASTExpression) -> None:
+ self.size = size
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ if self.size:
+ return '[' + transform(self.size) + ']'
+ else:
+ return '[]'
+
+ def get_id(self, version: int) -> str:
+ if version == 1:
+ return 'A'
+ if version == 2:
+ if self.size:
+ return 'A' + str(self.size) + '_'
+ else:
+ return 'A_'
+ if self.size:
+ return 'A' + self.size.get_id(version) + '_'
+ else:
+ return 'A_'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('[', '[')
+ if self.size:
+ self.size.describe_signature(signode, 'markType', env, symbol)
+ signode += addnodes.desc_sig_punctuation(']', ']')
+
+
+class ASTDeclarator(ASTBase):
+ @property
+ def name(self) -> ASTNestedName:
+ raise NotImplementedError(repr(self))
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ raise NotImplementedError(repr(self))
+
+ @property
+ def isPack(self) -> bool:
+ raise NotImplementedError(repr(self))
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ raise NotImplementedError(repr(self))
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ raise NotImplementedError(repr(self))
+
+ def require_space_after_declSpecs(self) -> bool:
+ raise NotImplementedError(repr(self))
+
+ def get_modifiers_id(self, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def get_param_id(self, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def get_ptr_suffix_id(self, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ raise NotImplementedError(repr(self))
+
+ def is_function_type(self) -> bool:
+ raise NotImplementedError(repr(self))
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ raise NotImplementedError(repr(self))
+
+
+class ASTDeclaratorNameParamQual(ASTDeclarator):
+ def __init__(self, declId: ASTNestedName,
+ arrayOps: list[ASTArray],
+ paramQual: ASTParametersQualifiers) -> None:
+ self.declId = declId
+ self.arrayOps = arrayOps
+ self.paramQual = paramQual
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.declId
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.declId = name
+
+ @property
+ def isPack(self) -> bool:
+ return False
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.paramQual.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.paramQual.trailingReturn
+
+ # only the modifiers for a function, e.g.,
+ def get_modifiers_id(self, version: int) -> str:
+ # cv-qualifiers
+ if self.paramQual:
+ return self.paramQual.get_modifiers_id(version)
+ raise Exception("This should only be called on a function: %s" % self)
+
+ def get_param_id(self, version: int) -> str: # only the parameters (if any)
+ if self.paramQual:
+ return self.paramQual.get_param_id(version)
+ else:
+ return ''
+
+ def get_ptr_suffix_id(self, version: int) -> str: # only the array specifiers
+ return ''.join(a.get_id(version) for a in self.arrayOps)
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ assert version >= 2
+ res = []
+ # TODO: can we actually have both array ops and paramQual?
+ res.append(self.get_ptr_suffix_id(version))
+ if self.paramQual:
+ res.append(self.get_modifiers_id(version))
+ res.append('F')
+ res.append(returnTypeId)
+ res.append(self.get_param_id(version))
+ res.append('E')
+ else:
+ res.append(returnTypeId)
+ return ''.join(res)
+
+ # ------------------------------------------------------------------------
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.declId is not None
+
+ def is_function_type(self) -> bool:
+ return self.paramQual is not None
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.declId:
+ res.append(transform(self.declId))
+ res.extend(transform(op) for op in self.arrayOps)
+ if self.paramQual:
+ res.append(transform(self.paramQual))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.declId:
+ self.declId.describe_signature(signode, mode, env, symbol)
+ for op in self.arrayOps:
+ op.describe_signature(signode, mode, env, symbol)
+ if self.paramQual:
+ self.paramQual.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorNameBitField(ASTDeclarator):
+ def __init__(self, declId: ASTNestedName, size: ASTExpression) -> None:
+ self.declId = declId
+ self.size = size
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.declId
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.declId = name
+
+ def get_param_id(self, version: int) -> str: # only the parameters (if any)
+ return ''
+
+ def get_ptr_suffix_id(self, version: int) -> str: # only the array specifiers
+ return ''
+
+ # ------------------------------------------------------------------------
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.declId is not None
+
+ def is_function_type(self) -> bool:
+ return False
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.declId:
+ res.append(transform(self.declId))
+ res.append(" : ")
+ res.append(transform(self.size))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.declId:
+ self.declId.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation(':', ':')
+ signode += addnodes.desc_sig_space()
+ self.size.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorPtr(ASTDeclarator):
+ def __init__(self, next: ASTDeclarator, volatile: bool, const: bool,
+ attrs: ASTAttributeList) -> None:
+ assert next
+ self.next = next
+ self.volatile = volatile
+ self.const = const
+ self.attrs = attrs
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.next.name
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.next.name = name
+
+ @property
+ def isPack(self) -> bool:
+ return self.next.isPack
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.next.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.next.trailingReturn
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.next.require_space_after_declSpecs()
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['*']
+ res.append(transform(self.attrs))
+ if len(self.attrs) != 0 and (self.volatile or self.const):
+ res.append(' ')
+ if self.volatile:
+ res.append('volatile')
+ if self.const:
+ if self.volatile:
+ res.append(' ')
+ res.append('const')
+ if self.const or self.volatile or len(self.attrs) > 0:
+ if self.next.require_space_after_declSpecs():
+ res.append(' ')
+ res.append(transform(self.next))
+ return ''.join(res)
+
+ def get_modifiers_id(self, version: int) -> str:
+ return self.next.get_modifiers_id(version)
+
+ def get_param_id(self, version: int) -> str:
+ return self.next.get_param_id(version)
+
+ def get_ptr_suffix_id(self, version: int) -> str:
+ if version == 1:
+ res = ['P']
+ if self.volatile:
+ res.append('V')
+ if self.const:
+ res.append('C')
+ res.append(self.next.get_ptr_suffix_id(version))
+ return ''.join(res)
+
+ res = [self.next.get_ptr_suffix_id(version)]
+ res.append('P')
+ if self.volatile:
+ res.append('V')
+ if self.const:
+ res.append('C')
+ return ''.join(res)
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ # ReturnType *next, so we are part of the return type of 'next
+ res = ['P']
+ if self.volatile:
+ res.append('V')
+ if self.const:
+ res.append('C')
+ res.append(returnTypeId)
+ return self.next.get_type_id(version, returnTypeId=''.join(res))
+
+ def is_function_type(self) -> bool:
+ return self.next.is_function_type()
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('*', '*')
+ self.attrs.describe_signature(signode)
+ if len(self.attrs) != 0 and (self.volatile or self.const):
+ signode += addnodes.desc_sig_space()
+
+ def _add_anno(signode: TextElement, text: str) -> None:
+ signode += addnodes.desc_sig_keyword(text, text)
+ if self.volatile:
+ _add_anno(signode, 'volatile')
+ if self.const:
+ if self.volatile:
+ signode += addnodes.desc_sig_space()
+ _add_anno(signode, 'const')
+ if self.const or self.volatile or len(self.attrs) > 0:
+ if self.next.require_space_after_declSpecs():
+ signode += addnodes.desc_sig_space()
+ self.next.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorRef(ASTDeclarator):
+ def __init__(self, next: ASTDeclarator, attrs: ASTAttributeList) -> None:
+ assert next
+ self.next = next
+ self.attrs = attrs
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.next.name
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.next.name = name
+
+ @property
+ def isPack(self) -> bool:
+ return self.next.isPack
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.next.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.next.trailingReturn
+
+ def require_space_after_declSpecs(self) -> bool:
+ return self.next.require_space_after_declSpecs()
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['&']
+ res.append(transform(self.attrs))
+ if len(self.attrs) != 0 and self.next.require_space_after_declSpecs():
+ res.append(' ')
+ res.append(transform(self.next))
+ return ''.join(res)
+
+ def get_modifiers_id(self, version: int) -> str:
+ return self.next.get_modifiers_id(version)
+
+ def get_param_id(self, version: int) -> str: # only the parameters (if any)
+ return self.next.get_param_id(version)
+
+ def get_ptr_suffix_id(self, version: int) -> str:
+ if version == 1:
+ return 'R' + self.next.get_ptr_suffix_id(version)
+ else:
+ return self.next.get_ptr_suffix_id(version) + 'R'
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ assert version >= 2
+ # ReturnType &next, so we are part of the return type of 'next
+ return self.next.get_type_id(version, returnTypeId='R' + returnTypeId)
+
+ def is_function_type(self) -> bool:
+ return self.next.is_function_type()
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('&', '&')
+ self.attrs.describe_signature(signode)
+ if len(self.attrs) > 0 and self.next.require_space_after_declSpecs():
+ signode += addnodes.desc_sig_space()
+ self.next.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorParamPack(ASTDeclarator):
+ def __init__(self, next: ASTDeclarator) -> None:
+ assert next
+ self.next = next
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.next.name
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.next.name = name
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.next.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.next.trailingReturn
+
+ @property
+ def isPack(self) -> bool:
+ return True
+
+ def require_space_after_declSpecs(self) -> bool:
+ return False
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = transform(self.next)
+ if self.next.name:
+ res = ' ' + res
+ return '...' + res
+
+ def get_modifiers_id(self, version: int) -> str:
+ return self.next.get_modifiers_id(version)
+
+ def get_param_id(self, version: int) -> str: # only the parameters (if any)
+ return self.next.get_param_id(version)
+
+ def get_ptr_suffix_id(self, version: int) -> str:
+ if version == 1:
+ return 'Dp' + self.next.get_ptr_suffix_id(version)
+ else:
+ return self.next.get_ptr_suffix_id(version) + 'Dp'
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ assert version >= 2
+ # ReturnType... next, so we are part of the return type of 'next
+ return self.next.get_type_id(version, returnTypeId='Dp' + returnTypeId)
+
+ def is_function_type(self) -> bool:
+ return self.next.is_function_type()
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ if self.next.name:
+ signode += addnodes.desc_sig_space()
+ self.next.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorMemPtr(ASTDeclarator):
+ def __init__(self, className: ASTNestedName,
+ const: bool, volatile: bool, next: ASTDeclarator) -> None:
+ assert className
+ assert next
+ self.className = className
+ self.const = const
+ self.volatile = volatile
+ self.next = next
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.next.name
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.next.name = name
+
+ @property
+ def isPack(self) -> bool:
+ return self.next.isPack
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.next.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.next.trailingReturn
+
+ def require_space_after_declSpecs(self) -> bool:
+ return True
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.className))
+ res.append('::*')
+ if self.volatile:
+ res.append('volatile')
+ if self.const:
+ if self.volatile:
+ res.append(' ')
+ res.append('const')
+ if self.next.require_space_after_declSpecs():
+ res.append(' ')
+ res.append(transform(self.next))
+ return ''.join(res)
+
+ def get_modifiers_id(self, version: int) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return self.next.get_modifiers_id(version)
+
+ def get_param_id(self, version: int) -> str: # only the parameters (if any)
+ if version == 1:
+ raise NoOldIdError
+ return self.next.get_param_id(version)
+
+ def get_ptr_suffix_id(self, version: int) -> str:
+ if version == 1:
+ raise NoOldIdError
+ raise NotImplementedError
+ return self.next.get_ptr_suffix_id(version) + 'Dp'
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ assert version >= 2
+ # ReturnType name::* next, so we are part of the return type of next
+ nextReturnTypeId = ''
+ if self.volatile:
+ nextReturnTypeId += 'V'
+ if self.const:
+ nextReturnTypeId += 'K'
+ nextReturnTypeId += 'M'
+ nextReturnTypeId += self.className.get_id(version)
+ nextReturnTypeId += returnTypeId
+ return self.next.get_type_id(version, nextReturnTypeId)
+
+ def is_function_type(self) -> bool:
+ return self.next.is_function_type()
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.className.describe_signature(signode, 'markType', env, symbol)
+ signode += addnodes.desc_sig_punctuation('::', '::')
+ signode += addnodes.desc_sig_punctuation('*', '*')
+
+ def _add_anno(signode: TextElement, text: str) -> None:
+ signode += addnodes.desc_sig_keyword(text, text)
+ if self.volatile:
+ _add_anno(signode, 'volatile')
+ if self.const:
+ if self.volatile:
+ signode += addnodes.desc_sig_space()
+ _add_anno(signode, 'const')
+ if self.next.require_space_after_declSpecs():
+ signode += addnodes.desc_sig_space()
+ self.next.describe_signature(signode, mode, env, symbol)
+
+
+class ASTDeclaratorParen(ASTDeclarator):
+ def __init__(self, inner: ASTDeclarator, next: ASTDeclarator) -> None:
+ assert inner
+ assert next
+ self.inner = inner
+ self.next = next
+ # TODO: we assume the name, params, and qualifiers are in inner
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.inner.name
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.inner.name = name
+
+ @property
+ def isPack(self) -> bool:
+ return self.inner.isPack or self.next.isPack
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.inner.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.inner.trailingReturn
+
+ def require_space_after_declSpecs(self) -> bool:
+ return True
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = ['(']
+ res.append(transform(self.inner))
+ res.append(')')
+ res.append(transform(self.next))
+ return ''.join(res)
+
+ def get_modifiers_id(self, version: int) -> str:
+ return self.inner.get_modifiers_id(version)
+
+ def get_param_id(self, version: int) -> str: # only the parameters (if any)
+ return self.inner.get_param_id(version)
+
+ def get_ptr_suffix_id(self, version: int) -> str:
+ if version == 1:
+ raise NoOldIdError # TODO: was this implemented before?
+ return self.next.get_ptr_suffix_id(version) + \
+ self.inner.get_ptr_suffix_id(version)
+ return self.inner.get_ptr_suffix_id(version) + \
+ self.next.get_ptr_suffix_id(version)
+
+ def get_type_id(self, version: int, returnTypeId: str) -> str:
+ assert version >= 2
+ # ReturnType (inner)next, so 'inner' returns everything outside
+ nextId = self.next.get_type_id(version, returnTypeId)
+ return self.inner.get_type_id(version, returnTypeId=nextId)
+
+ def is_function_type(self) -> bool:
+ return self.inner.is_function_type()
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ self.inner.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+ self.next.describe_signature(signode, "noneIsName", env, symbol)
+
+
+# Type and initializer stuff
+##############################################################################################
+
+class ASTPackExpansionExpr(ASTExpression):
+ def __init__(self, expr: ASTExpression | ASTBracedInitList) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.expr) + '...'
+
+ def get_id(self, version: int) -> str:
+ id = self.expr.get_id(version)
+ return 'sp' + id
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.expr.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation('...', '...')
+
+
+class ASTParenExprList(ASTBaseParenExprList):
+ def __init__(self, exprs: list[ASTExpression | ASTBracedInitList]) -> None:
+ self.exprs = exprs
+
+ def get_id(self, version: int) -> str:
+ return "pi%sE" % ''.join(e.get_id(version) for e in self.exprs)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ exprs = [transform(e) for e in self.exprs]
+ return '(%s)' % ', '.join(exprs)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ signode += addnodes.desc_sig_punctuation('(', '(')
+ first = True
+ for e in self.exprs:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ else:
+ first = False
+ e.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation(')', ')')
+
+
+class ASTInitializer(ASTBase):
+ def __init__(self, value: ASTExpression | ASTBracedInitList,
+ hasAssign: bool = True) -> None:
+ self.value = value
+ self.hasAssign = hasAssign
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ val = transform(self.value)
+ if self.hasAssign:
+ return ' = ' + val
+ else:
+ return val
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.hasAssign:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('=', '=')
+ signode += addnodes.desc_sig_space()
+ self.value.describe_signature(signode, 'markType', env, symbol)
+
+
+class ASTType(ASTBase):
+ def __init__(self, declSpecs: ASTDeclSpecs, decl: ASTDeclarator) -> None:
+ assert declSpecs
+ assert decl
+ self.declSpecs = declSpecs
+ self.decl = decl
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.decl.name
+
+ @name.setter
+ def name(self, name: ASTNestedName) -> None:
+ self.decl.name = name
+
+ @property
+ def isPack(self) -> bool:
+ return self.decl.isPack
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ return self.decl.function_params
+
+ @property
+ def trailingReturn(self) -> ASTType:
+ return self.decl.trailingReturn
+
+ def get_id(self, version: int, objectType: str | None = None,
+ symbol: Symbol | None = None) -> str:
+ if version == 1:
+ res = []
+ if objectType: # needs the name
+ if objectType == 'function': # also modifiers
+ res.append(symbol.get_full_nested_name().get_id(version))
+ res.append(self.decl.get_param_id(version))
+ res.append(self.decl.get_modifiers_id(version))
+ if (self.declSpecs.leftSpecs.constexpr or
+ (self.declSpecs.rightSpecs and
+ self.declSpecs.rightSpecs.constexpr)):
+ res.append('CE')
+ elif objectType == 'type': # just the name
+ res.append(symbol.get_full_nested_name().get_id(version))
+ else:
+ raise AssertionError(objectType)
+ else: # only type encoding
+ if self.decl.is_function_type():
+ raise NoOldIdError
+ res.append(self.declSpecs.get_id(version))
+ res.append(self.decl.get_ptr_suffix_id(version))
+ res.append(self.decl.get_param_id(version))
+ return ''.join(res)
+ # other versions
+ res = []
+ if objectType: # needs the name
+ if objectType == 'function': # also modifiers
+ modifiers = self.decl.get_modifiers_id(version)
+ res.append(symbol.get_full_nested_name().get_id(version, modifiers))
+ if version >= 4:
+ # with templates we need to mangle the return type in as well
+ templ = symbol.declaration.templatePrefix
+ if templ is not None:
+ typeId = self.decl.get_ptr_suffix_id(version)
+ if self.trailingReturn:
+ returnTypeId = self.trailingReturn.get_id(version)
+ else:
+ returnTypeId = self.declSpecs.get_id(version)
+ res.append(typeId)
+ res.append(returnTypeId)
+ res.append(self.decl.get_param_id(version))
+ elif objectType == 'type': # just the name
+ res.append(symbol.get_full_nested_name().get_id(version))
+ else:
+ raise AssertionError(objectType)
+ else: # only type encoding
+ # the 'returnType' of a non-function type is simply just the last
+ # type, i.e., for 'int*' it is 'int'
+ returnTypeId = self.declSpecs.get_id(version)
+ typeId = self.decl.get_type_id(version, returnTypeId)
+ res.append(typeId)
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ declSpecs = transform(self.declSpecs)
+ res.append(declSpecs)
+ if self.decl.require_space_after_declSpecs() and len(declSpecs) > 0:
+ res.append(' ')
+ res.append(transform(self.decl))
+ return ''.join(res)
+
+ def get_type_declaration_prefix(self) -> str:
+ if self.declSpecs.trailingTypeSpec:
+ return 'typedef'
+ else:
+ return 'type'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.declSpecs.describe_signature(signode, 'markType', env, symbol)
+ if (self.decl.require_space_after_declSpecs() and
+ len(str(self.declSpecs)) > 0):
+ signode += addnodes.desc_sig_space()
+ # for parameters that don't really declare new names we get 'markType',
+ # this should not be propagated, but be 'noneIsName'.
+ if mode == 'markType':
+ mode = 'noneIsName'
+ self.decl.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTemplateParamConstrainedTypeWithInit(ASTBase):
+ def __init__(self, type: ASTType, init: ASTType) -> None:
+ assert type
+ self.type = type
+ self.init = init
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.type.name
+
+ @property
+ def isPack(self) -> bool:
+ return self.type.isPack
+
+ def get_id(
+ self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
+ ) -> str:
+ # this is not part of the normal name mangling in C++
+ assert version >= 2
+ if symbol:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=False)
+ else:
+ return self.type.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = transform(self.type)
+ if self.init:
+ res += " = "
+ res += transform(self.init)
+ return res
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.type.describe_signature(signode, mode, env, symbol)
+ if self.init:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('=', '=')
+ signode += addnodes.desc_sig_space()
+ self.init.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTypeWithInit(ASTBase):
+ def __init__(self, type: ASTType, init: ASTInitializer) -> None:
+ self.type = type
+ self.init = init
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.type.name
+
+ @property
+ def isPack(self) -> bool:
+ return self.type.isPack
+
+ def get_id(self, version: int, objectType: str | None = None,
+ symbol: Symbol | None = None) -> str:
+ if objectType != 'member':
+ return self.type.get_id(version, objectType)
+ if version == 1:
+ return (symbol.get_full_nested_name().get_id(version) + '__' +
+ self.type.get_id(version))
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.type))
+ if self.init:
+ res.append(transform(self.init))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.type.describe_signature(signode, mode, env, symbol)
+ if self.init:
+ self.init.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTypeUsing(ASTBase):
+ def __init__(self, name: ASTNestedName, type: ASTType | None) -> None:
+ self.name = name
+ self.type = type
+
+ def get_id(self, version: int, objectType: str | None = None,
+ symbol: Symbol | None = None) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.name))
+ if self.type:
+ res.append(' = ')
+ res.append(transform(self.type))
+ return ''.join(res)
+
+ def get_type_declaration_prefix(self) -> str:
+ return 'using'
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+ if self.type:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('=', '=')
+ signode += addnodes.desc_sig_space()
+ self.type.describe_signature(signode, 'markType', env, symbol=symbol)
+
+
+# Other declarations
+##############################################################################################
+
+class ASTConcept(ASTBase):
+ def __init__(self, nestedName: ASTNestedName, initializer: ASTInitializer) -> None:
+ self.nestedName = nestedName
+ self.initializer = initializer
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.nestedName
+
+ def get_id(self, version: int, objectType: str | None = None,
+ symbol: Symbol | None = None) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = transform(self.nestedName)
+ if self.initializer:
+ res += transform(self.initializer)
+ return res
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.nestedName.describe_signature(signode, mode, env, symbol)
+ if self.initializer:
+ self.initializer.describe_signature(signode, mode, env, symbol)
+
+
+class ASTBaseClass(ASTBase):
+ def __init__(self, name: ASTNestedName, visibility: str,
+ virtual: bool, pack: bool) -> None:
+ self.name = name
+ self.visibility = visibility
+ self.virtual = virtual
+ self.pack = pack
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.visibility is not None:
+ res.append(self.visibility)
+ res.append(' ')
+ if self.virtual:
+ res.append('virtual ')
+ res.append(transform(self.name))
+ if self.pack:
+ res.append('...')
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ if self.visibility is not None:
+ signode += addnodes.desc_sig_keyword(self.visibility,
+ self.visibility)
+ signode += addnodes.desc_sig_space()
+ if self.virtual:
+ signode += addnodes.desc_sig_keyword('virtual', 'virtual')
+ signode += addnodes.desc_sig_space()
+ self.name.describe_signature(signode, 'markType', env, symbol=symbol)
+ if self.pack:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+
+
+class ASTClass(ASTBase):
+ def __init__(self, name: ASTNestedName, final: bool, bases: list[ASTBaseClass],
+ attrs: ASTAttributeList) -> None:
+ self.name = name
+ self.final = final
+ self.bases = bases
+ self.attrs = attrs
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.attrs))
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.name))
+ if self.final:
+ res.append(' final')
+ if len(self.bases) > 0:
+ res.append(' : ')
+ first = True
+ for b in self.bases:
+ if not first:
+ res.append(', ')
+ first = False
+ res.append(transform(b))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.attrs.describe_signature(signode)
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+ if self.final:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_keyword('final', 'final')
+ if len(self.bases) > 0:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation(':', ':')
+ signode += addnodes.desc_sig_space()
+ for b in self.bases:
+ b.describe_signature(signode, mode, env, symbol=symbol)
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ signode.pop()
+ signode.pop()
+
+
+class ASTUnion(ASTBase):
+ def __init__(self, name: ASTNestedName, attrs: ASTAttributeList) -> None:
+ self.name = name
+ self.attrs = attrs
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.attrs))
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.name))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.attrs.describe_signature(signode)
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+
+
+class ASTEnum(ASTBase):
+ def __init__(self, name: ASTNestedName, scoped: str, underlyingType: ASTType,
+ attrs: ASTAttributeList) -> None:
+ self.name = name
+ self.scoped = scoped
+ self.underlyingType = underlyingType
+ self.attrs = attrs
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.scoped:
+ res.append(self.scoped)
+ res.append(' ')
+ res.append(transform(self.attrs))
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.name))
+ if self.underlyingType:
+ res.append(' : ')
+ res.append(transform(self.underlyingType))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ # self.scoped has been done by the CPPEnumObject
+ self.attrs.describe_signature(signode)
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.name.describe_signature(signode, mode, env, symbol=symbol)
+ if self.underlyingType:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation(':', ':')
+ signode += addnodes.desc_sig_space()
+ self.underlyingType.describe_signature(signode, 'noneIsName',
+ env, symbol=symbol)
+
+
+class ASTEnumerator(ASTBase):
+ def __init__(self, name: ASTNestedName, init: ASTInitializer | None,
+ attrs: ASTAttributeList) -> None:
+ self.name = name
+ self.init = init
+ self.attrs = attrs
+
+ def get_id(self, version: int, objectType: str, symbol: Symbol) -> str:
+ if version == 1:
+ raise NoOldIdError
+ return symbol.get_full_nested_name().get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.name))
+ if len(self.attrs) != 0:
+ res.append(' ')
+ res.append(transform(self.attrs))
+ if self.init:
+ res.append(transform(self.init))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ verify_description_mode(mode)
+ self.name.describe_signature(signode, mode, env, symbol)
+ if len(self.attrs) != 0:
+ signode += addnodes.desc_sig_space()
+ self.attrs.describe_signature(signode)
+ if self.init:
+ self.init.describe_signature(signode, 'markType', env, symbol)
+
+
+################################################################################
+# Templates
+################################################################################
+
+# Parameters
+################################################################################
+
+class ASTTemplateParam(ASTBase):
+ def get_identifier(self) -> ASTIdentifier:
+ raise NotImplementedError(repr(self))
+
+ def get_id(self, version: int) -> str:
+ raise NotImplementedError(repr(self))
+
+ def describe_signature(self, parentNode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ raise NotImplementedError(repr(self))
+
+ @property
+ def isPack(self) -> bool:
+ raise NotImplementedError(repr(self))
+
+ @property
+ def name(self) -> ASTNestedName:
+ raise NotImplementedError(repr(self))
+
+
+class ASTTemplateKeyParamPackIdDefault(ASTTemplateParam):
+ def __init__(self, key: str, identifier: ASTIdentifier,
+ parameterPack: bool, default: ASTType) -> None:
+ assert key
+ if parameterPack:
+ assert default is None
+ self.key = key
+ self.identifier = identifier
+ self.parameterPack = parameterPack
+ self.default = default
+
+ def get_identifier(self) -> ASTIdentifier:
+ return self.identifier
+
+ def get_id(self, version: int) -> str:
+ assert version >= 2
+ # this is not part of the normal name mangling in C++
+ res = []
+ if self.parameterPack:
+ res.append('Dp')
+ else:
+ res.append('0') # we need to put something
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = [self.key]
+ if self.parameterPack:
+ if self.identifier:
+ res.append(' ')
+ res.append('...')
+ if self.identifier:
+ if not self.parameterPack:
+ res.append(' ')
+ res.append(transform(self.identifier))
+ if self.default:
+ res.append(' = ')
+ res.append(transform(self.default))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword(self.key, self.key)
+ if self.parameterPack:
+ if self.identifier:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ if self.identifier:
+ if not self.parameterPack:
+ signode += addnodes.desc_sig_space()
+ self.identifier.describe_signature(signode, mode, env, '', '', symbol)
+ if self.default:
+ signode += addnodes.desc_sig_space()
+ signode += addnodes.desc_sig_punctuation('=', '=')
+ signode += addnodes.desc_sig_space()
+ self.default.describe_signature(signode, 'markType', env, symbol)
+
+
+class ASTTemplateParamType(ASTTemplateParam):
+ def __init__(self, data: ASTTemplateKeyParamPackIdDefault) -> None:
+ assert data
+ self.data = data
+
+ @property
+ def name(self) -> ASTNestedName:
+ id = self.get_identifier()
+ return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
+
+ @property
+ def isPack(self) -> bool:
+ return self.data.parameterPack
+
+ def get_identifier(self) -> ASTIdentifier:
+ return self.data.get_identifier()
+
+ def get_id(
+ self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
+ ) -> str:
+ # this is not part of the normal name mangling in C++
+ assert version >= 2
+ if symbol:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=False)
+ else:
+ return self.data.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.data)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.data.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTemplateParamTemplateType(ASTTemplateParam):
+ def __init__(self, nestedParams: ASTTemplateParams,
+ data: ASTTemplateKeyParamPackIdDefault) -> None:
+ assert nestedParams
+ assert data
+ self.nestedParams = nestedParams
+ self.data = data
+
+ @property
+ def name(self) -> ASTNestedName:
+ id = self.get_identifier()
+ return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
+
+ @property
+ def isPack(self) -> bool:
+ return self.data.parameterPack
+
+ def get_identifier(self) -> ASTIdentifier:
+ return self.data.get_identifier()
+
+ def get_id(
+ self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
+ ) -> str:
+ assert version >= 2
+ # this is not part of the normal name mangling in C++
+ if symbol:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=None)
+ else:
+ return self.nestedParams.get_id(version) + self.data.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return transform(self.nestedParams) + transform(self.data)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.nestedParams.describe_signature(signode, 'noneIsName', env, symbol)
+ signode += addnodes.desc_sig_space()
+ self.data.describe_signature(signode, mode, env, symbol)
+
+
+class ASTTemplateParamNonType(ASTTemplateParam):
+ def __init__(self,
+ param: ASTTypeWithInit | ASTTemplateParamConstrainedTypeWithInit,
+ parameterPack: bool = False) -> None:
+ assert param
+ self.param = param
+ self.parameterPack = parameterPack
+
+ @property
+ def name(self) -> ASTNestedName:
+ id = self.get_identifier()
+ return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
+
+ @property
+ def isPack(self) -> bool:
+ return self.param.isPack or self.parameterPack
+
+ def get_identifier(self) -> ASTIdentifier:
+ name = self.param.name
+ if name:
+ assert len(name.names) == 1
+ assert name.names[0].identOrOp
+ assert not name.names[0].templateArgs
+ res = name.names[0].identOrOp
+ assert isinstance(res, ASTIdentifier)
+ return res
+ else:
+ return None
+
+ def get_id(
+ self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
+ ) -> str:
+ assert version >= 2
+ # this is not part of the normal name mangling in C++
+ if symbol:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=None)
+ else:
+ res = '_'
+ if self.parameterPack:
+ res += 'Dp'
+ return res + self.param.get_id(version)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = transform(self.param)
+ if self.parameterPack:
+ res += '...'
+ return res
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ self.param.describe_signature(signode, mode, env, symbol)
+ if self.parameterPack:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+
+
+class ASTTemplateParams(ASTBase):
+ def __init__(self, params: list[ASTTemplateParam],
+ requiresClause: ASTRequiresClause | None) -> None:
+ assert params is not None
+ self.params = params
+ self.requiresClause = requiresClause
+
+ def get_id(self, version: int, excludeRequires: bool = False) -> str:
+ assert version >= 2
+ res = []
+ res.append("I")
+ res.extend(param.get_id(version) for param in self.params)
+ res.append("E")
+ if not excludeRequires and self.requiresClause:
+ res.extend(['IQ', self.requiresClause.expr.get_id(version), 'E'])
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append("template<")
+ res.append(", ".join(transform(a) for a in self.params))
+ res.append("> ")
+ if self.requiresClause is not None:
+ res.append(transform(self.requiresClause))
+ res.append(" ")
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('template', 'template')
+ signode += addnodes.desc_sig_punctuation('<', '<')
+ first = True
+ for param in self.params:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ first = False
+ param.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation('>', '>')
+ if self.requiresClause is not None:
+ signode += addnodes.desc_sig_space()
+ self.requiresClause.describe_signature(signode, mode, env, symbol)
+
+ def describe_signature_as_introducer(
+ self, parentNode: desc_signature, mode: str, env: BuildEnvironment,
+ symbol: Symbol, lineSpec: bool) -> None:
+ def makeLine(parentNode: desc_signature) -> addnodes.desc_signature_line:
+ signode = addnodes.desc_signature_line()
+ parentNode += signode
+ signode.sphinx_line_type = 'templateParams'
+ return signode
+ lineNode = makeLine(parentNode)
+ lineNode += addnodes.desc_sig_keyword('template', 'template')
+ lineNode += addnodes.desc_sig_punctuation('<', '<')
+ first = True
+ for param in self.params:
+ if not first:
+ lineNode += addnodes.desc_sig_punctuation(',', ',')
+ lineNode += addnodes.desc_sig_space()
+ first = False
+ if lineSpec:
+ lineNode = makeLine(parentNode)
+ param.describe_signature(lineNode, mode, env, symbol)
+ if lineSpec and not first:
+ lineNode = makeLine(parentNode)
+ lineNode += addnodes.desc_sig_punctuation('>', '>')
+ if self.requiresClause:
+ reqNode = addnodes.desc_signature_line()
+ reqNode.sphinx_line_type = 'requiresClause'
+ parentNode += reqNode
+ self.requiresClause.describe_signature(reqNode, 'markType', env, symbol)
+
+
+# Template introducers
+################################################################################
+
+class ASTTemplateIntroductionParameter(ASTBase):
+ def __init__(self, identifier: ASTIdentifier, parameterPack: bool) -> None:
+ self.identifier = identifier
+ self.parameterPack = parameterPack
+
+ @property
+ def name(self) -> ASTNestedName:
+ id = self.get_identifier()
+ return ASTNestedName([ASTNestedNameElement(id, None)], [False], rooted=False)
+
+ @property
+ def isPack(self) -> bool:
+ return self.parameterPack
+
+ def get_identifier(self) -> ASTIdentifier:
+ return self.identifier
+
+ def get_id(
+ self, version: int, objectType: str | None = None, symbol: Symbol | None = None,
+ ) -> str:
+ assert version >= 2
+ # this is not part of the normal name mangling in C++
+ if symbol:
+ # the anchor will be our parent
+ return symbol.parent.declaration.get_id(version, prefixed=None)
+ else:
+ if self.parameterPack:
+ return 'Dp'
+ else:
+ return '0' # we need to put something
+
+ def get_id_as_arg(self, version: int) -> str:
+ assert version >= 2
+ # used for the implicit requires clause
+ res = self.identifier.get_id(version)
+ if self.parameterPack:
+ return 'sp' + res
+ else:
+ return res
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.parameterPack:
+ res.append('...')
+ res.append(transform(self.identifier))
+ return ''.join(res)
+
+ def describe_signature(self, signode: TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ if self.parameterPack:
+ signode += addnodes.desc_sig_punctuation('...', '...')
+ self.identifier.describe_signature(signode, mode, env, '', '', symbol)
+
+
+class ASTTemplateIntroduction(ASTBase):
+ def __init__(self, concept: ASTNestedName,
+ params: list[ASTTemplateIntroductionParameter]) -> None:
+ assert len(params) > 0
+ self.concept = concept
+ self.params = params
+
+ def get_id(self, version: int) -> str:
+ assert version >= 2
+ return ''.join([
+ # first do the same as a normal template parameter list
+ "I",
+ *(param.get_id(version) for param in self.params),
+ "E",
+ # let's use X expr E, which is otherwise for constant template args
+ "X",
+ self.concept.get_id(version),
+ "I",
+ *(param.get_id_as_arg(version) for param in self.params),
+ "E",
+ "E",
+ ])
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ res.append(transform(self.concept))
+ res.append('{')
+ res.append(', '.join(transform(param) for param in self.params))
+ res.append('} ')
+ return ''.join(res)
+
+ def describe_signature_as_introducer(
+ self, parentNode: desc_signature, mode: str,
+ env: BuildEnvironment, symbol: Symbol, lineSpec: bool) -> None:
+ # Note: 'lineSpec' has no effect on template introductions.
+ signode = addnodes.desc_signature_line()
+ parentNode += signode
+ signode.sphinx_line_type = 'templateIntroduction'
+ self.concept.describe_signature(signode, 'markType', env, symbol)
+ signode += addnodes.desc_sig_punctuation('{', '{')
+ first = True
+ for param in self.params:
+ if not first:
+ signode += addnodes.desc_sig_punctuation(',', ',')
+ signode += addnodes.desc_sig_space()
+ first = False
+ param.describe_signature(signode, mode, env, symbol)
+ signode += addnodes.desc_sig_punctuation('}', '}')
+
+
+################################################################################
+
+class ASTTemplateDeclarationPrefix(ASTBase):
+ def __init__(self,
+ templates: list[ASTTemplateParams | ASTTemplateIntroduction] | None) -> None:
+ # templates is None means it's an explicit instantiation of a variable
+ self.templates = templates
+
+ def get_requires_clause_in_last(self) -> ASTRequiresClause | None:
+ if self.templates is None:
+ return None
+ lastList = self.templates[-1]
+ if not isinstance(lastList, ASTTemplateParams):
+ return None
+ return lastList.requiresClause # which may be None
+
+ def get_id_except_requires_clause_in_last(self, version: int) -> str:
+ assert version >= 2
+ # This is not part of the Itanium ABI mangling system.
+ res = []
+ lastIndex = len(self.templates) - 1
+ for i, t in enumerate(self.templates):
+ if isinstance(t, ASTTemplateParams):
+ res.append(t.get_id(version, excludeRequires=(i == lastIndex)))
+ else:
+ res.append(t.get_id(version))
+ return ''.join(res)
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return ''.join(map(transform, self.templates))
+
+ def describe_signature(self, signode: desc_signature, mode: str,
+ env: BuildEnvironment, symbol: Symbol, lineSpec: bool) -> None:
+ verify_description_mode(mode)
+ for t in self.templates:
+ t.describe_signature_as_introducer(signode, 'lastIsName', env, symbol, lineSpec)
+
+
+class ASTRequiresClause(ASTBase):
+ def __init__(self, expr: ASTExpression) -> None:
+ self.expr = expr
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ return 'requires ' + transform(self.expr)
+
+ def describe_signature(self, signode: nodes.TextElement, mode: str,
+ env: BuildEnvironment, symbol: Symbol) -> None:
+ signode += addnodes.desc_sig_keyword('requires', 'requires')
+ signode += addnodes.desc_sig_space()
+ self.expr.describe_signature(signode, mode, env, symbol)
+
+
+################################################################################
+################################################################################
+
+class ASTDeclaration(ASTBase):
+ def __init__(self, objectType: str, directiveType: str | None = None,
+ visibility: str | None = None,
+ templatePrefix: ASTTemplateDeclarationPrefix | None = None,
+ declaration: Any = None,
+ trailingRequiresClause: ASTRequiresClause | None = None,
+ semicolon: bool = False) -> None:
+ self.objectType = objectType
+ self.directiveType = directiveType
+ self.visibility = visibility
+ self.templatePrefix = templatePrefix
+ self.declaration = declaration
+ self.trailingRequiresClause = trailingRequiresClause
+ self.semicolon = semicolon
+
+ self.symbol: Symbol | None = None
+ # set by CPPObject._add_enumerator_to_parent
+ self.enumeratorScopedSymbol: Symbol | None = None
+
+ # the cache assumes that by the time get_newest_id is called, no
+ # further changes will be made to this object
+ self._newest_id_cache: str | None = None
+
+ def clone(self) -> ASTDeclaration:
+ templatePrefixClone = self.templatePrefix.clone() if self.templatePrefix else None
+ trailingRequiresClasueClone = self.trailingRequiresClause.clone() \
+ if self.trailingRequiresClause else None
+ return ASTDeclaration(self.objectType, self.directiveType, self.visibility,
+ templatePrefixClone,
+ self.declaration.clone(), trailingRequiresClasueClone,
+ self.semicolon)
+
+ @property
+ def name(self) -> ASTNestedName:
+ return self.declaration.name
+
+ @property
+ def function_params(self) -> list[ASTFunctionParameter]:
+ if self.objectType != 'function':
+ return None
+ return self.declaration.function_params
+
+ def get_id(self, version: int, prefixed: bool = True) -> str:
+ if version == 1:
+ if self.templatePrefix or self.trailingRequiresClause:
+ raise NoOldIdError
+ if self.objectType == 'enumerator' and self.enumeratorScopedSymbol:
+ return self.enumeratorScopedSymbol.declaration.get_id(version)
+ return self.declaration.get_id(version, self.objectType, self.symbol)
+ # version >= 2
+ if self.objectType == 'enumerator' and self.enumeratorScopedSymbol:
+ return self.enumeratorScopedSymbol.declaration.get_id(version, prefixed)
+ if prefixed:
+ res = [_id_prefix[version]]
+ else:
+ res = []
+ # (See also https://github.com/sphinx-doc/sphinx/pull/10286#issuecomment-1168102147)
+ # The first implementation of requires clauses only supported a single clause after the
+ # template prefix, and no trailing clause. It put the ID after the template parameter
+ # list, i.e.,
+ # "I" + template_parameter_list_id + "E" + "IQ" + requires_clause_id + "E"
+ # but the second implementation associates the requires clause with each list, i.e.,
+ # "I" + template_parameter_list_id + "IQ" + requires_clause_id + "E" + "E"
+ # To avoid making a new ID version, we make an exception for the last requires clause
+ # in the template prefix, and still put it in the end.
+ # As we now support trailing requires clauses we add that as if it was a conjunction.
+ if self.templatePrefix is not None:
+ res.append(self.templatePrefix.get_id_except_requires_clause_in_last(version))
+ requiresClauseInLast = self.templatePrefix.get_requires_clause_in_last()
+ else:
+ requiresClauseInLast = None
+
+ if requiresClauseInLast or self.trailingRequiresClause:
+ if version < 4:
+ raise NoOldIdError
+ res.append('IQ')
+ if requiresClauseInLast and self.trailingRequiresClause:
+ # make a conjunction of them
+ res.append('aa')
+ if requiresClauseInLast:
+ res.append(requiresClauseInLast.expr.get_id(version))
+ if self.trailingRequiresClause:
+ res.append(self.trailingRequiresClause.expr.get_id(version))
+ res.append('E')
+ res.append(self.declaration.get_id(version, self.objectType, self.symbol))
+ return ''.join(res)
+
+ def get_newest_id(self) -> str:
+ if self._newest_id_cache is None:
+ self._newest_id_cache = self.get_id(_max_id, True)
+ return self._newest_id_cache
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.visibility and self.visibility != "public":
+ res.append(self.visibility)
+ res.append(' ')
+ if self.templatePrefix:
+ res.append(transform(self.templatePrefix))
+ res.append(transform(self.declaration))
+ if self.trailingRequiresClause:
+ res.append(' ')
+ res.append(transform(self.trailingRequiresClause))
+ if self.semicolon:
+ res.append(';')
+ return ''.join(res)
+
+ def describe_signature(self, signode: desc_signature, mode: str,
+ env: BuildEnvironment, options: dict[str, bool]) -> None:
+ verify_description_mode(mode)
+ assert self.symbol
+ # The caller of the domain added a desc_signature node.
+ # Always enable multiline:
+ signode['is_multiline'] = True
+ # Put each line in a desc_signature_line node.
+ mainDeclNode = addnodes.desc_signature_line()
+ mainDeclNode.sphinx_line_type = 'declarator'
+ mainDeclNode['add_permalink'] = not self.symbol.isRedeclaration
+
+ if self.templatePrefix:
+ self.templatePrefix.describe_signature(signode, mode, env,
+ symbol=self.symbol,
+ lineSpec=options.get('tparam-line-spec'))
+ signode += mainDeclNode
+ if self.visibility and self.visibility != "public":
+ mainDeclNode += addnodes.desc_sig_keyword(self.visibility, self.visibility)
+ mainDeclNode += addnodes.desc_sig_space()
+ if self.objectType == 'type':
+ prefix = self.declaration.get_type_declaration_prefix()
+ mainDeclNode += addnodes.desc_sig_keyword(prefix, prefix)
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'concept':
+ mainDeclNode += addnodes.desc_sig_keyword('concept', 'concept')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType in {'member', 'function'}:
+ pass
+ elif self.objectType == 'class':
+ assert self.directiveType in ('class', 'struct')
+ mainDeclNode += addnodes.desc_sig_keyword(self.directiveType, self.directiveType)
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'union':
+ mainDeclNode += addnodes.desc_sig_keyword('union', 'union')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.objectType == 'enum':
+ mainDeclNode += addnodes.desc_sig_keyword('enum', 'enum')
+ mainDeclNode += addnodes.desc_sig_space()
+ if self.directiveType == 'enum-class':
+ mainDeclNode += addnodes.desc_sig_keyword('class', 'class')
+ mainDeclNode += addnodes.desc_sig_space()
+ elif self.directiveType == 'enum-struct':
+ mainDeclNode += addnodes.desc_sig_keyword('struct', 'struct')
+ mainDeclNode += addnodes.desc_sig_space()
+ else:
+ assert self.directiveType == 'enum', self.directiveType
+ elif self.objectType == 'enumerator':
+ mainDeclNode += addnodes.desc_sig_keyword('enumerator', 'enumerator')
+ mainDeclNode += addnodes.desc_sig_space()
+ else:
+ raise AssertionError(self.objectType)
+ self.declaration.describe_signature(mainDeclNode, mode, env, self.symbol)
+ lastDeclNode = mainDeclNode
+ if self.trailingRequiresClause:
+ trailingReqNode = addnodes.desc_signature_line()
+ trailingReqNode.sphinx_line_type = 'trailingRequiresClause'
+ signode.append(trailingReqNode)
+ lastDeclNode = trailingReqNode
+ self.trailingRequiresClause.describe_signature(
+ trailingReqNode, 'markType', env, self.symbol)
+ if self.semicolon:
+ lastDeclNode += addnodes.desc_sig_punctuation(';', ';')
+
+
+class ASTNamespace(ASTBase):
+ def __init__(self, nestedName: ASTNestedName,
+ templatePrefix: ASTTemplateDeclarationPrefix) -> None:
+ self.nestedName = nestedName
+ self.templatePrefix = templatePrefix
+
+ def _stringify(self, transform: StringifyTransform) -> str:
+ res = []
+ if self.templatePrefix:
+ res.append(transform(self.templatePrefix))
+ res.append(transform(self.nestedName))
+ return ''.join(res)
diff --git a/sphinx/domains/cpp/_ids.py b/sphinx/domains/cpp/_ids.py
new file mode 100644
index 0000000..ee8eb49
--- /dev/null
+++ b/sphinx/domains/cpp/_ids.py
@@ -0,0 +1,537 @@
+"""
+Important note on ids
+----------------------------------------------------------------------------
+
+Multiple id generation schemes are used due to backwards compatibility.
+- v1: 1.2.3 <= version < 1.3
+ The style used before the rewrite.
+ It is not the actual old code, but a replication of the behaviour.
+- v2: 1.3 <= version < now
+ Standardised mangling scheme from
+ https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling
+ though not completely implemented.
+All versions are generated and attached to elements. The newest is used for
+the index. All of the versions should work as permalinks.
+
+
+Signature Nodes and Tagnames
+----------------------------------------------------------------------------
+
+Each signature is in a desc_signature node, where all children are
+desc_signature_line nodes. Each of these lines will have the attribute
+'sphinx_line_type' set to one of the following (prioritized):
+- 'declarator', if the line contains the name of the declared object.
+- 'templateParams', if the line starts a template parameter list,
+- 'templateParams', if the line has template parameters
+ Note: such lines might get a new tag in the future.
+- 'templateIntroduction, if the line is on the form 'conceptName{...}'
+No other desc_signature nodes should exist (so far).
+
+
+Grammar
+----------------------------------------------------------------------------
+
+See https://www.nongnu.org/hcb/ for the grammar,
+and https://github.com/cplusplus/draft/blob/master/source/grammar.tex,
+and https://github.com/cplusplus/concepts-ts
+for the newest grammar.
+
+common grammar things:
+ template-declaration ->
+ "template" "<" template-parameter-list ">" declaration
+ template-parameter-list ->
+ template-parameter
+ | template-parameter-list "," template-parameter
+ template-parameter ->
+ type-parameter
+ | parameter-declaration # i.e., same as a function argument
+
+ type-parameter ->
+ "class" "..."[opt] identifier[opt]
+ | "class" identifier[opt] "=" type-id
+ | "typename" "..."[opt] identifier[opt]
+ | "typename" identifier[opt] "=" type-id
+ | "template" "<" template-parameter-list ">"
+ "class" "..."[opt] identifier[opt]
+ | "template" "<" template-parameter-list ">"
+ "class" identifier[opt] "=" id-expression
+ # also, from C++17 we can have "typename" in template templates
+ templateDeclPrefix ->
+ "template" "<" template-parameter-list ">"
+
+ simple-declaration ->
+ attribute-specifier-seq[opt] decl-specifier-seq[opt]
+ init-declarator-list[opt] ;
+ # Make the semicolon optional.
+ # For now: drop the attributes (TODO).
+ # Use at most 1 init-declarator.
+ -> decl-specifier-seq init-declarator
+ -> decl-specifier-seq declarator initializer
+
+ decl-specifier ->
+ storage-class-specifier ->
+ ( "static" (only for member_object and function_object)
+ | "extern" (only for member_object and function_object)
+ | "register"
+ )
+ thread_local[opt] (only for member_object)
+ (it can also appear before the others)
+
+ | type-specifier -> trailing-type-specifier
+ | function-specifier -> "inline" | "virtual" | "explicit" (only
+ for function_object)
+ | "friend" (only for function_object)
+ | "constexpr" (only for member_object and function_object)
+ trailing-type-specifier ->
+ simple-type-specifier
+ | elaborated-type-specifier
+ | typename-specifier
+ | cv-qualifier -> "const" | "volatile"
+ stricter grammar for decl-specifier-seq (with everything, each object
+ uses a subset):
+ visibility storage-class-specifier function-specifier "friend"
+ "constexpr" "volatile" "const" trailing-type-specifier
+ # where trailing-type-specifier can no be cv-qualifier
+ # Inside e.g., template parameters a strict subset is used
+ # (see type-specifier-seq)
+ trailing-type-specifier ->
+ simple-type-specifier ->
+ ::[opt] nested-name-specifier[opt] type-name
+ | ::[opt] nested-name-specifier "template" simple-template-id
+ | "char" | "bool" | etc.
+ | decltype-specifier
+ | elaborated-type-specifier ->
+ class-key attribute-specifier-seq[opt] ::[opt]
+ nested-name-specifier[opt] identifier
+ | class-key ::[opt] nested-name-specifier[opt] template[opt]
+ simple-template-id
+ | "enum" ::[opt] nested-name-specifier[opt] identifier
+ | typename-specifier ->
+ "typename" ::[opt] nested-name-specifier identifier
+ | "typename" ::[opt] nested-name-specifier template[opt]
+ simple-template-id
+ class-key -> "class" | "struct" | "union"
+ type-name ->* identifier | simple-template-id
+ # ignoring attributes and decltype, and then some left-factoring
+ trailing-type-specifier ->
+ rest-of-trailing
+ ("class" | "struct" | "union" | "typename") rest-of-trailing
+ built-in -> "char" | "bool" | etc.
+ decltype-specifier
+ rest-of-trailing -> (with some simplification)
+ "::"[opt] list-of-elements-separated-by-::
+ element ->
+ "template"[opt] identifier ("<" template-argument-list ">")[opt]
+ template-argument-list ->
+ template-argument "..."[opt]
+ | template-argument-list "," template-argument "..."[opt]
+ template-argument ->
+ constant-expression
+ | type-specifier-seq abstract-declarator
+ | id-expression
+
+
+ declarator ->
+ ptr-declarator
+ | noptr-declarator parameters-and-qualifiers trailing-return-type
+ ptr-declarator ->
+ noptr-declarator
+ | ptr-operator ptr-declarator
+ noptr-declarator ->
+ declarator-id attribute-specifier-seq[opt] ->
+ "..."[opt] id-expression
+ | rest-of-trailing
+ | noptr-declarator parameters-and-qualifiers
+ | noptr-declarator "[" constant-expression[opt] "]"
+ attribute-specifier-seq[opt]
+ | "(" ptr-declarator ")"
+ ptr-operator ->
+ "*" attribute-specifier-seq[opt] cv-qualifier-seq[opt]
+ | "& attribute-specifier-seq[opt]
+ | "&&" attribute-specifier-seq[opt]
+ | "::"[opt] nested-name-specifier "*" attribute-specifier-seq[opt]
+ cv-qualifier-seq[opt]
+ # function_object must use a parameters-and-qualifiers, the others may
+ # use it (e.g., function pointers)
+ parameters-and-qualifiers ->
+ "(" parameter-clause ")" attribute-specifier-seq[opt]
+ cv-qualifier-seq[opt] ref-qualifier[opt]
+ exception-specification[opt]
+ ref-qualifier -> "&" | "&&"
+ exception-specification ->
+ "noexcept" ("(" constant-expression ")")[opt]
+ "throw" ("(" type-id-list ")")[opt]
+ # TODO: we don't implement attributes
+ # member functions can have initializers, but we fold them into here
+ memberFunctionInit -> "=" "0"
+ # (note: only "0" is allowed as the value, according to the standard,
+ # right?)
+
+ enum-head ->
+ enum-key attribute-specifier-seq[opt] nested-name-specifier[opt]
+ identifier enum-base[opt]
+ enum-key -> "enum" | "enum struct" | "enum class"
+ enum-base ->
+ ":" type
+ enumerator-definition ->
+ identifier
+ | identifier "=" constant-expression
+
+We additionally add the possibility for specifying the visibility as the
+first thing.
+
+concept_object:
+ goal:
+ just a declaration of the name (for now)
+
+ grammar: only a single template parameter list, and the nested name
+ may not have any template argument lists
+
+ "template" "<" template-parameter-list ">"
+ nested-name-specifier
+
+type_object:
+ goal:
+ either a single type (e.g., "MyClass:Something_T" or a typedef-like
+ thing (e.g. "Something Something_T" or "int I_arr[]"
+ grammar, single type: based on a type in a function parameter, but
+ without a name:
+ parameter-declaration
+ -> attribute-specifier-seq[opt] decl-specifier-seq
+ abstract-declarator[opt]
+ # Drop the attributes
+ -> decl-specifier-seq abstract-declarator[opt]
+ grammar, typedef-like: no initializer
+ decl-specifier-seq declarator
+ Can start with a templateDeclPrefix.
+
+member_object:
+ goal: as a type_object which must have a declarator, and optionally
+ with a initializer
+ grammar:
+ decl-specifier-seq declarator initializer
+ Can start with a templateDeclPrefix.
+
+function_object:
+ goal: a function declaration, TODO: what about templates? for now: skip
+ grammar: no initializer
+ decl-specifier-seq declarator
+ Can start with a templateDeclPrefix.
+
+class_object:
+ goal: a class declaration, but with specification of a base class
+ grammar:
+ attribute-specifier-seq[opt]
+ nested-name "final"[opt] (":" base-specifier-list)[opt]
+ base-specifier-list ->
+ base-specifier "..."[opt]
+ | base-specifier-list, base-specifier "..."[opt]
+ base-specifier ->
+ base-type-specifier
+ | "virtual" access-spe"cifier[opt] base-type-specifier
+ | access-specifier[opt] "virtual"[opt] base-type-specifier
+ Can start with a templateDeclPrefix.
+
+enum_object:
+ goal: an unscoped enum or a scoped enum, optionally with the underlying
+ type specified
+ grammar:
+ ("class" | "struct")[opt] visibility[opt]
+ attribute-specifier-seq[opt] nested-name (":" type)[opt]
+enumerator_object:
+ goal: an element in a scoped or unscoped enum. The name should be
+ injected according to the scopedness.
+ grammar:
+ nested-name ("=" constant-expression)
+
+namespace_object:
+ goal: a directive to put all following declarations in a specific scope
+ grammar:
+ nested-name
+"""
+
+from __future__ import annotations
+
+import re
+
+udl_identifier_re = re.compile(r'''
+ [a-zA-Z_][a-zA-Z0-9_]*\b # note, no word boundary in the beginning
+''', re.VERBOSE)
+_string_re = re.compile(r"[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'"
+ r'|"([^"\\]*(?:\\.[^"\\]*)*)")', re.DOTALL)
+_visibility_re = re.compile(r'\b(public|private|protected)\b')
+_operator_re = re.compile(r'''
+ \[\s*\]
+ | \(\s*\)
+ | \+\+ | --
+ | ->\*? | \,
+ | (<<|>>)=? | && | \|\|
+ | <=>
+ | [!<>=/*%+|&^~-]=?
+ | (\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|xor|xor_eq)\b)
+''', re.VERBOSE)
+_fold_operator_re = re.compile(r'''
+ ->\* | \.\* | \,
+ | (<<|>>)=? | && | \|\|
+ | !=
+ | [<>=/*%+|&^~-]=?
+''', re.VERBOSE)
+# see https://en.cppreference.com/w/cpp/keyword
+_keywords = [
+ 'alignas', 'alignof', 'and', 'and_eq', 'asm', 'auto', 'bitand', 'bitor',
+ 'bool', 'break', 'case', 'catch', 'char', 'char8_t', 'char16_t', 'char32_t',
+ 'class', 'compl', 'concept', 'const', 'consteval', 'constexpr', 'constinit',
+ 'const_cast', 'continue',
+ 'decltype', 'default', 'delete', 'do', 'double', 'dynamic_cast', 'else',
+ 'enum', 'explicit', 'export', 'extern', 'false', 'float', 'for', 'friend',
+ 'goto', 'if', 'inline', 'int', 'long', 'mutable', 'namespace', 'new',
+ 'noexcept', 'not', 'not_eq', 'nullptr', 'operator', 'or', 'or_eq',
+ 'private', 'protected', 'public', 'register', 'reinterpret_cast',
+ 'requires', 'return', 'short', 'signed', 'sizeof', 'static',
+ 'static_assert', 'static_cast', 'struct', 'switch', 'template', 'this',
+ 'thread_local', 'throw', 'true', 'try', 'typedef', 'typeid', 'typename',
+ 'union', 'unsigned', 'using', 'virtual', 'void', 'volatile', 'wchar_t',
+ 'while', 'xor', 'xor_eq',
+]
+
+
+_simple_type_specifiers_re = re.compile(r"""
+ \b(
+ auto|void|bool
+ |signed|unsigned
+ |short|long
+ |char|wchar_t|char(8|16|32)_t
+ |int
+ |__int(64|128) # extension
+ |float|double
+ |__float80|_Float64x|__float128|_Float128 # extension
+ |_Complex|_Imaginary # extension
+ )\b
+""", re.VERBOSE)
+
+_max_id = 4
+_id_prefix = [None, '', '_CPPv2', '_CPPv3', '_CPPv4']
+# Ids are used in lookup keys which are used across pickled files,
+# so when _max_id changes, make sure to update the ENV_VERSION.
+
+# ------------------------------------------------------------------------------
+# Id v1 constants
+# ------------------------------------------------------------------------------
+
+_id_fundamental_v1 = {
+ 'char': 'c',
+ 'signed char': 'c',
+ 'unsigned char': 'C',
+ 'int': 'i',
+ 'signed int': 'i',
+ 'unsigned int': 'U',
+ 'long': 'l',
+ 'signed long': 'l',
+ 'unsigned long': 'L',
+ 'bool': 'b',
+}
+_id_shorthands_v1 = {
+ 'std::string': 'ss',
+ 'std::ostream': 'os',
+ 'std::istream': 'is',
+ 'std::iostream': 'ios',
+ 'std::vector': 'v',
+ 'std::map': 'm',
+}
+_id_operator_v1 = {
+ 'new': 'new-operator',
+ 'new[]': 'new-array-operator',
+ 'delete': 'delete-operator',
+ 'delete[]': 'delete-array-operator',
+ # the arguments will make the difference between unary and binary
+ # '+(unary)' : 'ps',
+ # '-(unary)' : 'ng',
+ # '&(unary)' : 'ad',
+ # '*(unary)' : 'de',
+ '~': 'inv-operator',
+ '+': 'add-operator',
+ '-': 'sub-operator',
+ '*': 'mul-operator',
+ '/': 'div-operator',
+ '%': 'mod-operator',
+ '&': 'and-operator',
+ '|': 'or-operator',
+ '^': 'xor-operator',
+ '=': 'assign-operator',
+ '+=': 'add-assign-operator',
+ '-=': 'sub-assign-operator',
+ '*=': 'mul-assign-operator',
+ '/=': 'div-assign-operator',
+ '%=': 'mod-assign-operator',
+ '&=': 'and-assign-operator',
+ '|=': 'or-assign-operator',
+ '^=': 'xor-assign-operator',
+ '<<': 'lshift-operator',
+ '>>': 'rshift-operator',
+ '<<=': 'lshift-assign-operator',
+ '>>=': 'rshift-assign-operator',
+ '==': 'eq-operator',
+ '!=': 'neq-operator',
+ '<': 'lt-operator',
+ '>': 'gt-operator',
+ '<=': 'lte-operator',
+ '>=': 'gte-operator',
+ '!': 'not-operator',
+ '&&': 'sand-operator',
+ '||': 'sor-operator',
+ '++': 'inc-operator',
+ '--': 'dec-operator',
+ ',': 'comma-operator',
+ '->*': 'pointer-by-pointer-operator',
+ '->': 'pointer-operator',
+ '()': 'call-operator',
+ '[]': 'subscript-operator',
+}
+
+# ------------------------------------------------------------------------------
+# Id v > 1 constants
+# ------------------------------------------------------------------------------
+
+_id_fundamental_v2 = {
+ # not all of these are actually parsed as fundamental types, TODO: do that
+ 'void': 'v',
+ 'bool': 'b',
+ 'char': 'c',
+ 'signed char': 'a',
+ 'unsigned char': 'h',
+ 'wchar_t': 'w',
+ 'char32_t': 'Di',
+ 'char16_t': 'Ds',
+ 'char8_t': 'Du',
+ 'short': 's',
+ 'short int': 's',
+ 'signed short': 's',
+ 'signed short int': 's',
+ 'unsigned short': 't',
+ 'unsigned short int': 't',
+ 'int': 'i',
+ 'signed': 'i',
+ 'signed int': 'i',
+ 'unsigned': 'j',
+ 'unsigned int': 'j',
+ 'long': 'l',
+ 'long int': 'l',
+ 'signed long': 'l',
+ 'signed long int': 'l',
+ 'unsigned long': 'm',
+ 'unsigned long int': 'm',
+ 'long long': 'x',
+ 'long long int': 'x',
+ 'signed long long': 'x',
+ 'signed long long int': 'x',
+ '__int64': 'x',
+ 'unsigned long long': 'y',
+ 'unsigned long long int': 'y',
+ '__int128': 'n',
+ 'signed __int128': 'n',
+ 'unsigned __int128': 'o',
+ 'float': 'f',
+ 'double': 'd',
+ 'long double': 'e',
+ '__float80': 'e', '_Float64x': 'e',
+ '__float128': 'g', '_Float128': 'g',
+ '_Complex float': 'Cf',
+ '_Complex double': 'Cd',
+ '_Complex long double': 'Ce',
+ '_Imaginary float': 'f',
+ '_Imaginary double': 'd',
+ '_Imaginary long double': 'e',
+ 'auto': 'Da',
+ 'decltype(auto)': 'Dc',
+ 'std::nullptr_t': 'Dn',
+}
+_id_operator_v2 = {
+ 'new': 'nw',
+ 'new[]': 'na',
+ 'delete': 'dl',
+ 'delete[]': 'da',
+ # the arguments will make the difference between unary and binary
+ # in operator definitions
+ # '+(unary)' : 'ps',
+ # '-(unary)' : 'ng',
+ # '&(unary)' : 'ad',
+ # '*(unary)' : 'de',
+ '~': 'co', 'compl': 'co',
+ '+': 'pl',
+ '-': 'mi',
+ '*': 'ml',
+ '/': 'dv',
+ '%': 'rm',
+ '&': 'an', 'bitand': 'an',
+ '|': 'or', 'bitor': 'or',
+ '^': 'eo', 'xor': 'eo',
+ '=': 'aS',
+ '+=': 'pL',
+ '-=': 'mI',
+ '*=': 'mL',
+ '/=': 'dV',
+ '%=': 'rM',
+ '&=': 'aN', 'and_eq': 'aN',
+ '|=': 'oR', 'or_eq': 'oR',
+ '^=': 'eO', 'xor_eq': 'eO',
+ '<<': 'ls',
+ '>>': 'rs',
+ '<<=': 'lS',
+ '>>=': 'rS',
+ '==': 'eq',
+ '!=': 'ne', 'not_eq': 'ne',
+ '<': 'lt',
+ '>': 'gt',
+ '<=': 'le',
+ '>=': 'ge',
+ '<=>': 'ss',
+ '!': 'nt', 'not': 'nt',
+ '&&': 'aa', 'and': 'aa',
+ '||': 'oo', 'or': 'oo',
+ '++': 'pp',
+ '--': 'mm',
+ ',': 'cm',
+ '->*': 'pm',
+ '->': 'pt',
+ '()': 'cl',
+ '[]': 'ix',
+ '.*': 'ds', # this one is not overloadable, but we need it for expressions
+ '?': 'qu',
+}
+_id_operator_unary_v2 = {
+ '++': 'pp_',
+ '--': 'mm_',
+ '*': 'de',
+ '&': 'ad',
+ '+': 'ps',
+ '-': 'ng',
+ '!': 'nt', 'not': 'nt',
+ '~': 'co', 'compl': 'co',
+}
+_id_char_from_prefix: dict[str | None, str] = {
+ None: 'c', 'u8': 'c',
+ 'u': 'Ds', 'U': 'Di', 'L': 'w',
+}
+# these are ordered by preceedence
+_expression_bin_ops = [
+ ['||', 'or'],
+ ['&&', 'and'],
+ ['|', 'bitor'],
+ ['^', 'xor'],
+ ['&', 'bitand'],
+ ['==', '!=', 'not_eq'],
+ ['<=>', '<=', '>=', '<', '>'],
+ ['<<', '>>'],
+ ['+', '-'],
+ ['*', '/', '%'],
+ ['.*', '->*'],
+]
+_expression_unary_ops = ["++", "--", "*", "&", "+", "-", "!", "not", "~", "compl"]
+_expression_assignment_ops = ["=", "*=", "/=", "%=", "+=", "-=",
+ ">>=", "<<=", "&=", "and_eq", "^=", "|=", "xor_eq", "or_eq"]
+_id_explicit_cast = {
+ 'dynamic_cast': 'dc',
+ 'static_cast': 'sc',
+ 'const_cast': 'cc',
+ 'reinterpret_cast': 'rc',
+}
diff --git a/sphinx/domains/cpp/_parser.py b/sphinx/domains/cpp/_parser.py
new file mode 100644
index 0000000..ee6e8ba
--- /dev/null
+++ b/sphinx/domains/cpp/_parser.py
@@ -0,0 +1,2117 @@
+from __future__ import annotations
+
+import re
+from typing import TYPE_CHECKING, Any, Callable
+
+from sphinx.domains.cpp._ast import (
+ ASTAlignofExpr,
+ ASTArray,
+ ASTAssignmentExpr,
+ ASTBaseClass,
+ ASTBinOpExpr,
+ ASTBooleanLiteral,
+ ASTBracedInitList,
+ ASTCastExpr,
+ ASTCharLiteral,
+ ASTClass,
+ ASTCommaExpr,
+ ASTConcept,
+ ASTConditionalExpr,
+ ASTDeclaration,
+ ASTDeclarator,
+ ASTDeclaratorMemPtr,
+ ASTDeclaratorNameBitField,
+ ASTDeclaratorNameParamQual,
+ ASTDeclaratorParamPack,
+ ASTDeclaratorParen,
+ ASTDeclaratorPtr,
+ ASTDeclaratorRef,
+ ASTDeclSpecs,
+ ASTDeclSpecsSimple,
+ ASTDeleteExpr,
+ ASTEnum,
+ ASTEnumerator,
+ ASTExplicitCast,
+ ASTExplicitSpec,
+ ASTExpression,
+ ASTFallbackExpr,
+ ASTFoldExpr,
+ ASTFunctionParameter,
+ ASTIdentifier,
+ ASTIdExpression,
+ ASTInitializer,
+ ASTLiteral,
+ ASTNamespace,
+ ASTNestedName,
+ ASTNestedNameElement,
+ ASTNewExpr,
+ ASTNoexceptExpr,
+ ASTNoexceptSpec,
+ ASTNumberLiteral,
+ ASTOperator,
+ ASTOperatorBuildIn,
+ ASTOperatorLiteral,
+ ASTOperatorType,
+ ASTPackExpansionExpr,
+ ASTParametersQualifiers,
+ ASTParenExpr,
+ ASTParenExprList,
+ ASTPointerLiteral,
+ ASTPostfixArray,
+ ASTPostfixCallExpr,
+ ASTPostfixDec,
+ ASTPostfixExpr,
+ ASTPostfixInc,
+ ASTPostfixMember,
+ ASTPostfixMemberOfPointer,
+ ASTPostfixOp,
+ ASTRequiresClause,
+ ASTSizeofExpr,
+ ASTSizeofParamPack,
+ ASTSizeofType,
+ ASTStringLiteral,
+ ASTTemplateArgConstant,
+ ASTTemplateArgs,
+ ASTTemplateDeclarationPrefix,
+ ASTTemplateIntroduction,
+ ASTTemplateIntroductionParameter,
+ ASTTemplateKeyParamPackIdDefault,
+ ASTTemplateParam,
+ ASTTemplateParamConstrainedTypeWithInit,
+ ASTTemplateParamNonType,
+ ASTTemplateParams,
+ ASTTemplateParamTemplateType,
+ ASTTemplateParamType,
+ ASTThisLiteral,
+ ASTTrailingTypeSpec,
+ ASTTrailingTypeSpecDecltype,
+ ASTTrailingTypeSpecDecltypeAuto,
+ ASTTrailingTypeSpecFundamental,
+ ASTTrailingTypeSpecName,
+ ASTType,
+ ASTTypeId,
+ ASTTypeUsing,
+ ASTTypeWithInit,
+ ASTUnaryOpExpr,
+ ASTUnion,
+ ASTUserDefinedLiteral,
+)
+from sphinx.domains.cpp._ids import (
+ _expression_assignment_ops,
+ _expression_bin_ops,
+ _expression_unary_ops,
+ _fold_operator_re,
+ _id_explicit_cast,
+ _keywords,
+ _operator_re,
+ _simple_type_specifiers_re,
+ _string_re,
+ _visibility_re,
+ udl_identifier_re,
+)
+from sphinx.util import logging
+from sphinx.util.cfamily import (
+ ASTAttributeList,
+ BaseParser,
+ DefinitionError,
+ UnsupportedMultiCharacterCharLiteral,
+ binary_literal_re,
+ char_literal_re,
+ float_literal_re,
+ float_literal_suffix_re,
+ hex_literal_re,
+ identifier_re,
+ integer_literal_re,
+ integers_literal_suffix_re,
+ octal_literal_re,
+)
+
+if TYPE_CHECKING:
+ from collections.abc import Sequence
+
+logger = logging.getLogger(__name__)
+
+
+class DefinitionParser(BaseParser):
+ @property
+ def language(self) -> str:
+ return 'C++'
+
+ @property
+ def id_attributes(self) -> Sequence[str]:
+ return self.config.cpp_id_attributes
+
+ @property
+ def paren_attributes(self) -> Sequence[str]:
+ return self.config.cpp_paren_attributes
+
+ def _parse_string(self) -> str:
+ if self.current_char != '"':
+ return None
+ startPos = self.pos
+ self.pos += 1
+ escape = False
+ while True:
+ if self.eof:
+ self.fail("Unexpected end during inside string.")
+ elif self.current_char == '"' and not escape:
+ self.pos += 1
+ break
+ elif self.current_char == '\\':
+ escape = True
+ else:
+ escape = False
+ self.pos += 1
+ return self.definition[startPos:self.pos]
+
+ def _parse_literal(self) -> ASTLiteral:
+ # -> integer-literal
+ # | character-literal
+ # | floating-literal
+ # | string-literal
+ # | boolean-literal -> "false" | "true"
+ # | pointer-literal -> "nullptr"
+ # | user-defined-literal
+
+ def _udl(literal: ASTLiteral) -> ASTLiteral:
+ if not self.match(udl_identifier_re):
+ return literal
+ # hmm, should we care if it's a keyword?
+ # it looks like GCC does not disallow keywords
+ ident = ASTIdentifier(self.matched_text)
+ return ASTUserDefinedLiteral(literal, ident)
+
+ self.skip_ws()
+ if self.skip_word('nullptr'):
+ return ASTPointerLiteral()
+ if self.skip_word('true'):
+ return ASTBooleanLiteral(True)
+ if self.skip_word('false'):
+ return ASTBooleanLiteral(False)
+ pos = self.pos
+ if self.match(float_literal_re):
+ hasSuffix = self.match(float_literal_suffix_re)
+ floatLit = ASTNumberLiteral(self.definition[pos:self.pos])
+ if hasSuffix:
+ return floatLit
+ else:
+ return _udl(floatLit)
+ for regex in (binary_literal_re, hex_literal_re,
+ integer_literal_re, octal_literal_re):
+ if self.match(regex):
+ hasSuffix = self.match(integers_literal_suffix_re)
+ intLit = ASTNumberLiteral(self.definition[pos:self.pos])
+ if hasSuffix:
+ return intLit
+ else:
+ return _udl(intLit)
+
+ string = self._parse_string()
+ if string is not None:
+ return _udl(ASTStringLiteral(string))
+
+ # character-literal
+ if self.match(char_literal_re):
+ prefix = self.last_match.group(1) # may be None when no prefix
+ data = self.last_match.group(2)
+ try:
+ charLit = ASTCharLiteral(prefix, data)
+ except UnicodeDecodeError as e:
+ self.fail("Can not handle character literal. Internal error was: %s" % e)
+ except UnsupportedMultiCharacterCharLiteral:
+ self.fail("Can not handle character literal"
+ " resulting in multiple decoded characters.")
+ return _udl(charLit)
+ return None
+
+ def _parse_fold_or_paren_expression(self) -> ASTExpression | None:
+ # "(" expression ")"
+ # fold-expression
+ # -> ( cast-expression fold-operator ... )
+ # | ( ... fold-operator cast-expression )
+ # | ( cast-expression fold-operator ... fold-operator cast-expression
+ if self.current_char != '(':
+ return None
+ self.pos += 1
+ self.skip_ws()
+ if self.skip_string_and_ws("..."):
+ # ( ... fold-operator cast-expression )
+ if not self.match(_fold_operator_re):
+ self.fail("Expected fold operator after '...' in fold expression.")
+ op = self.matched_text
+ rightExpr = self._parse_cast_expression()
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in end of fold expression.")
+ return ASTFoldExpr(None, op, rightExpr)
+ # try first parsing a unary right fold, or a binary fold
+ pos = self.pos
+ try:
+ self.skip_ws()
+ leftExpr = self._parse_cast_expression()
+ self.skip_ws()
+ if not self.match(_fold_operator_re):
+ self.fail("Expected fold operator after left expression in fold expression.")
+ op = self.matched_text
+ self.skip_ws()
+ if not self.skip_string_and_ws('...'):
+ self.fail("Expected '...' after fold operator in fold expression.")
+ except DefinitionError as eFold:
+ self.pos = pos
+ # fall back to a paren expression
+ try:
+ res = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in end of parenthesized expression.")
+ except DefinitionError as eExpr:
+ raise self._make_multi_error([
+ (eFold, "If fold expression"),
+ (eExpr, "If parenthesized expression"),
+ ], "Error in fold expression or parenthesized expression.") from eExpr
+ return ASTParenExpr(res)
+ # now it definitely is a fold expression
+ if self.skip_string(')'):
+ return ASTFoldExpr(leftExpr, op, None)
+ if not self.match(_fold_operator_re):
+ self.fail("Expected fold operator or ')' after '...' in fold expression.")
+ if op != self.matched_text:
+ self.fail("Operators are different in binary fold: '%s' and '%s'."
+ % (op, self.matched_text))
+ rightExpr = self._parse_cast_expression()
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expected ')' to end binary fold expression.")
+ return ASTFoldExpr(leftExpr, op, rightExpr)
+
+ def _parse_primary_expression(self) -> ASTExpression:
+ # literal
+ # "this"
+ # lambda-expression
+ # "(" expression ")"
+ # fold-expression
+ # id-expression -> we parse this with _parse_nested_name
+ self.skip_ws()
+ res: ASTExpression = self._parse_literal()
+ if res is not None:
+ return res
+ self.skip_ws()
+ if self.skip_word("this"):
+ return ASTThisLiteral()
+ # TODO: try lambda expression
+ res = self._parse_fold_or_paren_expression()
+ if res is not None:
+ return res
+ nn = self._parse_nested_name()
+ if nn is not None:
+ return ASTIdExpression(nn)
+ return None
+
+ def _parse_initializer_list(self, name: str, open: str, close: str,
+ ) -> tuple[list[ASTExpression | ASTBracedInitList],
+ bool]:
+ # Parse open and close with the actual initializer-list in between
+ # -> initializer-clause '...'[opt]
+ # | initializer-list ',' initializer-clause '...'[opt]
+ self.skip_ws()
+ if not self.skip_string_and_ws(open):
+ return None, None
+ if self.skip_string(close):
+ return [], False
+
+ exprs: list[ASTExpression | ASTBracedInitList] = []
+ trailingComma = False
+ while True:
+ self.skip_ws()
+ expr = self._parse_initializer_clause()
+ self.skip_ws()
+ if self.skip_string('...'):
+ exprs.append(ASTPackExpansionExpr(expr))
+ else:
+ exprs.append(expr)
+ self.skip_ws()
+ if self.skip_string(close):
+ break
+ if not self.skip_string_and_ws(','):
+ self.fail(f"Error in {name}, expected ',' or '{close}'.")
+ if self.current_char == close == '}':
+ self.pos += 1
+ trailingComma = True
+ break
+ return exprs, trailingComma
+
+ def _parse_paren_expression_list(self) -> ASTParenExprList:
+ # -> '(' expression-list ')'
+ # though, we relax it to also allow empty parens
+ # as it's needed in some cases
+ #
+ # expression-list
+ # -> initializer-list
+ exprs, trailingComma = self._parse_initializer_list("parenthesized expression-list",
+ '(', ')')
+ if exprs is None:
+ return None
+ return ASTParenExprList(exprs)
+
+ def _parse_initializer_clause(self) -> ASTExpression | ASTBracedInitList:
+ bracedInitList = self._parse_braced_init_list()
+ if bracedInitList is not None:
+ return bracedInitList
+ return self._parse_assignment_expression(inTemplate=False)
+
+ def _parse_braced_init_list(self) -> ASTBracedInitList:
+ # -> '{' initializer-list ','[opt] '}'
+ # | '{' '}'
+ exprs, trailingComma = self._parse_initializer_list("braced-init-list", '{', '}')
+ if exprs is None:
+ return None
+ return ASTBracedInitList(exprs, trailingComma)
+
+ def _parse_expression_list_or_braced_init_list(
+ self,
+ ) -> ASTParenExprList | ASTBracedInitList:
+ paren = self._parse_paren_expression_list()
+ if paren is not None:
+ return paren
+ return self._parse_braced_init_list()
+
+ def _parse_postfix_expression(self) -> ASTPostfixExpr:
+ # -> primary
+ # | postfix "[" expression "]"
+ # | postfix "[" braced-init-list [opt] "]"
+ # | postfix "(" expression-list [opt] ")"
+ # | postfix "." "template" [opt] id-expression
+ # | postfix "->" "template" [opt] id-expression
+ # | postfix "." pseudo-destructor-name
+ # | postfix "->" pseudo-destructor-name
+ # | postfix "++"
+ # | postfix "--"
+ # | simple-type-specifier "(" expression-list [opt] ")"
+ # | simple-type-specifier braced-init-list
+ # | typename-specifier "(" expression-list [opt] ")"
+ # | typename-specifier braced-init-list
+ # | "dynamic_cast" "<" type-id ">" "(" expression ")"
+ # | "static_cast" "<" type-id ">" "(" expression ")"
+ # | "reinterpret_cast" "<" type-id ">" "(" expression ")"
+ # | "const_cast" "<" type-id ">" "(" expression ")"
+ # | "typeid" "(" expression ")"
+ # | "typeid" "(" type-id ")"
+
+ prefixType = None
+ prefix: Any = None
+ self.skip_ws()
+
+ cast = None
+ for c in _id_explicit_cast:
+ if self.skip_word_and_ws(c):
+ cast = c
+ break
+ if cast is not None:
+ prefixType = "cast"
+ if not self.skip_string("<"):
+ self.fail("Expected '<' after '%s'." % cast)
+ typ = self._parse_type(False)
+ self.skip_ws()
+ if not self.skip_string_and_ws(">"):
+ self.fail("Expected '>' after type in '%s'." % cast)
+ if not self.skip_string("("):
+ self.fail("Expected '(' in '%s'." % cast)
+
+ def parser() -> ASTExpression:
+ return self._parse_expression()
+ expr = self._parse_expression_fallback([')'], parser)
+ self.skip_ws()
+ if not self.skip_string(")"):
+ self.fail("Expected ')' to end '%s'." % cast)
+ prefix = ASTExplicitCast(cast, typ, expr)
+ elif self.skip_word_and_ws("typeid"):
+ prefixType = "typeid"
+ if not self.skip_string_and_ws('('):
+ self.fail("Expected '(' after 'typeid'.")
+ pos = self.pos
+ try:
+ typ = self._parse_type(False)
+ prefix = ASTTypeId(typ, isType=True)
+ if not self.skip_string(')'):
+ self.fail("Expected ')' to end 'typeid' of type.")
+ except DefinitionError as eType:
+ self.pos = pos
+ try:
+
+ def parser() -> ASTExpression:
+ return self._parse_expression()
+ expr = self._parse_expression_fallback([')'], parser)
+ prefix = ASTTypeId(expr, isType=False)
+ if not self.skip_string(')'):
+ self.fail("Expected ')' to end 'typeid' of expression.")
+ except DefinitionError as eExpr:
+ self.pos = pos
+ header = "Error in 'typeid(...)'."
+ header += " Expected type or expression."
+ errors = []
+ errors.append((eType, "If type"))
+ errors.append((eExpr, "If expression"))
+ raise self._make_multi_error(errors, header) from eExpr
+ else: # a primary expression or a type
+ pos = self.pos
+ try:
+ prefix = self._parse_primary_expression()
+ prefixType = 'expr'
+ except DefinitionError as eOuter:
+ self.pos = pos
+ try:
+ # we are potentially casting, so save parens for us
+ # TODO: hmm, would we need to try both with operatorCast and with None?
+ prefix = self._parse_type(False, 'operatorCast')
+ prefixType = 'typeOperatorCast'
+ # | simple-type-specifier "(" expression-list [opt] ")"
+ # | simple-type-specifier braced-init-list
+ # | typename-specifier "(" expression-list [opt] ")"
+ # | typename-specifier braced-init-list
+ self.skip_ws()
+ if self.current_char != '(' and self.current_char != '{':
+ self.fail("Expecting '(' or '{' after type in cast expression.")
+ except DefinitionError as eInner:
+ self.pos = pos
+ header = "Error in postfix expression,"
+ header += " expected primary expression or type."
+ errors = []
+ errors.append((eOuter, "If primary expression"))
+ errors.append((eInner, "If type"))
+ raise self._make_multi_error(errors, header) from eInner
+
+ # and now parse postfixes
+ postFixes: list[ASTPostfixOp] = []
+ while True:
+ self.skip_ws()
+ if prefixType in ('expr', 'cast', 'typeid'):
+ if self.skip_string_and_ws('['):
+ expr = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(']'):
+ self.fail("Expected ']' in end of postfix expression.")
+ postFixes.append(ASTPostfixArray(expr))
+ continue
+ if self.skip_string('.'):
+ if self.skip_string('*'):
+ # don't steal the dot
+ self.pos -= 2
+ elif self.skip_string('..'):
+ # don't steal the dot
+ self.pos -= 3
+ else:
+ name = self._parse_nested_name()
+ postFixes.append(ASTPostfixMember(name))
+ continue
+ if self.skip_string('->'):
+ if self.skip_string('*'):
+ # don't steal the arrow
+ self.pos -= 3
+ else:
+ name = self._parse_nested_name()
+ postFixes.append(ASTPostfixMemberOfPointer(name))
+ continue
+ if self.skip_string('++'):
+ postFixes.append(ASTPostfixInc())
+ continue
+ if self.skip_string('--'):
+ postFixes.append(ASTPostfixDec())
+ continue
+ lst = self._parse_expression_list_or_braced_init_list()
+ if lst is not None:
+ postFixes.append(ASTPostfixCallExpr(lst))
+ continue
+ break
+ return ASTPostfixExpr(prefix, postFixes)
+
+ def _parse_unary_expression(self) -> ASTExpression:
+ # -> postfix
+ # | "++" cast
+ # | "--" cast
+ # | unary-operator cast -> (* | & | + | - | ! | ~) cast
+ # The rest:
+ # | "sizeof" unary
+ # | "sizeof" "(" type-id ")"
+ # | "sizeof" "..." "(" identifier ")"
+ # | "alignof" "(" type-id ")"
+ # | noexcept-expression -> noexcept "(" expression ")"
+ # | new-expression
+ # | delete-expression
+ self.skip_ws()
+ for op in _expression_unary_ops:
+ # TODO: hmm, should we be able to backtrack here?
+ if op[0] in 'cn':
+ res = self.skip_word(op)
+ else:
+ res = self.skip_string(op)
+ if res:
+ expr = self._parse_cast_expression()
+ return ASTUnaryOpExpr(op, expr)
+ if self.skip_word_and_ws('sizeof'):
+ if self.skip_string_and_ws('...'):
+ if not self.skip_string_and_ws('('):
+ self.fail("Expecting '(' after 'sizeof...'.")
+ if not self.match(identifier_re):
+ self.fail("Expecting identifier for 'sizeof...'.")
+ ident = ASTIdentifier(self.matched_text)
+ self.skip_ws()
+ if not self.skip_string(")"):
+ self.fail("Expecting ')' to end 'sizeof...'.")
+ return ASTSizeofParamPack(ident)
+ if self.skip_string_and_ws('('):
+ typ = self._parse_type(named=False)
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expecting ')' to end 'sizeof'.")
+ return ASTSizeofType(typ)
+ expr = self._parse_unary_expression()
+ return ASTSizeofExpr(expr)
+ if self.skip_word_and_ws('alignof'):
+ if not self.skip_string_and_ws('('):
+ self.fail("Expecting '(' after 'alignof'.")
+ typ = self._parse_type(named=False)
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expecting ')' to end 'alignof'.")
+ return ASTAlignofExpr(typ)
+ if self.skip_word_and_ws('noexcept'):
+ if not self.skip_string_and_ws('('):
+ self.fail("Expecting '(' after 'noexcept'.")
+ expr = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expecting ')' to end 'noexcept'.")
+ return ASTNoexceptExpr(expr)
+ # new-expression
+ pos = self.pos
+ rooted = self.skip_string('::')
+ self.skip_ws()
+ if not self.skip_word_and_ws('new'):
+ self.pos = pos
+ else:
+ # new-placement[opt] new-type-id new-initializer[opt]
+ # new-placement[opt] ( type-id ) new-initializer[opt]
+ isNewTypeId = True
+ if self.skip_string_and_ws('('):
+ # either this is a new-placement or it's the second production
+ # without placement, and it's actually the ( type-id ) part
+ self.fail("Sorry, neither new-placement nor parenthesised type-id "
+ "in new-epression is supported yet.")
+ # set isNewTypeId = False if it's (type-id)
+ if isNewTypeId:
+ declSpecs = self._parse_decl_specs(outer=None)
+ decl = self._parse_declarator(named=False, paramMode="new")
+ else:
+ self.fail("Sorry, parenthesised type-id in new expression not yet supported.")
+ lst = self._parse_expression_list_or_braced_init_list()
+ return ASTNewExpr(rooted, isNewTypeId, ASTType(declSpecs, decl), lst)
+ # delete-expression
+ pos = self.pos
+ rooted = self.skip_string('::')
+ self.skip_ws()
+ if not self.skip_word_and_ws('delete'):
+ self.pos = pos
+ else:
+ array = self.skip_string_and_ws('[')
+ if array and not self.skip_string_and_ws(']'):
+ self.fail("Expected ']' in array delete-expression.")
+ expr = self._parse_cast_expression()
+ return ASTDeleteExpr(rooted, array, expr)
+ return self._parse_postfix_expression()
+
+ def _parse_cast_expression(self) -> ASTExpression:
+ # -> unary | "(" type-id ")" cast
+ pos = self.pos
+ self.skip_ws()
+ if self.skip_string('('):
+ try:
+ typ = self._parse_type(False)
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in cast expression.")
+ expr = self._parse_cast_expression()
+ return ASTCastExpr(typ, expr)
+ except DefinitionError as exCast:
+ self.pos = pos
+ try:
+ return self._parse_unary_expression()
+ except DefinitionError as exUnary:
+ errs = []
+ errs.append((exCast, "If type cast expression"))
+ errs.append((exUnary, "If unary expression"))
+ raise self._make_multi_error(errs,
+ "Error in cast expression.") from exUnary
+ else:
+ return self._parse_unary_expression()
+
+ def _parse_logical_or_expression(self, inTemplate: bool) -> ASTExpression:
+ # logical-or = logical-and ||
+ # logical-and = inclusive-or &&
+ # inclusive-or = exclusive-or |
+ # exclusive-or = and ^
+ # and = equality &
+ # equality = relational ==, !=
+ # relational = shift <, >, <=, >=, <=>
+ # shift = additive <<, >>
+ # additive = multiplicative +, -
+ # multiplicative = pm *, /, %
+ # pm = cast .*, ->*
+ def _parse_bin_op_expr(self: DefinitionParser,
+ opId: int, inTemplate: bool) -> ASTExpression:
+ if opId + 1 == len(_expression_bin_ops):
+ def parser(inTemplate: bool) -> ASTExpression:
+ return self._parse_cast_expression()
+ else:
+ def parser(inTemplate: bool) -> ASTExpression:
+ return _parse_bin_op_expr(self, opId + 1, inTemplate=inTemplate)
+ exprs = []
+ ops = []
+ exprs.append(parser(inTemplate=inTemplate))
+ while True:
+ self.skip_ws()
+ if inTemplate and self.current_char == '>':
+ break
+ pos = self.pos
+ oneMore = False
+ for op in _expression_bin_ops[opId]:
+ if op[0] in 'abcnox':
+ if not self.skip_word(op):
+ continue
+ else:
+ if not self.skip_string(op):
+ continue
+ if op == self.current_char == '&':
+ # don't split the && 'token'
+ self.pos -= 1
+ # and btw. && has lower precedence, so we are done
+ break
+ try:
+ expr = parser(inTemplate=inTemplate)
+ exprs.append(expr)
+ ops.append(op)
+ oneMore = True
+ break
+ except DefinitionError:
+ self.pos = pos
+ if not oneMore:
+ break
+ return ASTBinOpExpr(exprs, ops)
+ return _parse_bin_op_expr(self, 0, inTemplate=inTemplate)
+
+ def _parse_conditional_expression_tail(self, orExprHead: ASTExpression,
+ inTemplate: bool) -> ASTConditionalExpr | None:
+ # Consumes the orExprHead on success.
+
+ # -> "?" expression ":" assignment-expression
+ self.skip_ws()
+ if not self.skip_string("?"):
+ return None
+ thenExpr = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(":"):
+ self.fail('Expected ":" after then-expression in conditional expression.')
+ elseExpr = self._parse_assignment_expression(inTemplate)
+ return ASTConditionalExpr(orExprHead, thenExpr, elseExpr)
+
+ def _parse_assignment_expression(self, inTemplate: bool) -> ASTExpression:
+ # -> conditional-expression
+ # | logical-or-expression assignment-operator initializer-clause
+ # | yield-expression -> "co_yield" assignment-expression
+ # | "co_yield" braced-init-list
+ # | throw-expression -> "throw" assignment-expression[opt]
+ # TODO: yield-expression
+ # TODO: throw-expression
+
+ # Now we have (after expanding conditional-expression:
+ # logical-or-expression
+ # | logical-or-expression "?" expression ":" assignment-expression
+ # | logical-or-expression assignment-operator initializer-clause
+ leftExpr = self._parse_logical_or_expression(inTemplate=inTemplate)
+ # the ternary operator
+ condExpr = self._parse_conditional_expression_tail(leftExpr, inTemplate)
+ if condExpr is not None:
+ return condExpr
+ # and actual assignment
+ for op in _expression_assignment_ops:
+ if op[0] in 'anox':
+ if not self.skip_word(op):
+ continue
+ else:
+ if not self.skip_string(op):
+ continue
+ rightExpr = self._parse_initializer_clause()
+ return ASTAssignmentExpr(leftExpr, op, rightExpr)
+ # just a logical-or-expression
+ return leftExpr
+
+ def _parse_constant_expression(self, inTemplate: bool) -> ASTExpression:
+ # -> conditional-expression ->
+ # logical-or-expression
+ # | logical-or-expression "?" expression ":" assignment-expression
+ orExpr = self._parse_logical_or_expression(inTemplate=inTemplate)
+ condExpr = self._parse_conditional_expression_tail(orExpr, inTemplate)
+ if condExpr is not None:
+ return condExpr
+ return orExpr
+
+ def _parse_expression(self) -> ASTExpression:
+ # -> assignment-expression
+ # | expression "," assignment-expression
+ exprs = [self._parse_assignment_expression(inTemplate=False)]
+ while True:
+ self.skip_ws()
+ if not self.skip_string(','):
+ break
+ exprs.append(self._parse_assignment_expression(inTemplate=False))
+ if len(exprs) == 1:
+ return exprs[0]
+ else:
+ return ASTCommaExpr(exprs)
+
+ def _parse_expression_fallback(self, end: list[str],
+ parser: Callable[[], ASTExpression],
+ allow: bool = True) -> ASTExpression:
+ # Stupidly "parse" an expression.
+ # 'end' should be a list of characters which ends the expression.
+
+ # first try to use the provided parser
+ prevPos = self.pos
+ try:
+ return parser()
+ except DefinitionError as e:
+ # some places (e.g., template parameters) we really don't want to use fallback,
+ # and for testing we may want to globally disable it
+ if not allow or not self.allowFallbackExpressionParsing:
+ raise
+ self.warn("Parsing of expression failed. Using fallback parser."
+ " Error was:\n%s" % e)
+ self.pos = prevPos
+ # and then the fallback scanning
+ assert end is not None
+ self.skip_ws()
+ startPos = self.pos
+ if self.match(_string_re):
+ value = self.matched_text
+ else:
+ # TODO: add handling of more bracket-like things, and quote handling
+ brackets = {'(': ')', '{': '}', '[': ']', '<': '>'}
+ symbols: list[str] = []
+ while not self.eof:
+ if (len(symbols) == 0 and self.current_char in end):
+ break
+ if self.current_char in brackets:
+ symbols.append(brackets[self.current_char])
+ elif len(symbols) > 0 and self.current_char == symbols[-1]:
+ symbols.pop()
+ self.pos += 1
+ if len(end) > 0 and self.eof:
+ self.fail("Could not find end of expression starting at %d."
+ % startPos)
+ value = self.definition[startPos:self.pos].strip()
+ return ASTFallbackExpr(value.strip())
+
+ # ==========================================================================
+
+ def _parse_operator(self) -> ASTOperator:
+ self.skip_ws()
+ # adapted from the old code
+ # yay, a regular operator definition
+ if self.match(_operator_re):
+ return ASTOperatorBuildIn(self.matched_text)
+
+ # new/delete operator?
+ for op in 'new', 'delete':
+ if not self.skip_word(op):
+ continue
+ self.skip_ws()
+ if self.skip_string('['):
+ self.skip_ws()
+ if not self.skip_string(']'):
+ self.fail('Expected "]" after "operator ' + op + '["')
+ op += '[]'
+ return ASTOperatorBuildIn(op)
+
+ # user-defined literal?
+ if self.skip_string('""'):
+ self.skip_ws()
+ if not self.match(identifier_re):
+ self.fail("Expected user-defined literal suffix.")
+ identifier = ASTIdentifier(self.matched_text)
+ return ASTOperatorLiteral(identifier)
+
+ # oh well, looks like a cast operator definition.
+ # In that case, eat another type.
+ type = self._parse_type(named=False, outer="operatorCast")
+ return ASTOperatorType(type)
+
+ def _parse_template_argument_list(self) -> ASTTemplateArgs:
+ # template-argument-list: (but we include the < and > here
+ # template-argument ...[opt]
+ # template-argument-list, template-argument ...[opt]
+ # template-argument:
+ # constant-expression
+ # type-id
+ # id-expression
+ self.skip_ws()
+ if not self.skip_string_and_ws('<'):
+ return None
+ if self.skip_string('>'):
+ return ASTTemplateArgs([], False)
+ prevErrors = []
+ templateArgs: list[ASTType | ASTTemplateArgConstant] = []
+ packExpansion = False
+ while 1:
+ pos = self.pos
+ parsedComma = False
+ parsedEnd = False
+ try:
+ type = self._parse_type(named=False)
+ self.skip_ws()
+ if self.skip_string_and_ws('...'):
+ packExpansion = True
+ parsedEnd = True
+ if not self.skip_string('>'):
+ self.fail('Expected ">" after "..." in template argument list.')
+ elif self.skip_string('>'):
+ parsedEnd = True
+ elif self.skip_string(','):
+ parsedComma = True
+ else:
+ self.fail('Expected "...>", ">" or "," in template argument list.')
+ templateArgs.append(type)
+ except DefinitionError as e:
+ prevErrors.append((e, "If type argument"))
+ self.pos = pos
+ try:
+ value = self._parse_constant_expression(inTemplate=True)
+ self.skip_ws()
+ if self.skip_string_and_ws('...'):
+ packExpansion = True
+ parsedEnd = True
+ if not self.skip_string('>'):
+ self.fail('Expected ">" after "..." in template argument list.')
+ elif self.skip_string('>'):
+ parsedEnd = True
+ elif self.skip_string(','):
+ parsedComma = True
+ else:
+ self.fail('Expected "...>", ">" or "," in template argument list.')
+ templateArgs.append(ASTTemplateArgConstant(value))
+ except DefinitionError as e:
+ self.pos = pos
+ prevErrors.append((e, "If non-type argument"))
+ header = "Error in parsing template argument list."
+ raise self._make_multi_error(prevErrors, header) from e
+ if parsedEnd:
+ assert not parsedComma
+ break
+ assert not packExpansion
+ return ASTTemplateArgs(templateArgs, packExpansion)
+
+ def _parse_nested_name(self, memberPointer: bool = False) -> ASTNestedName:
+ names: list[ASTNestedNameElement] = []
+ templates: list[bool] = []
+
+ self.skip_ws()
+ rooted = False
+ if self.skip_string('::'):
+ rooted = True
+ while 1:
+ self.skip_ws()
+ if len(names) > 0:
+ template = self.skip_word_and_ws('template')
+ else:
+ template = False
+ templates.append(template)
+ identOrOp: ASTIdentifier | ASTOperator | None = None
+ if self.skip_word_and_ws('operator'):
+ identOrOp = self._parse_operator()
+ else:
+ if not self.match(identifier_re):
+ if memberPointer and len(names) > 0:
+ templates.pop()
+ break
+ self.fail("Expected identifier in nested name.")
+ identifier = self.matched_text
+ # make sure there isn't a keyword
+ if identifier in _keywords:
+ self.fail("Expected identifier in nested name, "
+ "got keyword: %s" % identifier)
+ identOrOp = ASTIdentifier(identifier)
+ # try greedily to get template arguments,
+ # but otherwise a < might be because we are in an expression
+ pos = self.pos
+ try:
+ templateArgs = self._parse_template_argument_list()
+ except DefinitionError as ex:
+ self.pos = pos
+ templateArgs = None
+ self.otherErrors.append(ex)
+ names.append(ASTNestedNameElement(identOrOp, templateArgs))
+
+ self.skip_ws()
+ if not self.skip_string('::'):
+ if memberPointer:
+ self.fail("Expected '::' in pointer to member (function).")
+ break
+ return ASTNestedName(names, templates, rooted)
+
+ # ==========================================================================
+
+ def _parse_simple_type_specifiers(self) -> ASTTrailingTypeSpecFundamental:
+ modifier: str | None = None
+ signedness: str | None = None
+ width: list[str] = []
+ typ: str | None = None
+ names: list[str] = [] # the parsed sequence
+
+ self.skip_ws()
+ while self.match(_simple_type_specifiers_re):
+ t = self.matched_text
+ names.append(t)
+ if t in ('auto', 'void', 'bool',
+ 'char', 'wchar_t', 'char8_t', 'char16_t', 'char32_t',
+ 'int', '__int64', '__int128',
+ 'float', 'double',
+ '__float80', '_Float64x', '__float128', '_Float128'):
+ if typ is not None:
+ self.fail(f"Can not have both {t} and {typ}.")
+ typ = t
+ elif t in ('signed', 'unsigned'):
+ if signedness is not None:
+ self.fail(f"Can not have both {t} and {signedness}.")
+ signedness = t
+ elif t == 'short':
+ if len(width) != 0:
+ self.fail(f"Can not have both {t} and {width[0]}.")
+ width.append(t)
+ elif t == 'long':
+ if len(width) != 0 and width[0] != 'long':
+ self.fail(f"Can not have both {t} and {width[0]}.")
+ width.append(t)
+ elif t in ('_Imaginary', '_Complex'):
+ if modifier is not None:
+ self.fail(f"Can not have both {t} and {modifier}.")
+ modifier = t
+ self.skip_ws()
+ if len(names) == 0:
+ return None
+
+ if typ in ('auto', 'void', 'bool',
+ 'wchar_t', 'char8_t', 'char16_t', 'char32_t',
+ '__float80', '_Float64x', '__float128', '_Float128'):
+ if modifier is not None:
+ self.fail(f"Can not have both {typ} and {modifier}.")
+ if signedness is not None:
+ self.fail(f"Can not have both {typ} and {signedness}.")
+ if len(width) != 0:
+ self.fail(f"Can not have both {typ} and {' '.join(width)}.")
+ elif typ == 'char':
+ if modifier is not None:
+ self.fail(f"Can not have both {typ} and {modifier}.")
+ if len(width) != 0:
+ self.fail(f"Can not have both {typ} and {' '.join(width)}.")
+ elif typ == 'int':
+ if modifier is not None:
+ self.fail(f"Can not have both {typ} and {modifier}.")
+ elif typ in ('__int64', '__int128'):
+ if modifier is not None:
+ self.fail(f"Can not have both {typ} and {modifier}.")
+ if len(width) != 0:
+ self.fail(f"Can not have both {typ} and {' '.join(width)}.")
+ elif typ == 'float':
+ if signedness is not None:
+ self.fail(f"Can not have both {typ} and {signedness}.")
+ if len(width) != 0:
+ self.fail(f"Can not have both {typ} and {' '.join(width)}.")
+ elif typ == 'double':
+ if signedness is not None:
+ self.fail(f"Can not have both {typ} and {signedness}.")
+ if len(width) > 1:
+ self.fail(f"Can not have both {typ} and {' '.join(width)}.")
+ if len(width) == 1 and width[0] != 'long':
+ self.fail(f"Can not have both {typ} and {' '.join(width)}.")
+ elif typ is None:
+ if modifier is not None:
+ self.fail(f"Can not have {modifier} without a floating point type.")
+ else:
+ msg = f'Unhandled type {typ}'
+ raise AssertionError(msg)
+
+ canonNames: list[str] = []
+ if modifier is not None:
+ canonNames.append(modifier)
+ if signedness is not None:
+ canonNames.append(signedness)
+ canonNames.extend(width)
+ if typ is not None:
+ canonNames.append(typ)
+ return ASTTrailingTypeSpecFundamental(names, canonNames)
+
+ def _parse_trailing_type_spec(self) -> ASTTrailingTypeSpec:
+ # fundamental types, https://en.cppreference.com/w/cpp/language/type
+ # and extensions
+ self.skip_ws()
+ res = self._parse_simple_type_specifiers()
+ if res is not None:
+ return res
+
+ # decltype
+ self.skip_ws()
+ if self.skip_word_and_ws('decltype'):
+ if not self.skip_string_and_ws('('):
+ self.fail("Expected '(' after 'decltype'.")
+ if self.skip_word_and_ws('auto'):
+ if not self.skip_string(')'):
+ self.fail("Expected ')' after 'decltype(auto'.")
+ return ASTTrailingTypeSpecDecltypeAuto()
+ expr = self._parse_expression()
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expected ')' after 'decltype(<expr>'.")
+ return ASTTrailingTypeSpecDecltype(expr)
+
+ # prefixed
+ prefix = None
+ self.skip_ws()
+ for k in ('class', 'struct', 'enum', 'union', 'typename'):
+ if self.skip_word_and_ws(k):
+ prefix = k
+ break
+ nestedName = self._parse_nested_name()
+ self.skip_ws()
+ placeholderType = None
+ if self.skip_word('auto'):
+ placeholderType = 'auto'
+ elif self.skip_word_and_ws('decltype'):
+ if not self.skip_string_and_ws('('):
+ self.fail("Expected '(' after 'decltype' in placeholder type specifier.")
+ if not self.skip_word_and_ws('auto'):
+ self.fail("Expected 'auto' after 'decltype(' in placeholder type specifier.")
+ if not self.skip_string_and_ws(')'):
+ self.fail("Expected ')' after 'decltype(auto' in placeholder type specifier.")
+ placeholderType = 'decltype(auto)'
+ return ASTTrailingTypeSpecName(prefix, nestedName, placeholderType)
+
+ def _parse_parameters_and_qualifiers(
+ self, paramMode: str,
+ ) -> ASTParametersQualifiers | None:
+ if paramMode == 'new':
+ return None
+ self.skip_ws()
+ if not self.skip_string('('):
+ if paramMode == 'function':
+ self.fail('Expecting "(" in parameters-and-qualifiers.')
+ else:
+ return None
+ args = []
+ self.skip_ws()
+ if not self.skip_string(')'):
+ while 1:
+ self.skip_ws()
+ if self.skip_string('...'):
+ args.append(ASTFunctionParameter(None, True))
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail('Expected ")" after "..." in '
+ 'parameters-and-qualifiers.')
+ break
+ # note: it seems that function arguments can always be named,
+ # even in function pointers and similar.
+ arg = self._parse_type_with_init(outer=None, named='single')
+ # TODO: parse default parameters # TODO: didn't we just do that?
+ args.append(ASTFunctionParameter(arg))
+
+ self.skip_ws()
+ if self.skip_string(','):
+ continue
+ if self.skip_string(')'):
+ break
+ self.fail('Expecting "," or ")" in parameters-and-qualifiers, '
+ f'got "{self.current_char}".')
+
+ self.skip_ws()
+ const = self.skip_word_and_ws('const')
+ volatile = self.skip_word_and_ws('volatile')
+ if not const: # the can be permuted
+ const = self.skip_word_and_ws('const')
+
+ refQual = None
+ if self.skip_string('&&'):
+ refQual = '&&'
+ if not refQual and self.skip_string('&'):
+ refQual = '&'
+
+ exceptionSpec = None
+ self.skip_ws()
+ if self.skip_string('noexcept'):
+ if self.skip_string_and_ws('('):
+ expr = self._parse_constant_expression(False)
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expecting ')' to end 'noexcept'.")
+ exceptionSpec = ASTNoexceptSpec(expr)
+ else:
+ exceptionSpec = ASTNoexceptSpec(None)
+
+ self.skip_ws()
+ if self.skip_string('->'):
+ trailingReturn = self._parse_type(named=False)
+ else:
+ trailingReturn = None
+
+ self.skip_ws()
+ override = self.skip_word_and_ws('override')
+ final = self.skip_word_and_ws('final')
+ if not override:
+ override = self.skip_word_and_ws(
+ 'override') # they can be permuted
+
+ attrs = self._parse_attribute_list()
+
+ self.skip_ws()
+ initializer = None
+ # if this is a function pointer we should not swallow an initializer
+ if paramMode == 'function' and self.skip_string('='):
+ self.skip_ws()
+ valid = ('0', 'delete', 'default')
+ for w in valid:
+ if self.skip_word_and_ws(w):
+ initializer = w
+ break
+ if not initializer:
+ self.fail(
+ 'Expected "%s" in initializer-specifier.'
+ % '" or "'.join(valid))
+
+ return ASTParametersQualifiers(
+ args, volatile, const, refQual, exceptionSpec, trailingReturn,
+ override, final, attrs, initializer)
+
+ def _parse_decl_specs_simple(self, outer: str, typed: bool) -> ASTDeclSpecsSimple:
+ """Just parse the simple ones."""
+ storage = None
+ threadLocal = None
+ inline = None
+ virtual = None
+ explicitSpec = None
+ consteval = None
+ constexpr = None
+ constinit = None
+ volatile = None
+ const = None
+ friend = None
+ attrs = []
+ while 1: # accept any permutation of a subset of some decl-specs
+ self.skip_ws()
+ if not const and typed:
+ const = self.skip_word('const')
+ if const:
+ continue
+ if not volatile and typed:
+ volatile = self.skip_word('volatile')
+ if volatile:
+ continue
+ if not storage:
+ if outer in ('member', 'function'):
+ if self.skip_word('static'):
+ storage = 'static'
+ continue
+ if self.skip_word('extern'):
+ storage = 'extern'
+ continue
+ if outer == 'member':
+ if self.skip_word('mutable'):
+ storage = 'mutable'
+ continue
+ if self.skip_word('register'):
+ storage = 'register'
+ continue
+ if not inline and outer in ('function', 'member'):
+ inline = self.skip_word('inline')
+ if inline:
+ continue
+ if not constexpr and outer in ('member', 'function'):
+ constexpr = self.skip_word("constexpr")
+ if constexpr:
+ continue
+
+ if outer == 'member':
+ if not constinit:
+ constinit = self.skip_word('constinit')
+ if constinit:
+ continue
+ if not threadLocal:
+ threadLocal = self.skip_word('thread_local')
+ if threadLocal:
+ continue
+ if outer == 'function':
+ if not consteval:
+ consteval = self.skip_word('consteval')
+ if consteval:
+ continue
+ if not friend:
+ friend = self.skip_word('friend')
+ if friend:
+ continue
+ if not virtual:
+ virtual = self.skip_word('virtual')
+ if virtual:
+ continue
+ if not explicitSpec:
+ explicit = self.skip_word_and_ws('explicit')
+ if explicit:
+ expr: ASTExpression = None
+ if self.skip_string('('):
+ expr = self._parse_constant_expression(inTemplate=False)
+ if not expr:
+ self.fail("Expected constant expression after '('" +
+ " in explicit specifier.")
+ self.skip_ws()
+ if not self.skip_string(')'):
+ self.fail("Expected ')' to end explicit specifier.")
+ explicitSpec = ASTExplicitSpec(expr)
+ continue
+ attr = self._parse_attribute()
+ if attr:
+ attrs.append(attr)
+ continue
+ break
+ return ASTDeclSpecsSimple(storage, threadLocal, inline, virtual,
+ explicitSpec, consteval, constexpr, constinit,
+ volatile, const, friend, ASTAttributeList(attrs))
+
+ def _parse_decl_specs(self, outer: str, typed: bool = True) -> ASTDeclSpecs:
+ if outer:
+ if outer not in ('type', 'member', 'function', 'templateParam'):
+ raise Exception('Internal error, unknown outer "%s".' % outer)
+ """
+ storage-class-specifier function-specifier "constexpr"
+ "volatile" "const" trailing-type-specifier
+
+ storage-class-specifier ->
+ "static" (only for member_object and function_object)
+ | "register"
+
+ function-specifier -> "inline" | "virtual" | "explicit" (only for
+ function_object)
+
+ "constexpr" (only for member_object and function_object)
+ """
+ leftSpecs = self._parse_decl_specs_simple(outer, typed)
+ rightSpecs = None
+
+ if typed:
+ trailing = self._parse_trailing_type_spec()
+ rightSpecs = self._parse_decl_specs_simple(outer, typed)
+ else:
+ trailing = None
+ return ASTDeclSpecs(outer, leftSpecs, rightSpecs, trailing)
+
+ def _parse_declarator_name_suffix(
+ self, named: bool | str, paramMode: str, typed: bool,
+ ) -> ASTDeclaratorNameParamQual | ASTDeclaratorNameBitField:
+ # now we should parse the name, and then suffixes
+ if named == 'maybe':
+ pos = self.pos
+ try:
+ declId = self._parse_nested_name()
+ except DefinitionError:
+ self.pos = pos
+ declId = None
+ elif named == 'single':
+ if self.match(identifier_re):
+ identifier = ASTIdentifier(self.matched_text)
+ nne = ASTNestedNameElement(identifier, None)
+ declId = ASTNestedName([nne], [False], rooted=False)
+ # if it's a member pointer, we may have '::', which should be an error
+ self.skip_ws()
+ if self.current_char == ':':
+ self.fail("Unexpected ':' after identifier.")
+ else:
+ declId = None
+ elif named:
+ declId = self._parse_nested_name()
+ else:
+ declId = None
+ arrayOps = []
+ while 1:
+ self.skip_ws()
+ if typed and self.skip_string('['):
+ self.skip_ws()
+ if self.skip_string(']'):
+ arrayOps.append(ASTArray(None))
+ continue
+
+ def parser() -> ASTExpression:
+ return self._parse_expression()
+ value = self._parse_expression_fallback([']'], parser)
+ if not self.skip_string(']'):
+ self.fail("Expected ']' in end of array operator.")
+ arrayOps.append(ASTArray(value))
+ continue
+ break
+ paramQual = self._parse_parameters_and_qualifiers(paramMode)
+ if paramQual is None and len(arrayOps) == 0:
+ # perhaps a bit-field
+ if named and paramMode == 'type' and typed:
+ self.skip_ws()
+ if self.skip_string(':'):
+ size = self._parse_constant_expression(inTemplate=False)
+ return ASTDeclaratorNameBitField(declId=declId, size=size)
+ return ASTDeclaratorNameParamQual(declId=declId, arrayOps=arrayOps,
+ paramQual=paramQual)
+
+ def _parse_declarator(self, named: bool | str, paramMode: str,
+ typed: bool = True,
+ ) -> ASTDeclarator:
+ # 'typed' here means 'parse return type stuff'
+ if paramMode not in ('type', 'function', 'operatorCast', 'new'):
+ raise Exception(
+ "Internal error, unknown paramMode '%s'." % paramMode)
+ prevErrors = []
+ self.skip_ws()
+ if typed and self.skip_string('*'):
+ self.skip_ws()
+ volatile = False
+ const = False
+ attrList = []
+ while 1:
+ if not volatile:
+ volatile = self.skip_word_and_ws('volatile')
+ if volatile:
+ continue
+ if not const:
+ const = self.skip_word_and_ws('const')
+ if const:
+ continue
+ attr = self._parse_attribute()
+ if attr is not None:
+ attrList.append(attr)
+ continue
+ break
+ next = self._parse_declarator(named, paramMode, typed)
+ return ASTDeclaratorPtr(next=next, volatile=volatile, const=const,
+ attrs=ASTAttributeList(attrList))
+ # TODO: shouldn't we parse an R-value ref here first?
+ if typed and self.skip_string("&"):
+ attrs = self._parse_attribute_list()
+ next = self._parse_declarator(named, paramMode, typed)
+ return ASTDeclaratorRef(next=next, attrs=attrs)
+ if typed and self.skip_string("..."):
+ next = self._parse_declarator(named, paramMode, False)
+ return ASTDeclaratorParamPack(next=next)
+ if typed and self.current_char == '(': # note: peeking, not skipping
+ if paramMode == "operatorCast":
+ # TODO: we should be able to parse cast operators which return
+ # function pointers. For now, just hax it and ignore.
+ return ASTDeclaratorNameParamQual(declId=None, arrayOps=[],
+ paramQual=None)
+ # maybe this is the beginning of params and quals,try that first,
+ # otherwise assume it's noptr->declarator > ( ptr-declarator )
+ pos = self.pos
+ try:
+ # assume this is params and quals
+ res = self._parse_declarator_name_suffix(named, paramMode,
+ typed)
+ return res
+ except DefinitionError as exParamQual:
+ prevErrors.append((exParamQual,
+ "If declarator-id with parameters-and-qualifiers"))
+ self.pos = pos
+ try:
+ assert self.current_char == '('
+ self.skip_string('(')
+ # TODO: hmm, if there is a name, it must be in inner, right?
+ # TODO: hmm, if there must be parameters, they must be
+ # inside, right?
+ inner = self._parse_declarator(named, paramMode, typed)
+ if not self.skip_string(')'):
+ self.fail("Expected ')' in \"( ptr-declarator )\"")
+ next = self._parse_declarator(named=False,
+ paramMode="type",
+ typed=typed)
+ return ASTDeclaratorParen(inner=inner, next=next)
+ except DefinitionError as exNoPtrParen:
+ self.pos = pos
+ prevErrors.append((exNoPtrParen, "If parenthesis in noptr-declarator"))
+ header = "Error in declarator"
+ raise self._make_multi_error(prevErrors, header) from exNoPtrParen
+ if typed: # pointer to member
+ pos = self.pos
+ try:
+ name = self._parse_nested_name(memberPointer=True)
+ self.skip_ws()
+ if not self.skip_string('*'):
+ self.fail("Expected '*' in pointer to member declarator.")
+ self.skip_ws()
+ except DefinitionError as e:
+ self.pos = pos
+ prevErrors.append((e, "If pointer to member declarator"))
+ else:
+ volatile = False
+ const = False
+ while 1:
+ if not volatile:
+ volatile = self.skip_word_and_ws('volatile')
+ if volatile:
+ continue
+ if not const:
+ const = self.skip_word_and_ws('const')
+ if const:
+ continue
+ break
+ next = self._parse_declarator(named, paramMode, typed)
+ return ASTDeclaratorMemPtr(name, const, volatile, next=next)
+ pos = self.pos
+ try:
+ res = self._parse_declarator_name_suffix(named, paramMode, typed)
+ # this is a heuristic for error messages, for when there is a < after a
+ # nested name, but it was not a successful template argument list
+ if self.current_char == '<':
+ self.otherErrors.append(self._make_multi_error(prevErrors, ""))
+ return res
+ except DefinitionError as e:
+ self.pos = pos
+ prevErrors.append((e, "If declarator-id"))
+ header = "Error in declarator or parameters-and-qualifiers"
+ raise self._make_multi_error(prevErrors, header) from e
+
+ def _parse_initializer(self, outer: str | None = None, allowFallback: bool = True,
+ ) -> ASTInitializer | None:
+ # initializer # global vars
+ # -> brace-or-equal-initializer
+ # | '(' expression-list ')'
+ #
+ # brace-or-equal-initializer # member vars
+ # -> '=' initializer-clause
+ # | braced-init-list
+ #
+ # initializer-clause # function params, non-type template params (with '=' in front)
+ # -> assignment-expression
+ # | braced-init-list
+ #
+ # we don't distinguish between global and member vars, so disallow paren:
+ #
+ # -> braced-init-list # var only
+ # | '=' assignment-expression
+ # | '=' braced-init-list
+ self.skip_ws()
+ if outer == 'member':
+ bracedInit = self._parse_braced_init_list()
+ if bracedInit is not None:
+ return ASTInitializer(bracedInit, hasAssign=False)
+
+ if not self.skip_string('='):
+ return None
+
+ bracedInit = self._parse_braced_init_list()
+ if bracedInit is not None:
+ return ASTInitializer(bracedInit)
+
+ if outer == 'member':
+ fallbackEnd: list[str] = []
+ elif outer == 'templateParam':
+ fallbackEnd = [',', '>']
+ elif outer is None: # function parameter
+ fallbackEnd = [',', ')']
+ else:
+ self.fail("Internal error, initializer for outer '%s' not "
+ "implemented." % outer)
+
+ inTemplate = outer == 'templateParam'
+
+ def parser() -> ASTExpression:
+ return self._parse_assignment_expression(inTemplate=inTemplate)
+ value = self._parse_expression_fallback(fallbackEnd, parser, allow=allowFallback)
+ return ASTInitializer(value)
+
+ def _parse_type(self, named: bool | str, outer: str | None = None) -> ASTType:
+ """
+ named=False|'maybe'|True: 'maybe' is e.g., for function objects which
+ doesn't need to name the arguments
+
+ outer == operatorCast: annoying case, we should not take the params
+ """
+ if outer: # always named
+ if outer not in ('type', 'member', 'function',
+ 'operatorCast', 'templateParam'):
+ raise Exception('Internal error, unknown outer "%s".' % outer)
+ if outer != 'operatorCast':
+ assert named
+ if outer in ('type', 'function'):
+ # We allow type objects to just be a name.
+ # Some functions don't have normal return types: constructors,
+ # destructors, cast operators
+ prevErrors = []
+ startPos = self.pos
+ # first try without the type
+ try:
+ declSpecs = self._parse_decl_specs(outer=outer, typed=False)
+ decl = self._parse_declarator(named=True, paramMode=outer,
+ typed=False)
+ mustEnd = True
+ if outer == 'function':
+ # Allow trailing requires on functions.
+ self.skip_ws()
+ if re.compile(r'requires\b').match(self.definition, self.pos):
+ mustEnd = False
+ if mustEnd:
+ self.assert_end(allowSemicolon=True)
+ except DefinitionError as exUntyped:
+ if outer == 'type':
+ desc = "If just a name"
+ elif outer == 'function':
+ desc = "If the function has no return type"
+ else:
+ raise AssertionError from exUntyped
+ prevErrors.append((exUntyped, desc))
+ self.pos = startPos
+ try:
+ declSpecs = self._parse_decl_specs(outer=outer)
+ decl = self._parse_declarator(named=True, paramMode=outer)
+ except DefinitionError as exTyped:
+ self.pos = startPos
+ if outer == 'type':
+ desc = "If typedef-like declaration"
+ elif outer == 'function':
+ desc = "If the function has a return type"
+ else:
+ raise AssertionError from exUntyped
+ prevErrors.append((exTyped, desc))
+ # Retain the else branch for easier debugging.
+ # TODO: it would be nice to save the previous stacktrace
+ # and output it here.
+ if True:
+ if outer == 'type':
+ header = "Type must be either just a name or a "
+ header += "typedef-like declaration."
+ elif outer == 'function':
+ header = "Error when parsing function declaration."
+ else:
+ raise AssertionError from exUntyped
+ raise self._make_multi_error(prevErrors, header) from exTyped
+ else: # NoQA: RET506
+ # For testing purposes.
+ # do it again to get the proper traceback (how do you
+ # reliably save a traceback when an exception is
+ # constructed?)
+ self.pos = startPos
+ typed = True
+ declSpecs = self._parse_decl_specs(outer=outer, typed=typed)
+ decl = self._parse_declarator(named=True, paramMode=outer,
+ typed=typed)
+ else:
+ paramMode = 'type'
+ if outer == 'member':
+ named = True
+ elif outer == 'operatorCast':
+ paramMode = 'operatorCast'
+ outer = None
+ elif outer == 'templateParam':
+ named = 'single'
+ declSpecs = self._parse_decl_specs(outer=outer)
+ decl = self._parse_declarator(named=named, paramMode=paramMode)
+ return ASTType(declSpecs, decl)
+
+ def _parse_type_with_init(
+ self, named: bool | str,
+ outer: str) -> ASTTypeWithInit | ASTTemplateParamConstrainedTypeWithInit:
+ if outer:
+ assert outer in ('type', 'member', 'function', 'templateParam')
+ type = self._parse_type(outer=outer, named=named)
+ if outer != 'templateParam':
+ init = self._parse_initializer(outer=outer)
+ return ASTTypeWithInit(type, init)
+ # it could also be a constrained type parameter, e.g., C T = int&
+ pos = self.pos
+ eExpr = None
+ try:
+ init = self._parse_initializer(outer=outer, allowFallback=False)
+ # note: init may be None if there is no =
+ if init is None:
+ return ASTTypeWithInit(type, None)
+ # we parsed an expression, so we must have a , or a >,
+ # otherwise the expression didn't get everything
+ self.skip_ws()
+ if self.current_char != ',' and self.current_char != '>':
+ # pretend it didn't happen
+ self.pos = pos
+ init = None
+ else:
+ # we assume that it was indeed an expression
+ return ASTTypeWithInit(type, init)
+ except DefinitionError as e:
+ self.pos = pos
+ eExpr = e
+ if not self.skip_string("="):
+ return ASTTypeWithInit(type, None)
+ try:
+ typeInit = self._parse_type(named=False, outer=None)
+ return ASTTemplateParamConstrainedTypeWithInit(type, typeInit)
+ except DefinitionError as eType:
+ if eExpr is None:
+ raise
+ errs = []
+ errs.append((eExpr, "If default template argument is an expression"))
+ errs.append((eType, "If default template argument is a type"))
+ msg = "Error in non-type template parameter"
+ msg += " or constrained template parameter."
+ raise self._make_multi_error(errs, msg) from eType
+
+ def _parse_type_using(self) -> ASTTypeUsing:
+ name = self._parse_nested_name()
+ self.skip_ws()
+ if not self.skip_string('='):
+ return ASTTypeUsing(name, None)
+ type = self._parse_type(False, None)
+ return ASTTypeUsing(name, type)
+
+ def _parse_concept(self) -> ASTConcept:
+ nestedName = self._parse_nested_name()
+ self.skip_ws()
+ initializer = self._parse_initializer('member')
+ return ASTConcept(nestedName, initializer)
+
+ def _parse_class(self) -> ASTClass:
+ attrs = self._parse_attribute_list()
+ name = self._parse_nested_name()
+ self.skip_ws()
+ final = self.skip_word_and_ws('final')
+ bases = []
+ self.skip_ws()
+ if self.skip_string(':'):
+ while 1:
+ self.skip_ws()
+ visibility = None
+ virtual = False
+ pack = False
+ if self.skip_word_and_ws('virtual'):
+ virtual = True
+ if self.match(_visibility_re):
+ visibility = self.matched_text
+ self.skip_ws()
+ if not virtual and self.skip_word_and_ws('virtual'):
+ virtual = True
+ baseName = self._parse_nested_name()
+ self.skip_ws()
+ pack = self.skip_string('...')
+ bases.append(ASTBaseClass(baseName, visibility, virtual, pack))
+ self.skip_ws()
+ if self.skip_string(','):
+ continue
+ break
+ return ASTClass(name, final, bases, attrs)
+
+ def _parse_union(self) -> ASTUnion:
+ attrs = self._parse_attribute_list()
+ name = self._parse_nested_name()
+ return ASTUnion(name, attrs)
+
+ def _parse_enum(self) -> ASTEnum:
+ scoped = None # is set by CPPEnumObject
+ attrs = self._parse_attribute_list()
+ name = self._parse_nested_name()
+ self.skip_ws()
+ underlyingType = None
+ if self.skip_string(':'):
+ underlyingType = self._parse_type(named=False)
+ return ASTEnum(name, scoped, underlyingType, attrs)
+
+ def _parse_enumerator(self) -> ASTEnumerator:
+ name = self._parse_nested_name()
+ attrs = self._parse_attribute_list()
+ self.skip_ws()
+ init = None
+ if self.skip_string('='):
+ self.skip_ws()
+
+ def parser() -> ASTExpression:
+ return self._parse_constant_expression(inTemplate=False)
+ initVal = self._parse_expression_fallback([], parser)
+ init = ASTInitializer(initVal)
+ return ASTEnumerator(name, init, attrs)
+
+ # ==========================================================================
+
+ def _parse_template_parameter(self) -> ASTTemplateParam:
+ self.skip_ws()
+ if self.skip_word('template'):
+ # declare a template template parameter
+ nestedParams = self._parse_template_parameter_list()
+ else:
+ nestedParams = None
+
+ pos = self.pos
+ try:
+ # Unconstrained type parameter or template type parameter
+ key = None
+ self.skip_ws()
+ if self.skip_word_and_ws('typename'):
+ key = 'typename'
+ elif self.skip_word_and_ws('class'):
+ key = 'class'
+ elif nestedParams:
+ self.fail("Expected 'typename' or 'class' after "
+ "template template parameter list.")
+ else:
+ self.fail("Expected 'typename' or 'class' in the "
+ "beginning of template type parameter.")
+ self.skip_ws()
+ parameterPack = self.skip_string('...')
+ self.skip_ws()
+ if self.match(identifier_re):
+ identifier = ASTIdentifier(self.matched_text)
+ else:
+ identifier = None
+ self.skip_ws()
+ if not parameterPack and self.skip_string('='):
+ default = self._parse_type(named=False, outer=None)
+ else:
+ default = None
+ if self.current_char not in ',>':
+ self.fail('Expected "," or ">" after (template) type parameter.')
+ data = ASTTemplateKeyParamPackIdDefault(key, identifier,
+ parameterPack, default)
+ if nestedParams:
+ return ASTTemplateParamTemplateType(nestedParams, data)
+ else:
+ return ASTTemplateParamType(data)
+ except DefinitionError as eType:
+ if nestedParams:
+ raise
+ try:
+ # non-type parameter or constrained type parameter
+ self.pos = pos
+ param = self._parse_type_with_init('maybe', 'templateParam')
+ self.skip_ws()
+ parameterPack = self.skip_string('...')
+ return ASTTemplateParamNonType(param, parameterPack)
+ except DefinitionError as eNonType:
+ self.pos = pos
+ header = "Error when parsing template parameter."
+ errs = []
+ errs.append(
+ (eType, "If unconstrained type parameter or template type parameter"))
+ errs.append(
+ (eNonType, "If constrained type parameter or non-type parameter"))
+ raise self._make_multi_error(errs, header) from None
+
+ def _parse_template_parameter_list(self) -> ASTTemplateParams:
+ # only: '<' parameter-list '>'
+ # we assume that 'template' has just been parsed
+ templateParams: list[ASTTemplateParam] = []
+ self.skip_ws()
+ if not self.skip_string("<"):
+ self.fail("Expected '<' after 'template'")
+ while 1:
+ pos = self.pos
+ err = None
+ try:
+ param = self._parse_template_parameter()
+ templateParams.append(param)
+ except DefinitionError as eParam:
+ self.pos = pos
+ err = eParam
+ self.skip_ws()
+ if self.skip_string('>'):
+ requiresClause = self._parse_requires_clause()
+ return ASTTemplateParams(templateParams, requiresClause)
+ elif self.skip_string(','):
+ continue
+ else:
+ header = "Error in template parameter list."
+ errs = []
+ if err:
+ errs.append((err, "If parameter"))
+ try:
+ self.fail('Expected "," or ">".')
+ except DefinitionError as e:
+ errs.append((e, "If no parameter"))
+ logger.debug(errs)
+ raise self._make_multi_error(errs, header)
+
+ def _parse_template_introduction(self) -> ASTTemplateIntroduction | None:
+ pos = self.pos
+ try:
+ concept = self._parse_nested_name()
+ except Exception:
+ self.pos = pos
+ return None
+ self.skip_ws()
+ if not self.skip_string('{'):
+ self.pos = pos
+ return None
+
+ # for sure it must be a template introduction now
+ params = []
+ while 1:
+ self.skip_ws()
+ parameterPack = self.skip_string('...')
+ self.skip_ws()
+ if not self.match(identifier_re):
+ self.fail("Expected identifier in template introduction list.")
+ txt_identifier = self.matched_text
+ # make sure there isn't a keyword
+ if txt_identifier in _keywords:
+ self.fail("Expected identifier in template introduction list, "
+ "got keyword: %s" % txt_identifier)
+ identifier = ASTIdentifier(txt_identifier)
+ params.append(ASTTemplateIntroductionParameter(identifier, parameterPack))
+
+ self.skip_ws()
+ if self.skip_string('}'):
+ break
+ if self.skip_string(','):
+ continue
+ self.fail('Error in template introduction list. Expected ",", or "}".')
+ return ASTTemplateIntroduction(concept, params)
+
+ def _parse_requires_clause(self) -> ASTRequiresClause | None:
+ # requires-clause -> 'requires' constraint-logical-or-expression
+ # constraint-logical-or-expression
+ # -> constraint-logical-and-expression
+ # | constraint-logical-or-expression '||' constraint-logical-and-expression
+ # constraint-logical-and-expression
+ # -> primary-expression
+ # | constraint-logical-and-expression '&&' primary-expression
+ self.skip_ws()
+ if not self.skip_word('requires'):
+ return None
+
+ def parse_and_expr(self: DefinitionParser) -> ASTExpression:
+ andExprs = []
+ ops = []
+ andExprs.append(self._parse_primary_expression())
+ while True:
+ self.skip_ws()
+ oneMore = False
+ if self.skip_string('&&'):
+ oneMore = True
+ ops.append('&&')
+ elif self.skip_word('and'):
+ oneMore = True
+ ops.append('and')
+ if not oneMore:
+ break
+ andExprs.append(self._parse_primary_expression())
+ if len(andExprs) == 1:
+ return andExprs[0]
+ else:
+ return ASTBinOpExpr(andExprs, ops)
+
+ orExprs = []
+ ops = []
+ orExprs.append(parse_and_expr(self))
+ while True:
+ self.skip_ws()
+ oneMore = False
+ if self.skip_string('||'):
+ oneMore = True
+ ops.append('||')
+ elif self.skip_word('or'):
+ oneMore = True
+ ops.append('or')
+ if not oneMore:
+ break
+ orExprs.append(parse_and_expr(self))
+ if len(orExprs) == 1:
+ return ASTRequiresClause(orExprs[0])
+ else:
+ return ASTRequiresClause(ASTBinOpExpr(orExprs, ops))
+
+ def _parse_template_declaration_prefix(self, objectType: str,
+ ) -> ASTTemplateDeclarationPrefix | None:
+ templates: list[ASTTemplateParams | ASTTemplateIntroduction] = []
+ while 1:
+ self.skip_ws()
+ # the saved position is only used to provide a better error message
+ params: ASTTemplateParams | ASTTemplateIntroduction | None = None
+ pos = self.pos
+ if self.skip_word("template"):
+ try:
+ params = self._parse_template_parameter_list()
+ except DefinitionError as e:
+ if objectType == 'member' and len(templates) == 0:
+ return ASTTemplateDeclarationPrefix(None)
+ else:
+ raise e
+ if objectType == 'concept' and params.requiresClause is not None:
+ self.fail('requires-clause not allowed for concept')
+ else:
+ params = self._parse_template_introduction()
+ if not params:
+ break
+ if objectType == 'concept' and len(templates) > 0:
+ self.pos = pos
+ self.fail("More than 1 template parameter list for concept.")
+ templates.append(params)
+ if len(templates) == 0 and objectType == 'concept':
+ self.fail('Missing template parameter list for concept.')
+ if len(templates) == 0:
+ return None
+ else:
+ return ASTTemplateDeclarationPrefix(templates)
+
+ def _check_template_consistency(self, nestedName: ASTNestedName,
+ templatePrefix: ASTTemplateDeclarationPrefix,
+ fullSpecShorthand: bool, isMember: bool = False,
+ ) -> ASTTemplateDeclarationPrefix:
+ numArgs = nestedName.num_templates()
+ isMemberInstantiation = False
+ if not templatePrefix:
+ numParams = 0
+ else:
+ if isMember and templatePrefix.templates is None:
+ numParams = 0
+ isMemberInstantiation = True
+ else:
+ numParams = len(templatePrefix.templates)
+ if numArgs + 1 < numParams:
+ self.fail("Too few template argument lists compared to parameter"
+ " lists. Argument lists: %d, Parameter lists: %d."
+ % (numArgs, numParams))
+ if numArgs > numParams:
+ numExtra = numArgs - numParams
+ if not fullSpecShorthand and not isMemberInstantiation:
+ msg = "Too many template argument lists compared to parameter" \
+ " lists. Argument lists: %d, Parameter lists: %d," \
+ " Extra empty parameters lists prepended: %d." \
+ % (numArgs, numParams, numExtra)
+ msg += " Declaration:\n\t"
+ if templatePrefix:
+ msg += "%s\n\t" % templatePrefix
+ msg += str(nestedName)
+ self.warn(msg)
+
+ newTemplates: list[ASTTemplateParams | ASTTemplateIntroduction] = [
+ ASTTemplateParams([], requiresClause=None)
+ for _i in range(numExtra)
+ ]
+ if templatePrefix and not isMemberInstantiation:
+ newTemplates.extend(templatePrefix.templates)
+ templatePrefix = ASTTemplateDeclarationPrefix(newTemplates)
+ return templatePrefix
+
+ def parse_declaration(self, objectType: str, directiveType: str) -> ASTDeclaration:
+ if objectType not in ('class', 'union', 'function', 'member', 'type',
+ 'concept', 'enum', 'enumerator'):
+ raise Exception('Internal error, unknown objectType "%s".' % objectType)
+ if directiveType not in ('class', 'struct', 'union', 'function', 'member', 'var',
+ 'type', 'concept',
+ 'enum', 'enum-struct', 'enum-class', 'enumerator'):
+ raise Exception('Internal error, unknown directiveType "%s".' % directiveType)
+ visibility = None
+ templatePrefix = None
+ trailingRequiresClause = None
+ declaration: Any = None
+
+ self.skip_ws()
+ if self.match(_visibility_re):
+ visibility = self.matched_text
+
+ if objectType in ('type', 'concept', 'member', 'function', 'class', 'union'):
+ templatePrefix = self._parse_template_declaration_prefix(objectType)
+
+ if objectType == 'type':
+ prevErrors = []
+ pos = self.pos
+ try:
+ if not templatePrefix:
+ declaration = self._parse_type(named=True, outer='type')
+ except DefinitionError as e:
+ prevErrors.append((e, "If typedef-like declaration"))
+ self.pos = pos
+ pos = self.pos
+ try:
+ if not declaration:
+ declaration = self._parse_type_using()
+ except DefinitionError as e:
+ self.pos = pos
+ prevErrors.append((e, "If type alias or template alias"))
+ header = "Error in type declaration."
+ raise self._make_multi_error(prevErrors, header) from e
+ elif objectType == 'concept':
+ declaration = self._parse_concept()
+ elif objectType == 'member':
+ declaration = self._parse_type_with_init(named=True, outer='member')
+ elif objectType == 'function':
+ declaration = self._parse_type(named=True, outer='function')
+ trailingRequiresClause = self._parse_requires_clause()
+ elif objectType == 'class':
+ declaration = self._parse_class()
+ elif objectType == 'union':
+ declaration = self._parse_union()
+ elif objectType == 'enum':
+ declaration = self._parse_enum()
+ elif objectType == 'enumerator':
+ declaration = self._parse_enumerator()
+ else:
+ raise AssertionError
+ templatePrefix = self._check_template_consistency(declaration.name,
+ templatePrefix,
+ fullSpecShorthand=False,
+ isMember=objectType == 'member')
+ self.skip_ws()
+ semicolon = self.skip_string(';')
+ return ASTDeclaration(objectType, directiveType, visibility,
+ templatePrefix, declaration,
+ trailingRequiresClause, semicolon)
+
+ def parse_namespace_object(self) -> ASTNamespace:
+ templatePrefix = self._parse_template_declaration_prefix(objectType="namespace")
+ name = self._parse_nested_name()
+ templatePrefix = self._check_template_consistency(name, templatePrefix,
+ fullSpecShorthand=False)
+ res = ASTNamespace(name, templatePrefix)
+ res.objectType = 'namespace' # type: ignore[attr-defined]
+ return res
+
+ def parse_xref_object(self) -> tuple[ASTNamespace | ASTDeclaration, bool]:
+ pos = self.pos
+ try:
+ templatePrefix = self._parse_template_declaration_prefix(objectType="xref")
+ name = self._parse_nested_name()
+ # if there are '()' left, just skip them
+ self.skip_ws()
+ self.skip_string('()')
+ self.assert_end()
+ templatePrefix = self._check_template_consistency(name, templatePrefix,
+ fullSpecShorthand=True)
+ res1 = ASTNamespace(name, templatePrefix)
+ res1.objectType = 'xref' # type: ignore[attr-defined]
+ return res1, True
+ except DefinitionError as e1:
+ try:
+ self.pos = pos
+ res2 = self.parse_declaration('function', 'function')
+ # if there are '()' left, just skip them
+ self.skip_ws()
+ self.skip_string('()')
+ self.assert_end()
+ return res2, False
+ except DefinitionError as e2:
+ errs = []
+ errs.append((e1, "If shorthand ref"))
+ errs.append((e2, "If full function ref"))
+ msg = "Error in cross-reference."
+ raise self._make_multi_error(errs, msg) from e2
+
+ def parse_expression(self) -> ASTExpression | ASTType:
+ pos = self.pos
+ try:
+ expr = self._parse_expression()
+ self.skip_ws()
+ self.assert_end()
+ return expr
+ except DefinitionError as exExpr:
+ self.pos = pos
+ try:
+ typ = self._parse_type(False)
+ self.skip_ws()
+ self.assert_end()
+ return typ
+ except DefinitionError as exType:
+ header = "Error when parsing (type) expression."
+ errs = []
+ errs.append((exExpr, "If expression"))
+ errs.append((exType, "If type"))
+ raise self._make_multi_error(errs, header) from exType
diff --git a/sphinx/domains/cpp/_symbol.py b/sphinx/domains/cpp/_symbol.py
new file mode 100644
index 0000000..4caa430
--- /dev/null
+++ b/sphinx/domains/cpp/_symbol.py
@@ -0,0 +1,1092 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING, Any, Callable, NoReturn
+
+from sphinx.domains.cpp._ast import (
+ ASTDeclaration,
+ ASTIdentifier,
+ ASTNestedName,
+ ASTNestedNameElement,
+ ASTOperator,
+ ASTTemplateArgs,
+ ASTTemplateDeclarationPrefix,
+ ASTTemplateIntroduction,
+ ASTTemplateParams,
+)
+from sphinx.locale import __
+from sphinx.util import logging
+
+if TYPE_CHECKING:
+ from collections.abc import Iterator
+
+ from sphinx.environment import BuildEnvironment
+
+logger = logging.getLogger(__name__)
+
+
+class _DuplicateSymbolError(Exception):
+ def __init__(self, symbol: Symbol, declaration: ASTDeclaration) -> None:
+ assert symbol
+ assert declaration
+ self.symbol = symbol
+ self.declaration = declaration
+
+ def __str__(self) -> str:
+ return "Internal C++ duplicate symbol error:\n%s" % self.symbol.dump(0)
+
+
+class SymbolLookupResult:
+ def __init__(self, symbols: Iterator[Symbol], parentSymbol: Symbol,
+ identOrOp: ASTIdentifier | ASTOperator, templateParams: Any,
+ templateArgs: ASTTemplateArgs) -> None:
+ self.symbols = symbols
+ self.parentSymbol = parentSymbol
+ self.identOrOp = identOrOp
+ self.templateParams = templateParams
+ self.templateArgs = templateArgs
+
+
+class LookupKey:
+ def __init__(self, data: list[tuple[ASTNestedNameElement,
+ ASTTemplateParams | ASTTemplateIntroduction,
+ str]]) -> None:
+ self.data = data
+
+
+def _is_specialization(templateParams: ASTTemplateParams | ASTTemplateIntroduction,
+ templateArgs: ASTTemplateArgs) -> bool:
+ # Checks if `templateArgs` does not exactly match `templateParams`.
+ # the names of the template parameters must be given exactly as args
+ # and params that are packs must in the args be the name expanded
+ if len(templateParams.params) != len(templateArgs.args):
+ return True
+ # having no template params and no arguments is also a specialization
+ if len(templateParams.params) == 0:
+ return True
+ for i in range(len(templateParams.params)):
+ param = templateParams.params[i]
+ arg = templateArgs.args[i]
+ # TODO: doing this by string manipulation is probably not the most efficient
+ paramName = str(param.name)
+ argTxt = str(arg)
+ isArgPackExpansion = argTxt.endswith('...')
+ if param.isPack != isArgPackExpansion:
+ return True
+ argName = argTxt[:-3] if isArgPackExpansion else argTxt
+ if paramName != argName:
+ return True
+ return False
+
+
+class Symbol:
+ debug_indent = 0
+ debug_indent_string = " "
+ debug_lookup = False # overridden by the corresponding config value
+ debug_show_tree = False # overridden by the corresponding config value
+
+ def __copy__(self) -> NoReturn:
+ raise AssertionError # shouldn't happen
+
+ def __deepcopy__(self, memo: Any) -> Symbol:
+ if self.parent:
+ raise AssertionError # shouldn't happen
+ # the domain base class makes a copy of the initial data, which is fine
+ return Symbol(None, None, None, None, None, None, None)
+
+ @staticmethod
+ def debug_print(*args: Any) -> None:
+ logger.debug(Symbol.debug_indent_string * Symbol.debug_indent, end="")
+ logger.debug(*args)
+
+ def _assert_invariants(self) -> None:
+ if not self.parent:
+ # parent == None means global scope, so declaration means a parent
+ assert not self.identOrOp
+ assert not self.templateParams
+ assert not self.templateArgs
+ assert not self.declaration
+ assert not self.docname
+ else:
+ if self.declaration:
+ assert self.docname
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key == "children":
+ raise AssertionError
+ return super().__setattr__(key, value)
+
+ def __init__(self, parent: Symbol | None,
+ identOrOp: ASTIdentifier | ASTOperator | None,
+ templateParams: ASTTemplateParams | ASTTemplateIntroduction | None,
+ templateArgs: Any, declaration: ASTDeclaration | None,
+ docname: str | None, line: int | None) -> None:
+ self.parent = parent
+ # declarations in a single directive are linked together
+ self.siblingAbove: Symbol | None = None
+ self.siblingBelow: Symbol | None = None
+ self.identOrOp = identOrOp
+ # Ensure the same symbol for `A` is created for:
+ #
+ # .. cpp:class:: template <typename T> class A
+ #
+ # and
+ #
+ # .. cpp:function:: template <typename T> int A<T>::foo()
+ if (templateArgs is not None and
+ not _is_specialization(templateParams, templateArgs)):
+ templateArgs = None
+ self.templateParams = templateParams # template<templateParams>
+ self.templateArgs = templateArgs # identifier<templateArgs>
+ self.declaration = declaration
+ self.docname = docname
+ self.line = line
+ self.isRedeclaration = False
+ self._assert_invariants()
+
+ # Remember to modify Symbol.remove if modifications to the parent change.
+ self._children: list[Symbol] = []
+ self._anonChildren: list[Symbol] = []
+ # note: _children includes _anonChildren
+ if self.parent:
+ self.parent._children.append(self)
+ if self.declaration:
+ self.declaration.symbol = self
+
+ # Do symbol addition after self._children has been initialised.
+ self._add_template_and_function_params()
+
+ def _fill_empty(self, declaration: ASTDeclaration, docname: str, line: int) -> None:
+ self._assert_invariants()
+ assert self.declaration is None
+ assert self.docname is None
+ assert self.line is None
+ assert declaration is not None
+ assert docname is not None
+ assert line is not None
+ self.declaration = declaration
+ self.declaration.symbol = self
+ self.docname = docname
+ self.line = line
+ self._assert_invariants()
+ # and symbol addition should be done as well
+ self._add_template_and_function_params()
+
+ def _add_template_and_function_params(self) -> None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_add_template_and_function_params:")
+ # Note: we may be called from _fill_empty, so the symbols we want
+ # to add may actually already be present (as empty symbols).
+
+ # add symbols for the template params
+ if self.templateParams:
+ for tp in self.templateParams.params:
+ if not tp.get_identifier():
+ continue
+ # only add a declaration if we our self are from a declaration
+ if self.declaration:
+ decl = ASTDeclaration(objectType='templateParam', declaration=tp)
+ else:
+ decl = None
+ nne = ASTNestedNameElement(tp.get_identifier(), None)
+ nn = ASTNestedName([nne], [False], rooted=False)
+ self._add_symbols(nn, [], decl, self.docname, self.line)
+ # add symbols for function parameters, if any
+ if self.declaration is not None and self.declaration.function_params is not None:
+ for fp in self.declaration.function_params:
+ if fp.arg is None:
+ continue
+ nn = fp.arg.name
+ if nn is None:
+ continue
+ # (comparing to the template params: we have checked that we are a declaration)
+ decl = ASTDeclaration(objectType='functionParam', declaration=fp)
+ assert not nn.rooted
+ assert len(nn.names) == 1
+ self._add_symbols(nn, [], decl, self.docname, self.line)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+
+ def remove(self) -> None:
+ if self.parent is None:
+ return
+ assert self in self.parent._children
+ self.parent._children.remove(self)
+ self.parent = None
+
+ def clear_doc(self, docname: str) -> None:
+ newChildren: list[Symbol] = []
+ for sChild in self._children:
+ sChild.clear_doc(docname)
+ if sChild.declaration and sChild.docname == docname:
+ sChild.declaration = None
+ sChild.docname = None
+ sChild.line = None
+ if sChild.siblingAbove is not None:
+ sChild.siblingAbove.siblingBelow = sChild.siblingBelow
+ if sChild.siblingBelow is not None:
+ sChild.siblingBelow.siblingAbove = sChild.siblingAbove
+ sChild.siblingAbove = None
+ sChild.siblingBelow = None
+ newChildren.append(sChild)
+ self._children = newChildren
+
+ def get_all_symbols(self) -> Iterator[Any]:
+ yield self
+ for sChild in self._children:
+ yield from sChild.get_all_symbols()
+
+ @property
+ def children_recurse_anon(self) -> Iterator[Symbol]:
+ for c in self._children:
+ yield c
+ if not c.identOrOp.is_anon():
+ continue
+
+ yield from c.children_recurse_anon
+
+ def get_lookup_key(self) -> LookupKey:
+ # The pickle files for the environment and for each document are distinct.
+ # The environment has all the symbols, but the documents has xrefs that
+ # must know their scope. A lookup key is essentially a specification of
+ # how to find a specific symbol.
+ symbols = []
+ s = self
+ while s.parent:
+ symbols.append(s)
+ s = s.parent
+ symbols.reverse()
+ key = []
+ for s in symbols:
+ nne = ASTNestedNameElement(s.identOrOp, s.templateArgs)
+ if s.declaration is not None:
+ key.append((nne, s.templateParams, s.declaration.get_newest_id()))
+ else:
+ key.append((nne, s.templateParams, None))
+ return LookupKey(key)
+
+ def get_full_nested_name(self) -> ASTNestedName:
+ symbols = []
+ s = self
+ while s.parent:
+ symbols.append(s)
+ s = s.parent
+ symbols.reverse()
+ names = []
+ templates = []
+ for s in symbols:
+ names.append(ASTNestedNameElement(s.identOrOp, s.templateArgs))
+ templates.append(False)
+ return ASTNestedName(names, templates, rooted=False)
+
+ def _find_first_named_symbol(self, identOrOp: ASTIdentifier | ASTOperator,
+ templateParams: ASTTemplateParams | ASTTemplateIntroduction,
+ templateArgs: ASTTemplateArgs | None,
+ templateShorthand: bool, matchSelf: bool,
+ recurseInAnon: bool, correctPrimaryTemplateArgs: bool,
+ ) -> Symbol | None:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("_find_first_named_symbol ->")
+ res = self._find_named_symbols(identOrOp, templateParams, templateArgs,
+ templateShorthand, matchSelf, recurseInAnon,
+ correctPrimaryTemplateArgs,
+ searchInSiblings=False)
+ try:
+ return next(res)
+ except StopIteration:
+ return None
+
+ def _find_named_symbols(self, identOrOp: ASTIdentifier | ASTOperator,
+ templateParams: ASTTemplateParams | ASTTemplateIntroduction,
+ templateArgs: ASTTemplateArgs,
+ templateShorthand: bool, matchSelf: bool,
+ recurseInAnon: bool, correctPrimaryTemplateArgs: bool,
+ searchInSiblings: bool) -> Iterator[Symbol]:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_find_named_symbols:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("self:")
+ logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
+ Symbol.debug_print("identOrOp: ", identOrOp)
+ Symbol.debug_print("templateParams: ", templateParams)
+ Symbol.debug_print("templateArgs: ", templateArgs)
+ Symbol.debug_print("templateShorthand: ", templateShorthand)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("correctPrimaryTemplateAargs:", correctPrimaryTemplateArgs)
+ Symbol.debug_print("searchInSiblings: ", searchInSiblings)
+
+ if correctPrimaryTemplateArgs:
+ if templateParams is not None and templateArgs is not None:
+ # If both are given, but it's not a specialization, then do lookup as if
+ # there is no argument list.
+ # For example: template<typename T> int A<T>::var;
+ if not _is_specialization(templateParams, templateArgs):
+ templateArgs = None
+
+ def matches(s: Symbol) -> bool:
+ if s.identOrOp != identOrOp:
+ return False
+ if (s.templateParams is None) != (templateParams is None):
+ if templateParams is not None:
+ # we query with params, they must match params
+ return False
+ if not templateShorthand:
+ # we don't query with params, and we do care about them
+ return False
+ if templateParams:
+ # TODO: do better comparison
+ if str(s.templateParams) != str(templateParams):
+ return False
+ if (s.templateArgs is None) != (templateArgs is None):
+ return False
+ if s.templateArgs:
+ # TODO: do better comparison
+ if str(s.templateArgs) != str(templateArgs):
+ return False
+ return True
+
+ def candidates() -> Iterator[Symbol]:
+ s = self
+ if Symbol.debug_lookup:
+ Symbol.debug_print("searching in self:")
+ logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
+ while True:
+ if matchSelf:
+ yield s
+ if recurseInAnon:
+ yield from s.children_recurse_anon
+ else:
+ yield from s._children
+
+ if s.siblingAbove is None:
+ break
+ s = s.siblingAbove
+ if Symbol.debug_lookup:
+ Symbol.debug_print("searching in sibling:")
+ logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
+
+ for s in candidates():
+ if Symbol.debug_lookup:
+ Symbol.debug_print("candidate:")
+ logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
+ if matches(s):
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("matches")
+ Symbol.debug_indent -= 3
+ yield s
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 2
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+
+ def _symbol_lookup(
+ self,
+ nestedName: ASTNestedName,
+ templateDecls: list[Any],
+ onMissingQualifiedSymbol: Callable[
+ [Symbol, ASTIdentifier | ASTOperator, Any, ASTTemplateArgs], Symbol | None,
+ ],
+ strictTemplateParamArgLists: bool, ancestorLookupType: str,
+ templateShorthand: bool, matchSelf: bool,
+ recurseInAnon: bool, correctPrimaryTemplateArgs: bool,
+ searchInSiblings: bool,
+ ) -> SymbolLookupResult:
+ # ancestorLookupType: if not None, specifies the target type of the lookup
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_symbol_lookup:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("self:")
+ logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
+ Symbol.debug_print("nestedName: ", nestedName)
+ Symbol.debug_print("templateDecls: ", ",".join(str(t) for t in templateDecls))
+ Symbol.debug_print("strictTemplateParamArgLists:", strictTemplateParamArgLists)
+ Symbol.debug_print("ancestorLookupType:", ancestorLookupType)
+ Symbol.debug_print("templateShorthand: ", templateShorthand)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("correctPrimaryTemplateArgs: ", correctPrimaryTemplateArgs)
+ Symbol.debug_print("searchInSiblings: ", searchInSiblings)
+
+ if strictTemplateParamArgLists:
+ # Each template argument list must have a template parameter list.
+ # But to declare a template there must be an additional template parameter list.
+ assert (nestedName.num_templates() == len(templateDecls) or
+ nestedName.num_templates() + 1 == len(templateDecls))
+ else:
+ assert len(templateDecls) <= nestedName.num_templates() + 1
+
+ names = nestedName.names
+
+ # find the right starting point for lookup
+ parentSymbol = self
+ if nestedName.rooted:
+ while parentSymbol.parent:
+ parentSymbol = parentSymbol.parent
+ if ancestorLookupType is not None:
+ # walk up until we find the first identifier
+ firstName = names[0]
+ if not firstName.is_operator():
+ while parentSymbol.parent:
+ if parentSymbol.find_identifier(firstName.identOrOp,
+ matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ searchInSiblings=searchInSiblings):
+ # if we are in the scope of a constructor but wants to
+ # reference the class we need to walk one extra up
+ if (len(names) == 1 and ancestorLookupType == 'class' and matchSelf and
+ parentSymbol.parent and
+ parentSymbol.parent.identOrOp == firstName.identOrOp):
+ pass
+ else:
+ break
+ parentSymbol = parentSymbol.parent
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("starting point:")
+ logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1), end="")
+
+ # and now the actual lookup
+ iTemplateDecl = 0
+ for name in names[:-1]:
+ identOrOp = name.identOrOp
+ templateArgs = name.templateArgs
+ if strictTemplateParamArgLists:
+ # there must be a parameter list
+ if templateArgs:
+ assert iTemplateDecl < len(templateDecls)
+ templateParams = templateDecls[iTemplateDecl]
+ iTemplateDecl += 1
+ else:
+ templateParams = None
+ else:
+ # take the next template parameter list if there is one
+ # otherwise it's ok
+ if templateArgs and iTemplateDecl < len(templateDecls):
+ templateParams = templateDecls[iTemplateDecl]
+ iTemplateDecl += 1
+ else:
+ templateParams = None
+
+ symbol = parentSymbol._find_first_named_symbol(
+ identOrOp,
+ templateParams, templateArgs,
+ templateShorthand=templateShorthand,
+ matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ correctPrimaryTemplateArgs=correctPrimaryTemplateArgs)
+ if symbol is None:
+ symbol = onMissingQualifiedSymbol(parentSymbol, identOrOp,
+ templateParams, templateArgs)
+ if symbol is None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return None
+ # We have now matched part of a nested name, and need to match more
+ # so even if we should matchSelf before, we definitely shouldn't
+ # even more. (see also issue #2666)
+ matchSelf = False
+ parentSymbol = symbol
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("handle last name from:")
+ logger.debug(parentSymbol.to_string(Symbol.debug_indent + 1), end="")
+
+ # handle the last name
+ name = names[-1]
+ identOrOp = name.identOrOp
+ templateArgs = name.templateArgs
+ if iTemplateDecl < len(templateDecls):
+ assert iTemplateDecl + 1 == len(templateDecls)
+ templateParams = templateDecls[iTemplateDecl]
+ else:
+ assert iTemplateDecl == len(templateDecls)
+ templateParams = None
+
+ symbols = parentSymbol._find_named_symbols(
+ identOrOp, templateParams, templateArgs,
+ templateShorthand=templateShorthand, matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon, correctPrimaryTemplateArgs=False,
+ searchInSiblings=searchInSiblings)
+ if Symbol.debug_lookup:
+ symbols = list(symbols) # type: ignore[assignment]
+ Symbol.debug_indent -= 2
+ return SymbolLookupResult(symbols, parentSymbol,
+ identOrOp, templateParams, templateArgs)
+
+ def _add_symbols(
+ self,
+ nestedName: ASTNestedName,
+ templateDecls: list[Any],
+ declaration: ASTDeclaration | None,
+ docname: str | None,
+ line: int | None,
+ ) -> Symbol:
+ # Used for adding a whole path of symbols, where the last may or may not
+ # be an actual declaration.
+
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_add_symbols:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("tdecls:", ",".join(str(t) for t in templateDecls))
+ Symbol.debug_print("nn: ", nestedName)
+ Symbol.debug_print("decl: ", declaration)
+ Symbol.debug_print(f"location: {docname}:{line}")
+
+ def onMissingQualifiedSymbol(parentSymbol: Symbol,
+ identOrOp: ASTIdentifier | ASTOperator,
+ templateParams: Any, templateArgs: ASTTemplateArgs,
+ ) -> Symbol | None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("_add_symbols, onMissingQualifiedSymbol:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("templateParams:", templateParams)
+ Symbol.debug_print("identOrOp: ", identOrOp)
+ Symbol.debug_print("templateARgs: ", templateArgs)
+ Symbol.debug_indent -= 2
+ return Symbol(parent=parentSymbol, identOrOp=identOrOp,
+ templateParams=templateParams,
+ templateArgs=templateArgs, declaration=None,
+ docname=None, line=None)
+
+ lookupResult = self._symbol_lookup(nestedName, templateDecls,
+ onMissingQualifiedSymbol,
+ strictTemplateParamArgLists=True,
+ ancestorLookupType=None,
+ templateShorthand=False,
+ matchSelf=False,
+ recurseInAnon=False,
+ correctPrimaryTemplateArgs=True,
+ searchInSiblings=False)
+ assert lookupResult is not None # we create symbols all the way, so that can't happen
+ symbols = list(lookupResult.symbols)
+ if len(symbols) == 0:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("_add_symbols, result, no symbol:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("templateParams:", lookupResult.templateParams)
+ Symbol.debug_print("identOrOp: ", lookupResult.identOrOp)
+ Symbol.debug_print("templateArgs: ", lookupResult.templateArgs)
+ Symbol.debug_print("declaration: ", declaration)
+ Symbol.debug_print(f"location: {docname}:{line}")
+ Symbol.debug_indent -= 1
+ symbol = Symbol(parent=lookupResult.parentSymbol,
+ identOrOp=lookupResult.identOrOp,
+ templateParams=lookupResult.templateParams,
+ templateArgs=lookupResult.templateArgs,
+ declaration=declaration,
+ docname=docname, line=line)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return symbol
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("_add_symbols, result, symbols:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("number symbols:", len(symbols))
+ Symbol.debug_indent -= 1
+
+ if not declaration:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("no declaration")
+ Symbol.debug_indent -= 2
+ # good, just a scope creation
+ # TODO: what if we have more than one symbol?
+ return symbols[0]
+
+ noDecl = []
+ withDecl = []
+ dupDecl = []
+ for s in symbols:
+ if s.declaration is None:
+ noDecl.append(s)
+ elif s.isRedeclaration:
+ dupDecl.append(s)
+ else:
+ withDecl.append(s)
+ if Symbol.debug_lookup:
+ Symbol.debug_print("#noDecl: ", len(noDecl))
+ Symbol.debug_print("#withDecl:", len(withDecl))
+ Symbol.debug_print("#dupDecl: ", len(dupDecl))
+ # With partial builds we may start with a large symbol tree stripped of declarations.
+ # Essentially any combination of noDecl, withDecl, and dupDecls seems possible.
+ # TODO: make partial builds fully work. What should happen when the primary symbol gets
+ # deleted, and other duplicates exist? The full document should probably be rebuild.
+
+ # First check if one of those with a declaration matches.
+ # If it's a function, we need to compare IDs,
+ # otherwise there should be only one symbol with a declaration.
+ def makeCandSymbol() -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("begin: creating candidate symbol")
+ symbol = Symbol(parent=lookupResult.parentSymbol,
+ identOrOp=lookupResult.identOrOp,
+ templateParams=lookupResult.templateParams,
+ templateArgs=lookupResult.templateArgs,
+ declaration=declaration,
+ docname=docname, line=line)
+ if Symbol.debug_lookup:
+ Symbol.debug_print("end: creating candidate symbol")
+ return symbol
+ if len(withDecl) == 0:
+ candSymbol = None
+ else:
+ candSymbol = makeCandSymbol()
+
+ def handleDuplicateDeclaration(symbol: Symbol, candSymbol: Symbol) -> None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("redeclaration")
+ Symbol.debug_indent -= 1
+ Symbol.debug_indent -= 2
+ # Redeclaration of the same symbol.
+ # Let the new one be there, but raise an error to the client
+ # so it can use the real symbol as subscope.
+ # This will probably result in a duplicate id warning.
+ candSymbol.isRedeclaration = True
+ raise _DuplicateSymbolError(symbol, declaration)
+
+ if declaration.objectType != "function":
+ assert len(withDecl) <= 1
+ handleDuplicateDeclaration(withDecl[0], candSymbol)
+ # (not reachable)
+
+ # a function, so compare IDs
+ candId = declaration.get_newest_id()
+ if Symbol.debug_lookup:
+ Symbol.debug_print("candId:", candId)
+ for symbol in withDecl:
+ # but all existing must be functions as well,
+ # otherwise we declare it to be a duplicate
+ if symbol.declaration.objectType != 'function':
+ handleDuplicateDeclaration(symbol, candSymbol)
+ # (not reachable)
+ oldId = symbol.declaration.get_newest_id()
+ if Symbol.debug_lookup:
+ Symbol.debug_print("oldId: ", oldId)
+ if candId == oldId:
+ handleDuplicateDeclaration(symbol, candSymbol)
+ # (not reachable)
+ # no candidate symbol found with matching ID
+ # if there is an empty symbol, fill that one
+ if len(noDecl) == 0:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("no match, no empty")
+ if candSymbol is not None:
+ Symbol.debug_print("result is already created candSymbol")
+ else:
+ Symbol.debug_print("result is makeCandSymbol()")
+ Symbol.debug_indent -= 2
+ if candSymbol is not None:
+ return candSymbol
+ else:
+ return makeCandSymbol()
+ else:
+ if Symbol.debug_lookup:
+ Symbol.debug_print(
+ "no match, but fill an empty declaration, candSybmol is not None?:",
+ candSymbol is not None,
+ )
+ Symbol.debug_indent -= 2
+ if candSymbol is not None:
+ candSymbol.remove()
+ # assert len(noDecl) == 1
+ # TODO: enable assertion when we at some point find out how to do cleanup
+ # for now, just take the first one, it should work fine ... right?
+ symbol = noDecl[0]
+ # If someone first opened the scope, and then later
+ # declares it, e.g,
+ # .. namespace:: Test
+ # .. namespace:: nullptr
+ # .. class:: Test
+ symbol._fill_empty(declaration, docname, line)
+ return symbol
+
+ def merge_with(self, other: Symbol, docnames: list[str],
+ env: BuildEnvironment) -> None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("merge_with:")
+ assert other is not None
+
+ def unconditionalAdd(self: Symbol, otherChild: Symbol) -> None:
+ # TODO: hmm, should we prune by docnames?
+ self._children.append(otherChild)
+ otherChild.parent = self
+ otherChild._assert_invariants()
+
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ for otherChild in other._children:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("otherChild:\n", otherChild.to_string(Symbol.debug_indent))
+ Symbol.debug_indent += 1
+ if otherChild.isRedeclaration:
+ unconditionalAdd(self, otherChild)
+ if Symbol.debug_lookup:
+ Symbol.debug_print("isRedeclaration")
+ Symbol.debug_indent -= 1
+ continue
+ candiateIter = self._find_named_symbols(
+ identOrOp=otherChild.identOrOp,
+ templateParams=otherChild.templateParams,
+ templateArgs=otherChild.templateArgs,
+ templateShorthand=False, matchSelf=False,
+ recurseInAnon=False, correctPrimaryTemplateArgs=False,
+ searchInSiblings=False)
+ candidates = list(candiateIter)
+
+ if Symbol.debug_lookup:
+ Symbol.debug_print("raw candidate symbols:", len(candidates))
+ symbols = [s for s in candidates if not s.isRedeclaration]
+ if Symbol.debug_lookup:
+ Symbol.debug_print("non-duplicate candidate symbols:", len(symbols))
+
+ if len(symbols) == 0:
+ unconditionalAdd(self, otherChild)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ continue
+
+ ourChild = None
+ if otherChild.declaration is None:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("no declaration in other child")
+ ourChild = symbols[0]
+ else:
+ queryId = otherChild.declaration.get_newest_id()
+ if Symbol.debug_lookup:
+ Symbol.debug_print("queryId: ", queryId)
+ for symbol in symbols:
+ if symbol.declaration is None:
+ if Symbol.debug_lookup:
+ Symbol.debug_print("empty candidate")
+ # if in the end we have non-matching, but have an empty one,
+ # then just continue with that
+ ourChild = symbol
+ continue
+ candId = symbol.declaration.get_newest_id()
+ if Symbol.debug_lookup:
+ Symbol.debug_print("candidate:", candId)
+ if candId == queryId:
+ ourChild = symbol
+ break
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ if ourChild is None:
+ unconditionalAdd(self, otherChild)
+ continue
+ if otherChild.declaration and otherChild.docname in docnames:
+ if not ourChild.declaration:
+ ourChild._fill_empty(otherChild.declaration,
+ otherChild.docname, otherChild.line)
+ elif ourChild.docname != otherChild.docname:
+ name = str(ourChild.declaration)
+ msg = __("Duplicate C++ declaration, also defined at %s:%s.\n"
+ "Declaration is '.. cpp:%s:: %s'.")
+ msg = msg % (ourChild.docname, ourChild.line,
+ ourChild.declaration.directiveType, name)
+ logger.warning(msg, location=(otherChild.docname, otherChild.line))
+ else:
+ if (otherChild.declaration.objectType ==
+ ourChild.declaration.objectType and
+ otherChild.declaration.objectType in
+ ('templateParam', 'functionParam') and
+ ourChild.parent.declaration == otherChild.parent.declaration):
+ # `ourChild` was just created during merging by the call
+ # to `_fill_empty` on the parent and can be ignored.
+ pass
+ else:
+ # Both have declarations, and in the same docname.
+ # This can apparently happen, it should be safe to
+ # just ignore it, right?
+ # Hmm, only on duplicate declarations, right?
+ msg = "Internal C++ domain error during symbol merging.\n"
+ msg += "ourChild:\n" + ourChild.to_string(1)
+ msg += "\notherChild:\n" + otherChild.to_string(1)
+ logger.warning(msg, location=otherChild.docname)
+ ourChild.merge_with(otherChild, docnames, env)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+
+ def add_name(self, nestedName: ASTNestedName,
+ templatePrefix: ASTTemplateDeclarationPrefix | None = None) -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("add_name:")
+ if templatePrefix:
+ templateDecls = templatePrefix.templates
+ else:
+ templateDecls = []
+ res = self._add_symbols(nestedName, templateDecls,
+ declaration=None, docname=None, line=None)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ return res
+
+ def add_declaration(self, declaration: ASTDeclaration,
+ docname: str, line: int) -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("add_declaration:")
+ assert declaration is not None
+ assert docname is not None
+ assert line is not None
+ nestedName = declaration.name
+ if declaration.templatePrefix:
+ templateDecls = declaration.templatePrefix.templates
+ else:
+ templateDecls = []
+ res = self._add_symbols(nestedName, templateDecls, declaration, docname, line)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ return res
+
+ def find_identifier(self, identOrOp: ASTIdentifier | ASTOperator,
+ matchSelf: bool, recurseInAnon: bool, searchInSiblings: bool,
+ ) -> Symbol | None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("find_identifier:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("identOrOp: ", identOrOp)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("searchInSiblings:", searchInSiblings)
+ logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
+ Symbol.debug_indent -= 2
+ current = self
+ while current is not None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 2
+ Symbol.debug_print("trying:")
+ logger.debug(current.to_string(Symbol.debug_indent + 1), end="")
+ Symbol.debug_indent -= 2
+ if matchSelf and current.identOrOp == identOrOp:
+ return current
+ children = current.children_recurse_anon if recurseInAnon else current._children
+ for s in children:
+ if s.identOrOp == identOrOp:
+ return s
+ if not searchInSiblings:
+ break
+ current = current.siblingAbove
+ return None
+
+ def direct_lookup(self, key: LookupKey) -> Symbol:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("direct_lookup:")
+ Symbol.debug_indent += 1
+ s = self
+ for name, templateParams, id_ in key.data:
+ if id_ is not None:
+ res = None
+ for cand in s._children:
+ if cand.declaration is None:
+ continue
+ if cand.declaration.get_newest_id() == id_:
+ res = cand
+ break
+ s = res
+ else:
+ identOrOp = name.identOrOp
+ templateArgs = name.templateArgs
+ s = s._find_first_named_symbol(identOrOp,
+ templateParams, templateArgs,
+ templateShorthand=False,
+ matchSelf=False,
+ recurseInAnon=False,
+ correctPrimaryTemplateArgs=False)
+ if Symbol.debug_lookup:
+ Symbol.debug_print("name: ", name)
+ Symbol.debug_print("templateParams:", templateParams)
+ Symbol.debug_print("id: ", id_)
+ if s is not None:
+ logger.debug(s.to_string(Symbol.debug_indent + 1), end="")
+ else:
+ Symbol.debug_print("not found")
+ if s is None:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return None
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return s
+
+ def find_name(
+ self,
+ nestedName: ASTNestedName,
+ templateDecls: list[Any],
+ typ: str,
+ templateShorthand: bool,
+ matchSelf: bool,
+ recurseInAnon: bool,
+ searchInSiblings: bool,
+ ) -> tuple[list[Symbol] | None, str]:
+ # templateShorthand: missing template parameter lists for templates is ok
+ # If the first component is None,
+ # then the second component _may_ be a string explaining why.
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("find_name:")
+ Symbol.debug_indent += 1
+ Symbol.debug_print("self:")
+ logger.debug(self.to_string(Symbol.debug_indent + 1), end="")
+ Symbol.debug_print("nestedName: ", nestedName)
+ Symbol.debug_print("templateDecls: ", templateDecls)
+ Symbol.debug_print("typ: ", typ)
+ Symbol.debug_print("templateShorthand:", templateShorthand)
+ Symbol.debug_print("matchSelf: ", matchSelf)
+ Symbol.debug_print("recurseInAnon: ", recurseInAnon)
+ Symbol.debug_print("searchInSiblings: ", searchInSiblings)
+
+ class QualifiedSymbolIsTemplateParam(Exception):
+ pass
+
+ def onMissingQualifiedSymbol(parentSymbol: Symbol,
+ identOrOp: ASTIdentifier | ASTOperator,
+ templateParams: Any,
+ templateArgs: ASTTemplateArgs) -> Symbol | None:
+ # TODO: Maybe search without template args?
+ # Though, the correctPrimaryTemplateArgs does
+ # that for primary templates.
+ # Is there another case where it would be good?
+ if parentSymbol.declaration is not None:
+ if parentSymbol.declaration.objectType == 'templateParam':
+ raise QualifiedSymbolIsTemplateParam
+ return None
+
+ try:
+ lookupResult = self._symbol_lookup(nestedName, templateDecls,
+ onMissingQualifiedSymbol,
+ strictTemplateParamArgLists=False,
+ ancestorLookupType=typ,
+ templateShorthand=templateShorthand,
+ matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ correctPrimaryTemplateArgs=False,
+ searchInSiblings=searchInSiblings)
+ except QualifiedSymbolIsTemplateParam:
+ return None, "templateParamInQualified"
+
+ if lookupResult is None:
+ # if it was a part of the qualification that could not be found
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return None, None
+
+ res = list(lookupResult.symbols)
+ if len(res) != 0:
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ return res, None
+
+ if lookupResult.parentSymbol.declaration is not None:
+ if lookupResult.parentSymbol.declaration.objectType == 'templateParam':
+ return None, "templateParamInQualified"
+
+ # try without template params and args
+ symbol = lookupResult.parentSymbol._find_first_named_symbol(
+ lookupResult.identOrOp, None, None,
+ templateShorthand=templateShorthand, matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon, correctPrimaryTemplateArgs=False)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 2
+ if symbol is not None:
+ return [symbol], None
+ else:
+ return None, None
+
+ def find_declaration(self, declaration: ASTDeclaration, typ: str, templateShorthand: bool,
+ matchSelf: bool, recurseInAnon: bool) -> Symbol | None:
+ # templateShorthand: missing template parameter lists for templates is ok
+ if Symbol.debug_lookup:
+ Symbol.debug_indent += 1
+ Symbol.debug_print("find_declaration:")
+ nestedName = declaration.name
+ if declaration.templatePrefix:
+ templateDecls = declaration.templatePrefix.templates
+ else:
+ templateDecls = []
+
+ def onMissingQualifiedSymbol(parentSymbol: Symbol,
+ identOrOp: ASTIdentifier | ASTOperator,
+ templateParams: Any,
+ templateArgs: ASTTemplateArgs) -> Symbol | None:
+ return None
+
+ lookupResult = self._symbol_lookup(nestedName, templateDecls,
+ onMissingQualifiedSymbol,
+ strictTemplateParamArgLists=False,
+ ancestorLookupType=typ,
+ templateShorthand=templateShorthand,
+ matchSelf=matchSelf,
+ recurseInAnon=recurseInAnon,
+ correctPrimaryTemplateArgs=False,
+ searchInSiblings=False)
+ if Symbol.debug_lookup:
+ Symbol.debug_indent -= 1
+ if lookupResult is None:
+ return None
+
+ symbols = list(lookupResult.symbols)
+ if len(symbols) == 0:
+ return None
+
+ querySymbol = Symbol(parent=lookupResult.parentSymbol,
+ identOrOp=lookupResult.identOrOp,
+ templateParams=lookupResult.templateParams,
+ templateArgs=lookupResult.templateArgs,
+ declaration=declaration,
+ docname='fakeDocnameForQuery',
+ line=42)
+ queryId = declaration.get_newest_id()
+ for symbol in symbols:
+ if symbol.declaration is None:
+ continue
+ candId = symbol.declaration.get_newest_id()
+ if candId == queryId:
+ querySymbol.remove()
+ return symbol
+ querySymbol.remove()
+ return None
+
+ def to_string(self, indent: int) -> str:
+ res = [Symbol.debug_indent_string * indent]
+ if not self.parent:
+ res.append('::')
+ else:
+ if self.templateParams:
+ res.append(str(self.templateParams))
+ res.append('\n')
+ res.append(Symbol.debug_indent_string * indent)
+ if self.identOrOp:
+ res.append(str(self.identOrOp))
+ else:
+ res.append(str(self.declaration))
+ if self.templateArgs:
+ res.append(str(self.templateArgs))
+ if self.declaration:
+ res.append(": ")
+ if self.isRedeclaration:
+ res.append('!!duplicate!! ')
+ res.append("{" + self.declaration.objectType + "} ")
+ res.append(str(self.declaration))
+ if self.docname:
+ res.append('\t(')
+ res.append(self.docname)
+ res.append(')')
+ res.append('\n')
+ return ''.join(res)
+
+ def dump(self, indent: int) -> str:
+ return ''.join([
+ self.to_string(indent),
+ *(c.dump(indent + 1) for c in self._children),
+ ])
diff --git a/sphinx/domains/index.py b/sphinx/domains/index.py
index c084516..87d1cac 100644
--- a/sphinx/domains/index.py
+++ b/sphinx/domains/index.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, Any, ClassVar
from docutils import nodes
from docutils.parsers.rst import directives
@@ -21,7 +21,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
logger = logging.getLogger(__name__)
@@ -29,6 +29,7 @@ logger = logging.getLogger(__name__)
class IndexDomain(Domain):
"""Mathematics domain."""
+
name = 'index'
label = 'index'
@@ -62,11 +63,12 @@ class IndexDirective(SphinxDirective):
"""
Directive to add entries to the index.
"""
+
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'name': directives.unchanged,
}
@@ -113,7 +115,7 @@ class IndexRole(ReferenceRole):
return [index, target, text], []
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(IndexDomain)
app.add_directive('index', IndexDirective)
app.add_role('index', IndexRole())
diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py
index 75149c3..9b881f8 100644
--- a/sphinx/domains/javascript.py
+++ b/sphinx/domains/javascript.py
@@ -3,7 +3,7 @@
from __future__ import annotations
import contextlib
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, Any, ClassVar, cast
from docutils import nodes
from docutils.parsers.rst import directives
@@ -11,7 +11,7 @@ from docutils.parsers.rst import directives
from sphinx import addnodes
from sphinx.directives import ObjectDescription
from sphinx.domains import Domain, ObjType
-from sphinx.domains.python import _pseudo_parse_arglist
+from sphinx.domains.python._annotations import _pseudo_parse_arglist
from sphinx.locale import _, __
from sphinx.roles import XRefRole
from sphinx.util import logging
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
logger = logging.getLogger(__name__)
@@ -37,6 +37,7 @@ class JSObject(ObjectDescription[tuple[str, str]]):
"""
Description of a JavaScript object.
"""
+
#: If set to ``True`` this object is callable and a `desc_parameterlist` is
#: added
has_arguments = False
@@ -45,7 +46,7 @@ class JSObject(ObjectDescription[tuple[str, str]]):
#: based on directive nesting
allow_nesting = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'no-index': directives.flag,
'no-index-entry': directives.flag,
'no-contents-entry': directives.flag,
@@ -88,12 +89,12 @@ class JSObject(ObjectDescription[tuple[str, str]]):
finally:
name = member_name
if prefix and member_prefix:
- prefix = '.'.join([prefix, member_prefix])
+ prefix = f'{prefix}.{member_prefix}'
elif prefix is None and member_prefix:
prefix = member_prefix
fullname = name
if prefix:
- fullname = '.'.join([prefix, name])
+ fullname = f'{prefix}.{name}'
signode['module'] = mod_name
signode['object'] = prefix
@@ -241,12 +242,13 @@ class JSObject(ObjectDescription[tuple[str, str]]):
if config.toc_object_entries_show_parents == 'hide':
return name + parens
if config.toc_object_entries_show_parents == 'all':
- return '.'.join(parents + [name + parens])
+ return '.'.join([*parents, name + parens])
return ''
class JSCallable(JSObject):
"""Description of a JavaScript function, method or constructor."""
+
has_arguments = True
doc_field_types = [
@@ -296,7 +298,7 @@ class JSModule(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'no-index': directives.flag,
'no-contents-entry': directives.flag,
'no-typesetting': directives.flag,
@@ -358,6 +360,7 @@ class JSXRefRole(XRefRole):
class JavaScriptDomain(Domain):
"""JavaScript language domain."""
+
name = 'js'
label = 'JavaScript'
# if you add a new object type make sure to edit JSObject.get_index_string
@@ -440,11 +443,11 @@ class JavaScriptDomain(Domain):
searches = []
if mod_name and prefix:
- searches.append('.'.join([mod_name, prefix, name]))
+ searches.append(f'{mod_name}.{prefix}.{name}')
if mod_name:
- searches.append('.'.join([mod_name, name]))
+ searches.append(f'{mod_name}.{name}')
if prefix:
- searches.append('.'.join([prefix, name]))
+ searches.append(f'{prefix}.{name}')
searches.append(name)
if searchorder == 0:
@@ -495,10 +498,10 @@ class JavaScriptDomain(Domain):
return '.'.join(filter(None, [modname, prefix, target]))
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(JavaScriptDomain)
app.add_config_value(
- 'javascript_maximum_signature_line_length', None, 'env', types={int, None},
+ 'javascript_maximum_signature_line_length', None, 'env', {int, type(None)},
)
return {
'version': 'builtin',
diff --git a/sphinx/domains/math.py b/sphinx/domains/math.py
index d283d3f..708a4d5 100644
--- a/sphinx/domains/math.py
+++ b/sphinx/domains/math.py
@@ -20,6 +20,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -34,6 +35,7 @@ class MathReferenceRole(XRefRole):
class MathDomain(Domain):
"""Mathematics domain."""
+
name = 'math'
label = 'mathematics'
@@ -134,13 +136,16 @@ class MathDomain(Domain):
return []
def has_equations(self, docname: str | None = None) -> bool:
- if docname:
- return self.data['has_equations'].get(docname, False)
- else:
+ if not docname:
return any(self.data['has_equations'].values())
+ return (
+ self.data['has_equations'].get(docname, False)
+ or any(map(self.has_equations, self.env.toctree_includes.get(docname, ())))
+ )
+
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(MathDomain)
app.add_role('eq', MathReferenceRole(warn_dangling=True))
diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py
deleted file mode 100644
index 930f8e7..0000000
--- a/sphinx/domains/python.py
+++ /dev/null
@@ -1,1769 +0,0 @@
-"""The Python domain."""
-
-from __future__ import annotations
-
-import ast
-import builtins
-import contextlib
-import inspect
-import re
-import token
-import typing
-from inspect import Parameter
-from typing import TYPE_CHECKING, Any, NamedTuple, cast
-
-from docutils import nodes
-from docutils.parsers.rst import directives
-
-from sphinx import addnodes
-from sphinx.addnodes import desc_signature, pending_xref, pending_xref_condition
-from sphinx.directives import ObjectDescription
-from sphinx.domains import Domain, Index, IndexEntry, ObjType
-from sphinx.locale import _, __
-from sphinx.pycode.parser import Token, TokenProcessor
-from sphinx.roles import XRefRole
-from sphinx.util import logging
-from sphinx.util.docfields import Field, GroupedField, TypedField
-from sphinx.util.docutils import SphinxDirective
-from sphinx.util.inspect import signature_from_str
-from sphinx.util.nodes import (
- find_pending_xref_condition,
- make_id,
- make_refnode,
- nested_parse_with_titles,
-)
-
-if TYPE_CHECKING:
- from collections.abc import Iterable, Iterator
-
- from docutils.nodes import Element, Node
- from docutils.parsers.rst.states import Inliner
-
- from sphinx.application import Sphinx
- from sphinx.builders import Builder
- from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec, TextlikeNode
-
-logger = logging.getLogger(__name__)
-
-
-# REs for Python signatures
-py_sig_re = re.compile(
- r'''^ ([\w.]*\.)? # class name(s)
- (\w+) \s* # thing name
- (?: \[\s*(.*)\s*])? # optional: type parameters list
- (?: \(\s*(.*)\s*\) # optional: arguments
- (?:\s* -> \s* (.*))? # return annotation
- )? $ # and nothing more
- ''', re.VERBOSE)
-
-
-pairindextypes = {
- 'module': 'module',
- 'keyword': 'keyword',
- 'operator': 'operator',
- 'object': 'object',
- 'exception': 'exception',
- 'statement': 'statement',
- 'builtin': 'built-in function',
-}
-
-
-class ObjectEntry(NamedTuple):
- docname: str
- node_id: str
- objtype: str
- aliased: bool
-
-
-class ModuleEntry(NamedTuple):
- docname: str
- node_id: str
- synopsis: str
- platform: str
- deprecated: bool
-
-
-def parse_reftarget(reftarget: str, suppress_prefix: bool = False,
- ) -> tuple[str, str, str, bool]:
- """Parse a type string and return (reftype, reftarget, title, refspecific flag)"""
- refspecific = False
- if reftarget.startswith('.'):
- reftarget = reftarget[1:]
- title = reftarget
- refspecific = True
- elif reftarget.startswith('~'):
- reftarget = reftarget[1:]
- title = reftarget.split('.')[-1]
- elif suppress_prefix:
- title = reftarget.split('.')[-1]
- elif reftarget.startswith('typing.'):
- title = reftarget[7:]
- else:
- title = reftarget
-
- if reftarget == 'None' or reftarget.startswith('typing.'):
- # typing module provides non-class types. Obj reference is good to refer them.
- reftype = 'obj'
- else:
- reftype = 'class'
-
- return reftype, reftarget, title, refspecific
-
-
-def type_to_xref(target: str, env: BuildEnvironment, *,
- suppress_prefix: bool = False) -> addnodes.pending_xref:
- """Convert a type string to a cross reference node."""
- if env:
- kwargs = {'py:module': env.ref_context.get('py:module'),
- 'py:class': env.ref_context.get('py:class')}
- else:
- kwargs = {}
-
- reftype, target, title, refspecific = parse_reftarget(target, suppress_prefix)
-
- if env.config.python_use_unqualified_type_names:
- # Note: It would be better to use qualname to describe the object to support support
- # nested classes. But python domain can't access the real python object because this
- # module should work not-dynamically.
- shortname = title.split('.')[-1]
- contnodes: list[Node] = [pending_xref_condition('', shortname, condition='resolved'),
- pending_xref_condition('', title, condition='*')]
- else:
- contnodes = [nodes.Text(title)]
-
- return pending_xref('', *contnodes,
- refdomain='py', reftype=reftype, reftarget=target,
- refspecific=refspecific, **kwargs)
-
-
-def _parse_annotation(annotation: str, env: BuildEnvironment) -> list[Node]:
- """Parse type annotation."""
- short_literals = env.config.python_display_short_literal_types
-
- def unparse(node: ast.AST) -> list[Node]:
- if isinstance(node, ast.Attribute):
- return [nodes.Text(f"{unparse(node.value)[0]}.{node.attr}")]
- if isinstance(node, ast.BinOp):
- result: list[Node] = unparse(node.left)
- result.extend(unparse(node.op))
- result.extend(unparse(node.right))
- return result
- if isinstance(node, ast.BitOr):
- return [addnodes.desc_sig_space(),
- addnodes.desc_sig_punctuation('', '|'),
- addnodes.desc_sig_space()]
- if isinstance(node, ast.Constant):
- if node.value is Ellipsis:
- return [addnodes.desc_sig_punctuation('', "...")]
- if isinstance(node.value, bool):
- return [addnodes.desc_sig_keyword('', repr(node.value))]
- if isinstance(node.value, int):
- return [addnodes.desc_sig_literal_number('', repr(node.value))]
- if isinstance(node.value, str):
- return [addnodes.desc_sig_literal_string('', repr(node.value))]
- else:
- # handles None, which is further handled by type_to_xref later
- # and fallback for other types that should be converted
- return [nodes.Text(repr(node.value))]
- if isinstance(node, ast.Expr):
- return unparse(node.value)
- if isinstance(node, ast.Invert):
- return [addnodes.desc_sig_punctuation('', '~')]
- if isinstance(node, ast.List):
- result = [addnodes.desc_sig_punctuation('', '[')]
- if node.elts:
- # check if there are elements in node.elts to only pop the
- # last element of result if the for-loop was run at least
- # once
- for elem in node.elts:
- result.extend(unparse(elem))
- result.append(addnodes.desc_sig_punctuation('', ','))
- result.append(addnodes.desc_sig_space())
- result.pop()
- result.pop()
- result.append(addnodes.desc_sig_punctuation('', ']'))
- return result
- if isinstance(node, ast.Module):
- return sum((unparse(e) for e in node.body), [])
- if isinstance(node, ast.Name):
- return [nodes.Text(node.id)]
- if isinstance(node, ast.Subscript):
- if getattr(node.value, 'id', '') in {'Optional', 'Union'}:
- return _unparse_pep_604_annotation(node)
- if short_literals and getattr(node.value, 'id', '') == 'Literal':
- return _unparse_pep_604_annotation(node)
- result = unparse(node.value)
- result.append(addnodes.desc_sig_punctuation('', '['))
- result.extend(unparse(node.slice))
- result.append(addnodes.desc_sig_punctuation('', ']'))
-
- # Wrap the Text nodes inside brackets by literal node if the subscript is a Literal
- if result[0] in ('Literal', 'typing.Literal'):
- for i, subnode in enumerate(result[1:], start=1):
- if isinstance(subnode, nodes.Text):
- result[i] = nodes.literal('', '', subnode)
- return result
- if isinstance(node, ast.UnaryOp):
- return unparse(node.op) + unparse(node.operand)
- if isinstance(node, ast.Tuple):
- if node.elts:
- result = []
- for elem in node.elts:
- result.extend(unparse(elem))
- result.append(addnodes.desc_sig_punctuation('', ','))
- result.append(addnodes.desc_sig_space())
- result.pop()
- result.pop()
- else:
- result = [addnodes.desc_sig_punctuation('', '('),
- addnodes.desc_sig_punctuation('', ')')]
-
- return result
- raise SyntaxError # unsupported syntax
-
- def _unparse_pep_604_annotation(node: ast.Subscript) -> list[Node]:
- subscript = node.slice
-
- flattened: list[Node] = []
- if isinstance(subscript, ast.Tuple):
- flattened.extend(unparse(subscript.elts[0]))
- for elt in subscript.elts[1:]:
- flattened.extend(unparse(ast.BitOr()))
- flattened.extend(unparse(elt))
- else:
- # e.g. a Union[] inside an Optional[]
- flattened.extend(unparse(subscript))
-
- if getattr(node.value, 'id', '') == 'Optional':
- flattened.extend(unparse(ast.BitOr()))
- flattened.append(nodes.Text('None'))
-
- return flattened
-
- try:
- tree = ast.parse(annotation, type_comments=True)
- result: list[Node] = []
- for node in unparse(tree):
- if isinstance(node, nodes.literal):
- result.append(node[0])
- elif isinstance(node, nodes.Text) and node.strip():
- if (result and isinstance(result[-1], addnodes.desc_sig_punctuation) and
- result[-1].astext() == '~'):
- result.pop()
- result.append(type_to_xref(str(node), env, suppress_prefix=True))
- else:
- result.append(type_to_xref(str(node), env))
- else:
- result.append(node)
- return result
- except SyntaxError:
- return [type_to_xref(annotation, env)]
-
-
-class _TypeParameterListParser(TokenProcessor):
- def __init__(self, sig: str) -> None:
- signature = sig.replace('\n', '').strip()
- super().__init__([signature])
- # Each item is a tuple (name, kind, default, annotation) mimicking
- # ``inspect.Parameter`` to allow default values on VAR_POSITIONAL
- # or VAR_KEYWORD parameters.
- self.type_params: list[tuple[str, int, Any, Any]] = []
-
- def fetch_type_param_spec(self) -> list[Token]:
- tokens = []
- while current := self.fetch_token():
- tokens.append(current)
- for ldelim, rdelim in ('(', ')'), ('{', '}'), ('[', ']'):
- if current == [token.OP, ldelim]:
- tokens += self.fetch_until([token.OP, rdelim])
- break
- else:
- if current == token.INDENT:
- tokens += self.fetch_until(token.DEDENT)
- elif current.match(
- [token.OP, ':'], [token.OP, '='], [token.OP, ',']):
- tokens.pop()
- break
- return tokens
-
- def parse(self) -> None:
- while current := self.fetch_token():
- if current == token.NAME:
- tp_name = current.value.strip()
- if self.previous and self.previous.match([token.OP, '*'], [token.OP, '**']):
- if self.previous == [token.OP, '*']:
- tp_kind = Parameter.VAR_POSITIONAL
- else:
- tp_kind = Parameter.VAR_KEYWORD # type: ignore[assignment]
- else:
- tp_kind = Parameter.POSITIONAL_OR_KEYWORD # type: ignore[assignment]
-
- tp_ann: Any = Parameter.empty
- tp_default: Any = Parameter.empty
-
- current = self.fetch_token()
- if current and current.match([token.OP, ':'], [token.OP, '=']):
- if current == [token.OP, ':']:
- tokens = self.fetch_type_param_spec()
- tp_ann = self._build_identifier(tokens)
-
- if self.current and self.current == [token.OP, '=']:
- tokens = self.fetch_type_param_spec()
- tp_default = self._build_identifier(tokens)
-
- if tp_kind != Parameter.POSITIONAL_OR_KEYWORD and tp_ann != Parameter.empty:
- msg = ('type parameter bound or constraint is not allowed '
- f'for {tp_kind.description} parameters')
- raise SyntaxError(msg)
-
- type_param = (tp_name, tp_kind, tp_default, tp_ann)
- self.type_params.append(type_param)
-
- def _build_identifier(self, tokens: list[Token]) -> str:
- from itertools import chain, tee
-
- def pairwise(iterable):
- a, b = tee(iterable)
- next(b, None)
- return zip(a, b)
-
- def triplewise(iterable):
- for (a, _z), (b, c) in pairwise(pairwise(iterable)):
- yield a, b, c
-
- idents: list[str] = []
- tokens: Iterable[Token] = iter(tokens) # type: ignore[no-redef]
- # do not format opening brackets
- for tok in tokens:
- if not tok.match([token.OP, '('], [token.OP, '['], [token.OP, '{']):
- # check if the first non-delimiter character is an unpack operator
- is_unpack_operator = tok.match([token.OP, '*'], [token.OP, ['**']])
- idents.append(self._pformat_token(tok, native=is_unpack_operator))
- break
- idents.append(tok.value)
-
- # check the remaining tokens
- stop = Token(token.ENDMARKER, '', (-1, -1), (-1, -1), '<sentinel>')
- is_unpack_operator = False
- for tok, op, after in triplewise(chain(tokens, [stop, stop])):
- ident = self._pformat_token(tok, native=is_unpack_operator)
- idents.append(ident)
- # determine if the next token is an unpack operator depending
- # on the left and right hand side of the operator symbol
- is_unpack_operator = (
- op.match([token.OP, '*'], [token.OP, '**']) and not (
- tok.match(token.NAME, token.NUMBER, token.STRING,
- [token.OP, ')'], [token.OP, ']'], [token.OP, '}'])
- and after.match(token.NAME, token.NUMBER, token.STRING,
- [token.OP, '('], [token.OP, '['], [token.OP, '{'])
- )
- )
-
- return ''.join(idents).strip()
-
- def _pformat_token(self, tok: Token, native: bool = False) -> str:
- if native:
- return tok.value
-
- if tok.match(token.NEWLINE, token.ENDMARKER):
- return ''
-
- if tok.match([token.OP, ':'], [token.OP, ','], [token.OP, '#']):
- return f'{tok.value} '
-
- # Arithmetic operators are allowed because PEP 695 specifies the
- # default type parameter to be *any* expression (so "T1 << T2" is
- # allowed if it makes sense). The caller is responsible to ensure
- # that a multiplication operator ("*") is not to be confused with
- # an unpack operator (which will not be surrounded by spaces).
- #
- # The operators are ordered according to how likely they are to
- # be used and for (possible) future implementations (e.g., "&" for
- # an intersection type).
- if tok.match(
- # Most likely operators to appear
- [token.OP, '='], [token.OP, '|'],
- # Type composition (future compatibility)
- [token.OP, '&'], [token.OP, '^'], [token.OP, '<'], [token.OP, '>'],
- # Unlikely type composition
- [token.OP, '+'], [token.OP, '-'], [token.OP, '*'], [token.OP, '**'],
- # Unlikely operators but included for completeness
- [token.OP, '@'], [token.OP, '/'], [token.OP, '//'], [token.OP, '%'],
- [token.OP, '<<'], [token.OP, '>>'], [token.OP, '>>>'],
- [token.OP, '<='], [token.OP, '>='], [token.OP, '=='], [token.OP, '!='],
- ):
- return f' {tok.value} '
-
- return tok.value
-
-
-def _parse_type_list(
- tp_list: str, env: BuildEnvironment,
- multi_line_parameter_list: bool = False,
-) -> addnodes.desc_type_parameter_list:
- """Parse a list of type parameters according to PEP 695."""
- type_params = addnodes.desc_type_parameter_list(tp_list)
- type_params['multi_line_parameter_list'] = multi_line_parameter_list
- # formal parameter names are interpreted as type parameter names and
- # type annotations are interpreted as type parameter bound or constraints
- parser = _TypeParameterListParser(tp_list)
- parser.parse()
- for (tp_name, tp_kind, tp_default, tp_ann) in parser.type_params:
- # no positional-only or keyword-only allowed in a type parameters list
- if tp_kind in {Parameter.POSITIONAL_ONLY, Parameter.KEYWORD_ONLY}:
- msg = ('positional-only or keyword-only parameters '
- 'are prohibited in type parameter lists')
- raise SyntaxError(msg)
-
- node = addnodes.desc_type_parameter()
- if tp_kind == Parameter.VAR_POSITIONAL:
- node += addnodes.desc_sig_operator('', '*')
- elif tp_kind == Parameter.VAR_KEYWORD:
- node += addnodes.desc_sig_operator('', '**')
- node += addnodes.desc_sig_name('', tp_name)
-
- if tp_ann is not Parameter.empty:
- annotation = _parse_annotation(tp_ann, env)
- if not annotation:
- continue
-
- node += addnodes.desc_sig_punctuation('', ':')
- node += addnodes.desc_sig_space()
-
- type_ann_expr = addnodes.desc_sig_name('', '',
- *annotation) # type: ignore[arg-type]
- # a type bound is ``T: U`` whereas type constraints
- # must be enclosed with parentheses. ``T: (U, V)``
- if tp_ann.startswith('(') and tp_ann.endswith(')'):
- type_ann_text = type_ann_expr.astext()
- if type_ann_text.startswith('(') and type_ann_text.endswith(')'):
- node += type_ann_expr
- else:
- # surrounding braces are lost when using _parse_annotation()
- node += addnodes.desc_sig_punctuation('', '(')
- node += type_ann_expr # type constraint
- node += addnodes.desc_sig_punctuation('', ')')
- else:
- node += type_ann_expr # type bound
-
- if tp_default is not Parameter.empty:
- # Always surround '=' with spaces, even if there is no annotation
- node += addnodes.desc_sig_space()
- node += addnodes.desc_sig_operator('', '=')
- node += addnodes.desc_sig_space()
- node += nodes.inline('', tp_default,
- classes=['default_value'],
- support_smartquotes=False)
-
- type_params += node
- return type_params
-
-
-def _parse_arglist(
- arglist: str, env: BuildEnvironment, multi_line_parameter_list: bool = False,
-) -> addnodes.desc_parameterlist:
- """Parse a list of arguments using AST parser"""
- params = addnodes.desc_parameterlist(arglist)
- params['multi_line_parameter_list'] = multi_line_parameter_list
- sig = signature_from_str('(%s)' % arglist)
- last_kind = None
- for param in sig.parameters.values():
- if param.kind != param.POSITIONAL_ONLY and last_kind == param.POSITIONAL_ONLY:
- # PEP-570: Separator for Positional Only Parameter: /
- params += addnodes.desc_parameter('', '', addnodes.desc_sig_operator('', '/'))
- if param.kind == param.KEYWORD_ONLY and last_kind in (param.POSITIONAL_OR_KEYWORD,
- param.POSITIONAL_ONLY,
- None):
- # PEP-3102: Separator for Keyword Only Parameter: *
- params += addnodes.desc_parameter('', '', addnodes.desc_sig_operator('', '*'))
-
- node = addnodes.desc_parameter()
- if param.kind == param.VAR_POSITIONAL:
- node += addnodes.desc_sig_operator('', '*')
- node += addnodes.desc_sig_name('', param.name)
- elif param.kind == param.VAR_KEYWORD:
- node += addnodes.desc_sig_operator('', '**')
- node += addnodes.desc_sig_name('', param.name)
- else:
- node += addnodes.desc_sig_name('', param.name)
-
- if param.annotation is not param.empty:
- children = _parse_annotation(param.annotation, env)
- node += addnodes.desc_sig_punctuation('', ':')
- node += addnodes.desc_sig_space()
- node += addnodes.desc_sig_name('', '', *children) # type: ignore[arg-type]
- if param.default is not param.empty:
- if param.annotation is not param.empty:
- node += addnodes.desc_sig_space()
- node += addnodes.desc_sig_operator('', '=')
- node += addnodes.desc_sig_space()
- else:
- node += addnodes.desc_sig_operator('', '=')
- node += nodes.inline('', param.default, classes=['default_value'],
- support_smartquotes=False)
-
- params += node
- last_kind = param.kind
-
- if last_kind == Parameter.POSITIONAL_ONLY:
- # PEP-570: Separator for Positional Only Parameter: /
- params += addnodes.desc_parameter('', '', addnodes.desc_sig_operator('', '/'))
-
- return params
-
-
-def _pseudo_parse_arglist(
- signode: desc_signature, arglist: str, multi_line_parameter_list: bool = False,
-) -> None:
- """"Parse" a list of arguments separated by commas.
-
- Arguments can have "optional" annotations given by enclosing them in
- brackets. Currently, this will split at any comma, even if it's inside a
- string literal (e.g. default argument value).
- """
- paramlist = addnodes.desc_parameterlist()
- paramlist['multi_line_parameter_list'] = multi_line_parameter_list
- stack: list[Element] = [paramlist]
- try:
- for argument in arglist.split(','):
- argument = argument.strip()
- ends_open = ends_close = 0
- while argument.startswith('['):
- stack.append(addnodes.desc_optional())
- stack[-2] += stack[-1]
- argument = argument[1:].strip()
- while argument.startswith(']'):
- stack.pop()
- argument = argument[1:].strip()
- while argument.endswith(']') and not argument.endswith('[]'):
- ends_close += 1
- argument = argument[:-1].strip()
- while argument.endswith('['):
- ends_open += 1
- argument = argument[:-1].strip()
- if argument:
- stack[-1] += addnodes.desc_parameter(
- '', '', addnodes.desc_sig_name(argument, argument))
- while ends_open:
- stack.append(addnodes.desc_optional())
- stack[-2] += stack[-1]
- ends_open -= 1
- while ends_close:
- stack.pop()
- ends_close -= 1
- if len(stack) != 1:
- raise IndexError
- except IndexError:
- # if there are too few or too many elements on the stack, just give up
- # and treat the whole argument list as one argument, discarding the
- # already partially populated paramlist node
- paramlist = addnodes.desc_parameterlist()
- paramlist += addnodes.desc_parameter(arglist, arglist)
- signode += paramlist
- else:
- signode += paramlist
-
-
-# This override allows our inline type specifiers to behave like :class: link
-# when it comes to handling "." and "~" prefixes.
-class PyXrefMixin:
- def make_xref(
- self,
- rolename: str,
- domain: str,
- target: str,
- innernode: type[TextlikeNode] = nodes.emphasis,
- contnode: Node | None = None,
- env: BuildEnvironment | None = None,
- inliner: Inliner | None = None,
- location: Node | None = None,
- ) -> Node:
- # we use inliner=None to make sure we get the old behaviour with a single
- # pending_xref node
- result = super().make_xref(rolename, domain, target, # type: ignore[misc]
- innernode, contnode,
- env, inliner=None, location=None)
- if isinstance(result, pending_xref):
- assert env is not None
- result['refspecific'] = True
- result['py:module'] = env.ref_context.get('py:module')
- result['py:class'] = env.ref_context.get('py:class')
-
- reftype, reftarget, reftitle, _ = parse_reftarget(target)
- if reftarget != reftitle:
- result['reftype'] = reftype
- result['reftarget'] = reftarget
-
- result.clear()
- result += innernode(reftitle, reftitle)
- elif env.config.python_use_unqualified_type_names:
- children = result.children
- result.clear()
-
- shortname = target.split('.')[-1]
- textnode = innernode('', shortname)
- contnodes = [pending_xref_condition('', '', textnode, condition='resolved'),
- pending_xref_condition('', '', *children, condition='*')]
- result.extend(contnodes)
-
- return result
-
- def make_xrefs(
- self,
- rolename: str,
- domain: str,
- target: str,
- innernode: type[TextlikeNode] = nodes.emphasis,
- contnode: Node | None = None,
- env: BuildEnvironment | None = None,
- inliner: Inliner | None = None,
- location: Node | None = None,
- ) -> list[Node]:
- delims = r'(\s*[\[\]\(\),](?:\s*o[rf]\s)?\s*|\s+o[rf]\s+|\s*\|\s*|\.\.\.)'
- delims_re = re.compile(delims)
- sub_targets = re.split(delims, target)
-
- split_contnode = bool(contnode and contnode.astext() == target)
-
- in_literal = False
- results = []
- for sub_target in filter(None, sub_targets):
- if split_contnode:
- contnode = nodes.Text(sub_target)
-
- if in_literal or delims_re.match(sub_target):
- results.append(contnode or innernode(sub_target, sub_target))
- else:
- results.append(self.make_xref(rolename, domain, sub_target,
- innernode, contnode, env, inliner, location))
-
- if sub_target in ('Literal', 'typing.Literal', '~typing.Literal'):
- in_literal = True
-
- return results
-
-
-class PyField(PyXrefMixin, Field):
- pass
-
-
-class PyGroupedField(PyXrefMixin, GroupedField):
- pass
-
-
-class PyTypedField(PyXrefMixin, TypedField):
- pass
-
-
-class PyObject(ObjectDescription[tuple[str, str]]):
- """
- Description of a general Python object.
-
- :cvar allow_nesting: Class is an object that allows for nested namespaces
- :vartype allow_nesting: bool
- """
- option_spec: OptionSpec = {
- 'no-index': directives.flag,
- 'no-index-entry': directives.flag,
- 'no-contents-entry': directives.flag,
- 'no-typesetting': directives.flag,
- 'noindex': directives.flag,
- 'noindexentry': directives.flag,
- 'nocontentsentry': directives.flag,
- 'single-line-parameter-list': directives.flag,
- 'single-line-type-parameter-list': directives.flag,
- 'module': directives.unchanged,
- 'canonical': directives.unchanged,
- 'annotation': directives.unchanged,
- }
-
- doc_field_types = [
- PyTypedField('parameter', label=_('Parameters'),
- names=('param', 'parameter', 'arg', 'argument',
- 'keyword', 'kwarg', 'kwparam'),
- typerolename='class', typenames=('paramtype', 'type'),
- can_collapse=True),
- PyTypedField('variable', label=_('Variables'),
- names=('var', 'ivar', 'cvar'),
- typerolename='class', typenames=('vartype',),
- can_collapse=True),
- PyGroupedField('exceptions', label=_('Raises'), rolename='exc',
- names=('raises', 'raise', 'exception', 'except'),
- can_collapse=True),
- Field('returnvalue', label=_('Returns'), has_arg=False,
- names=('returns', 'return')),
- PyField('returntype', label=_('Return type'), has_arg=False,
- names=('rtype',), bodyrolename='class'),
- ]
-
- allow_nesting = False
-
- def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
- """May return a prefix to put before the object name in the
- signature.
- """
- return []
-
- def needs_arglist(self) -> bool:
- """May return true if an empty argument list is to be generated even if
- the document contains none.
- """
- return False
-
- def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
- """Transform a Python signature into RST nodes.
-
- Return (fully qualified name of the thing, classname if any).
-
- If inside a class, the current class name is handled intelligently:
- * it is stripped from the displayed name if present
- * it is added to the full name (return value) if not present
- """
- m = py_sig_re.match(sig)
- if m is None:
- raise ValueError
- prefix, name, tp_list, arglist, retann = m.groups()
-
- # determine module and class name (if applicable), as well as full name
- modname = self.options.get('module', self.env.ref_context.get('py:module'))
- classname = self.env.ref_context.get('py:class')
- if classname:
- add_module = False
- if prefix and (prefix == classname or
- prefix.startswith(classname + ".")):
- fullname = prefix + name
- # class name is given again in the signature
- prefix = prefix[len(classname):].lstrip('.')
- elif prefix:
- # class name is given in the signature, but different
- # (shouldn't happen)
- fullname = classname + '.' + prefix + name
- else:
- # class name is not given in the signature
- fullname = classname + '.' + name
- else:
- add_module = True
- if prefix:
- classname = prefix.rstrip('.')
- fullname = prefix + name
- else:
- classname = ''
- fullname = name
-
- signode['module'] = modname
- signode['class'] = classname
- signode['fullname'] = fullname
-
- max_len = (self.env.config.python_maximum_signature_line_length
- or self.env.config.maximum_signature_line_length
- or 0)
-
- # determine if the function arguments (without its type parameters)
- # should be formatted on a multiline or not by removing the width of
- # the type parameters list (if any)
- sig_len = len(sig)
- tp_list_span = m.span(3)
- multi_line_parameter_list = (
- 'single-line-parameter-list' not in self.options
- and (sig_len - (tp_list_span[1] - tp_list_span[0])) > max_len > 0
- )
-
- # determine whether the type parameter list must be wrapped or not
- arglist_span = m.span(4)
- multi_line_type_parameter_list = (
- 'single-line-type-parameter-list' not in self.options
- and (sig_len - (arglist_span[1] - arglist_span[0])) > max_len > 0
- )
-
- sig_prefix = self.get_signature_prefix(sig)
- if sig_prefix:
- if type(sig_prefix) is str:
- msg = ("Python directive method get_signature_prefix()"
- " must return a list of nodes."
- f" Return value was '{sig_prefix}'.")
- raise TypeError(msg)
- signode += addnodes.desc_annotation(str(sig_prefix), '', *sig_prefix)
-
- if prefix:
- signode += addnodes.desc_addname(prefix, prefix)
- elif modname and add_module and self.env.config.add_module_names:
- nodetext = modname + '.'
- signode += addnodes.desc_addname(nodetext, nodetext)
-
- signode += addnodes.desc_name(name, name)
-
- if tp_list:
- try:
- signode += _parse_type_list(tp_list, self.env, multi_line_type_parameter_list)
- except Exception as exc:
- logger.warning("could not parse tp_list (%r): %s", tp_list, exc,
- location=signode)
-
- if arglist:
- try:
- signode += _parse_arglist(arglist, self.env, multi_line_parameter_list)
- except SyntaxError:
- # fallback to parse arglist original parser
- # (this may happen if the argument list is incorrectly used
- # as a list of bases when documenting a class)
- # it supports to represent optional arguments (ex. "func(foo [, bar])")
- _pseudo_parse_arglist(signode, arglist, multi_line_parameter_list)
- except (NotImplementedError, ValueError) as exc:
- # duplicated parameter names raise ValueError and not a SyntaxError
- logger.warning("could not parse arglist (%r): %s", arglist, exc,
- location=signode)
- _pseudo_parse_arglist(signode, arglist, multi_line_parameter_list)
- else:
- if self.needs_arglist():
- # for callables, add an empty parameter list
- signode += addnodes.desc_parameterlist()
-
- if retann:
- children = _parse_annotation(retann, self.env)
- signode += addnodes.desc_returns(retann, '', *children)
-
- anno = self.options.get('annotation')
- if anno:
- signode += addnodes.desc_annotation(' ' + anno, '',
- addnodes.desc_sig_space(),
- nodes.Text(anno))
-
- return fullname, prefix
-
- def _object_hierarchy_parts(self, sig_node: desc_signature) -> tuple[str, ...]:
- if 'fullname' not in sig_node:
- return ()
- modname = sig_node.get('module')
- fullname = sig_node['fullname']
-
- if modname:
- return (modname, *fullname.split('.'))
- else:
- return tuple(fullname.split('.'))
-
- def get_index_text(self, modname: str, name: tuple[str, str]) -> str:
- """Return the text for the index entry of the object."""
- msg = 'must be implemented in subclasses'
- raise NotImplementedError(msg)
-
- def add_target_and_index(self, name_cls: tuple[str, str], sig: str,
- signode: desc_signature) -> None:
- modname = self.options.get('module', self.env.ref_context.get('py:module'))
- fullname = (modname + '.' if modname else '') + name_cls[0]
- node_id = make_id(self.env, self.state.document, '', fullname)
- signode['ids'].append(node_id)
- self.state.document.note_explicit_target(signode)
-
- domain = cast(PythonDomain, self.env.get_domain('py'))
- domain.note_object(fullname, self.objtype, node_id, location=signode)
-
- canonical_name = self.options.get('canonical')
- if canonical_name:
- domain.note_object(canonical_name, self.objtype, node_id, aliased=True,
- location=signode)
-
- if 'no-index-entry' not in self.options:
- indextext = self.get_index_text(modname, name_cls)
- if indextext:
- self.indexnode['entries'].append(('single', indextext, node_id, '', None))
-
- def before_content(self) -> None:
- """Handle object nesting before content
-
- :py:class:`PyObject` represents Python language constructs. For
- constructs that are nestable, such as a Python classes, this method will
- build up a stack of the nesting hierarchy so that it can be later
- de-nested correctly, in :py:meth:`after_content`.
-
- For constructs that aren't nestable, the stack is bypassed, and instead
- only the most recent object is tracked. This object prefix name will be
- removed with :py:meth:`after_content`.
- """
- prefix = None
- if self.names:
- # fullname and name_prefix come from the `handle_signature` method.
- # fullname represents the full object name that is constructed using
- # object nesting and explicit prefixes. `name_prefix` is the
- # explicit prefix given in a signature
- (fullname, name_prefix) = self.names[-1]
- if self.allow_nesting:
- prefix = fullname
- elif name_prefix:
- prefix = name_prefix.strip('.')
- if prefix:
- self.env.ref_context['py:class'] = prefix
- if self.allow_nesting:
- classes = self.env.ref_context.setdefault('py:classes', [])
- classes.append(prefix)
- if 'module' in self.options:
- modules = self.env.ref_context.setdefault('py:modules', [])
- modules.append(self.env.ref_context.get('py:module'))
- self.env.ref_context['py:module'] = self.options['module']
-
- def after_content(self) -> None:
- """Handle object de-nesting after content
-
- If this class is a nestable object, removing the last nested class prefix
- ends further nesting in the object.
-
- If this class is not a nestable object, the list of classes should not
- be altered as we didn't affect the nesting levels in
- :py:meth:`before_content`.
- """
- classes = self.env.ref_context.setdefault('py:classes', [])
- if self.allow_nesting:
- with contextlib.suppress(IndexError):
- classes.pop()
-
- self.env.ref_context['py:class'] = (classes[-1] if len(classes) > 0
- else None)
- if 'module' in self.options:
- modules = self.env.ref_context.setdefault('py:modules', [])
- if modules:
- self.env.ref_context['py:module'] = modules.pop()
- else:
- self.env.ref_context.pop('py:module')
-
- def _toc_entry_name(self, sig_node: desc_signature) -> str:
- if not sig_node.get('_toc_parts'):
- return ''
-
- config = self.env.app.config
- objtype = sig_node.parent.get('objtype')
- if config.add_function_parentheses and objtype in {'function', 'method'}:
- parens = '()'
- else:
- parens = ''
- *parents, name = sig_node['_toc_parts']
- if config.toc_object_entries_show_parents == 'domain':
- return sig_node.get('fullname', name) + parens
- if config.toc_object_entries_show_parents == 'hide':
- return name + parens
- if config.toc_object_entries_show_parents == 'all':
- return '.'.join(parents + [name + parens])
- return ''
-
-
-class PyFunction(PyObject):
- """Description of a function."""
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
- option_spec.update({
- 'async': directives.flag,
- })
-
- def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
- if 'async' in self.options:
- return [addnodes.desc_sig_keyword('', 'async'),
- addnodes.desc_sig_space()]
- else:
- return []
-
- def needs_arglist(self) -> bool:
- return True
-
- def add_target_and_index(self, name_cls: tuple[str, str], sig: str,
- signode: desc_signature) -> None:
- super().add_target_and_index(name_cls, sig, signode)
- if 'no-index-entry' not in self.options:
- modname = self.options.get('module', self.env.ref_context.get('py:module'))
- node_id = signode['ids'][0]
-
- name, cls = name_cls
- if modname:
- text = _('%s() (in module %s)') % (name, modname)
- self.indexnode['entries'].append(('single', text, node_id, '', None))
- else:
- text = f'built-in function; {name}()'
- self.indexnode['entries'].append(('pair', text, node_id, '', None))
-
- def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
- # add index in own add_target_and_index() instead.
- return ''
-
-
-class PyDecoratorFunction(PyFunction):
- """Description of a decorator."""
-
- def run(self) -> list[Node]:
- # a decorator function is a function after all
- self.name = 'py:function'
- return super().run()
-
- def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
- ret = super().handle_signature(sig, signode)
- signode.insert(0, addnodes.desc_addname('@', '@'))
- return ret
-
- def needs_arglist(self) -> bool:
- return False
-
-
-class PyVariable(PyObject):
- """Description of a variable."""
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
- option_spec.update({
- 'type': directives.unchanged,
- 'value': directives.unchanged,
- })
-
- def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
- fullname, prefix = super().handle_signature(sig, signode)
-
- typ = self.options.get('type')
- if typ:
- annotations = _parse_annotation(typ, self.env)
- signode += addnodes.desc_annotation(typ, '',
- addnodes.desc_sig_punctuation('', ':'),
- addnodes.desc_sig_space(), *annotations)
-
- value = self.options.get('value')
- if value:
- signode += addnodes.desc_annotation(value, '',
- addnodes.desc_sig_space(),
- addnodes.desc_sig_punctuation('', '='),
- addnodes.desc_sig_space(),
- nodes.Text(value))
-
- return fullname, prefix
-
- def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
- name, cls = name_cls
- if modname:
- return _('%s (in module %s)') % (name, modname)
- else:
- return _('%s (built-in variable)') % name
-
-
-class PyClasslike(PyObject):
- """
- Description of a class-like object (classes, interfaces, exceptions).
- """
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
- option_spec.update({
- 'final': directives.flag,
- })
-
- allow_nesting = True
-
- def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
- if 'final' in self.options:
- return [nodes.Text('final'), addnodes.desc_sig_space(),
- nodes.Text(self.objtype), addnodes.desc_sig_space()]
- else:
- return [nodes.Text(self.objtype), addnodes.desc_sig_space()]
-
- def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
- if self.objtype == 'class':
- if not modname:
- return _('%s (built-in class)') % name_cls[0]
- return _('%s (class in %s)') % (name_cls[0], modname)
- elif self.objtype == 'exception':
- return name_cls[0]
- else:
- return ''
-
-
-class PyMethod(PyObject):
- """Description of a method."""
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
- option_spec.update({
- 'abstractmethod': directives.flag,
- 'async': directives.flag,
- 'classmethod': directives.flag,
- 'final': directives.flag,
- 'staticmethod': directives.flag,
- })
-
- def needs_arglist(self) -> bool:
- return True
-
- def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
- prefix: list[nodes.Node] = []
- if 'final' in self.options:
- prefix.append(nodes.Text('final'))
- prefix.append(addnodes.desc_sig_space())
- if 'abstractmethod' in self.options:
- prefix.append(nodes.Text('abstract'))
- prefix.append(addnodes.desc_sig_space())
- if 'async' in self.options:
- prefix.append(nodes.Text('async'))
- prefix.append(addnodes.desc_sig_space())
- if 'classmethod' in self.options:
- prefix.append(nodes.Text('classmethod'))
- prefix.append(addnodes.desc_sig_space())
- if 'staticmethod' in self.options:
- prefix.append(nodes.Text('static'))
- prefix.append(addnodes.desc_sig_space())
- return prefix
-
- def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
- name, cls = name_cls
- try:
- clsname, methname = name.rsplit('.', 1)
- if modname and self.env.config.add_module_names:
- clsname = '.'.join([modname, clsname])
- except ValueError:
- if modname:
- return _('%s() (in module %s)') % (name, modname)
- else:
- return '%s()' % name
-
- if 'classmethod' in self.options:
- return _('%s() (%s class method)') % (methname, clsname)
- elif 'staticmethod' in self.options:
- return _('%s() (%s static method)') % (methname, clsname)
- else:
- return _('%s() (%s method)') % (methname, clsname)
-
-
-class PyClassMethod(PyMethod):
- """Description of a classmethod."""
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
-
- def run(self) -> list[Node]:
- self.name = 'py:method'
- self.options['classmethod'] = True
-
- return super().run()
-
-
-class PyStaticMethod(PyMethod):
- """Description of a staticmethod."""
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
-
- def run(self) -> list[Node]:
- self.name = 'py:method'
- self.options['staticmethod'] = True
-
- return super().run()
-
-
-class PyDecoratorMethod(PyMethod):
- """Description of a decoratormethod."""
-
- def run(self) -> list[Node]:
- self.name = 'py:method'
- return super().run()
-
- def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
- ret = super().handle_signature(sig, signode)
- signode.insert(0, addnodes.desc_addname('@', '@'))
- return ret
-
- def needs_arglist(self) -> bool:
- return False
-
-
-class PyAttribute(PyObject):
- """Description of an attribute."""
-
- option_spec: OptionSpec = PyObject.option_spec.copy()
- option_spec.update({
- 'type': directives.unchanged,
- 'value': directives.unchanged,
- })
-
- def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
- fullname, prefix = super().handle_signature(sig, signode)
-
- typ = self.options.get('type')
- if typ:
- annotations = _parse_annotation(typ, self.env)
- signode += addnodes.desc_annotation(typ, '',
- addnodes.desc_sig_punctuation('', ':'),
- addnodes.desc_sig_space(),
- *annotations)
-
- value = self.options.get('value')
- if value:
- signode += addnodes.desc_annotation(value, '',
- addnodes.desc_sig_space(),
- addnodes.desc_sig_punctuation('', '='),
- addnodes.desc_sig_space(),
- nodes.Text(value))
-
- return fullname, prefix
-
- def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
- name, cls = name_cls
- try:
- clsname, attrname = name.rsplit('.', 1)
- if modname and self.env.config.add_module_names:
- clsname = '.'.join([modname, clsname])
- except ValueError:
- if modname:
- return _('%s (in module %s)') % (name, modname)
- else:
- return name
-
- return _('%s (%s attribute)') % (attrname, clsname)
-
-
-class PyProperty(PyObject):
- """Description of an attribute."""
-
- option_spec = PyObject.option_spec.copy()
- option_spec.update({
- 'abstractmethod': directives.flag,
- 'classmethod': directives.flag,
- 'type': directives.unchanged,
- })
-
- def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
- fullname, prefix = super().handle_signature(sig, signode)
-
- typ = self.options.get('type')
- if typ:
- annotations = _parse_annotation(typ, self.env)
- signode += addnodes.desc_annotation(typ, '',
- addnodes.desc_sig_punctuation('', ':'),
- addnodes.desc_sig_space(),
- *annotations)
-
- return fullname, prefix
-
- def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
- prefix: list[nodes.Node] = []
- if 'abstractmethod' in self.options:
- prefix.append(nodes.Text('abstract'))
- prefix.append(addnodes.desc_sig_space())
- if 'classmethod' in self.options:
- prefix.append(nodes.Text('class'))
- prefix.append(addnodes.desc_sig_space())
-
- prefix.append(nodes.Text('property'))
- prefix.append(addnodes.desc_sig_space())
- return prefix
-
- def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
- name, cls = name_cls
- try:
- clsname, attrname = name.rsplit('.', 1)
- if modname and self.env.config.add_module_names:
- clsname = '.'.join([modname, clsname])
- except ValueError:
- if modname:
- return _('%s (in module %s)') % (name, modname)
- else:
- return name
-
- return _('%s (%s property)') % (attrname, clsname)
-
-
-class PyModule(SphinxDirective):
- """
- Directive to mark description of a new module.
- """
-
- has_content = True
- required_arguments = 1
- optional_arguments = 0
- final_argument_whitespace = False
- option_spec: OptionSpec = {
- 'platform': lambda x: x,
- 'synopsis': lambda x: x,
- 'no-index': directives.flag,
- 'no-contents-entry': directives.flag,
- 'no-typesetting': directives.flag,
- 'noindex': directives.flag,
- 'nocontentsentry': directives.flag,
- 'deprecated': directives.flag,
- }
-
- def run(self) -> list[Node]:
- domain = cast(PythonDomain, self.env.get_domain('py'))
-
- modname = self.arguments[0].strip()
- no_index = 'no-index' in self.options or 'noindex' in self.options
- self.env.ref_context['py:module'] = modname
-
- content_node: Element = nodes.section()
- # necessary so that the child nodes get the right source/line set
- content_node.document = self.state.document
- nested_parse_with_titles(self.state, self.content, content_node, self.content_offset)
-
- ret: list[Node] = []
- if not no_index:
- # note module to the domain
- node_id = make_id(self.env, self.state.document, 'module', modname)
- target = nodes.target('', '', ids=[node_id], ismod=True)
- self.set_source_info(target)
- self.state.document.note_explicit_target(target)
-
- domain.note_module(modname,
- node_id,
- self.options.get('synopsis', ''),
- self.options.get('platform', ''),
- 'deprecated' in self.options)
- domain.note_object(modname, 'module', node_id, location=target)
-
- # the platform and synopsis aren't printed; in fact, they are only
- # used in the modindex currently
- indextext = f'module; {modname}'
- inode = addnodes.index(entries=[('pair', indextext, node_id, '', None)])
- # The node order is: index node first, then target node.
- ret.append(inode)
- ret.append(target)
- ret.extend(content_node.children)
- return ret
-
-
-class PyCurrentModule(SphinxDirective):
- """
- This directive is just to tell Sphinx that we're documenting
- stuff in module foo, but links to module foo won't lead here.
- """
-
- has_content = False
- required_arguments = 1
- optional_arguments = 0
- final_argument_whitespace = False
- option_spec: OptionSpec = {}
-
- def run(self) -> list[Node]:
- modname = self.arguments[0].strip()
- if modname == 'None':
- self.env.ref_context.pop('py:module', None)
- else:
- self.env.ref_context['py:module'] = modname
- return []
-
-
-class PyXRefRole(XRefRole):
- def process_link(self, env: BuildEnvironment, refnode: Element,
- has_explicit_title: bool, title: str, target: str) -> tuple[str, str]:
- refnode['py:module'] = env.ref_context.get('py:module')
- refnode['py:class'] = env.ref_context.get('py:class')
- if not has_explicit_title:
- title = title.lstrip('.') # only has a meaning for the target
- target = target.lstrip('~') # only has a meaning for the title
- # if the first character is a tilde, don't display the module/class
- # parts of the contents
- if title[0:1] == '~':
- title = title[1:]
- dot = title.rfind('.')
- if dot != -1:
- title = title[dot + 1:]
- # if the first character is a dot, search more specific namespaces first
- # else search builtins first
- if target[0:1] == '.':
- target = target[1:]
- refnode['refspecific'] = True
- return title, target
-
-
-def filter_meta_fields(app: Sphinx, domain: str, objtype: str, content: Element) -> None:
- """Filter ``:meta:`` field from its docstring."""
- if domain != 'py':
- return
-
- for node in content:
- if isinstance(node, nodes.field_list):
- fields = cast(list[nodes.field], node)
- # removing list items while iterating the list needs reversed()
- for field in reversed(fields):
- field_name = cast(nodes.field_body, field[0]).astext().strip()
- if field_name == 'meta' or field_name.startswith('meta '):
- node.remove(field)
-
-
-class PythonModuleIndex(Index):
- """
- Index subclass to provide the Python module index.
- """
-
- name = 'modindex'
- localname = _('Python Module Index')
- shortname = _('modules')
-
- def generate(self, docnames: Iterable[str] | None = None,
- ) -> tuple[list[tuple[str, list[IndexEntry]]], bool]:
- content: dict[str, list[IndexEntry]] = {}
- # list of prefixes to ignore
- ignores: list[str] = self.domain.env.config['modindex_common_prefix']
- ignores = sorted(ignores, key=len, reverse=True)
- # list of all modules, sorted by module name
- modules = sorted(self.domain.data['modules'].items(),
- key=lambda x: x[0].lower())
- # sort out collapsible modules
- prev_modname = ''
- num_toplevels = 0
- for modname, (docname, node_id, synopsis, platforms, deprecated) in modules:
- if docnames and docname not in docnames:
- continue
-
- for ignore in ignores:
- if modname.startswith(ignore):
- modname = modname[len(ignore):]
- stripped = ignore
- break
- else:
- stripped = ''
-
- # we stripped the whole module name?
- if not modname:
- modname, stripped = stripped, ''
-
- entries = content.setdefault(modname[0].lower(), [])
-
- package = modname.split('.')[0]
- if package != modname:
- # it's a submodule
- if prev_modname == package:
- # first submodule - make parent a group head
- if entries:
- last = entries[-1]
- entries[-1] = IndexEntry(last[0], 1, last[2], last[3],
- last[4], last[5], last[6])
- elif not prev_modname.startswith(package):
- # submodule without parent in list, add dummy entry
- entries.append(IndexEntry(stripped + package, 1, '', '', '', '', ''))
- subtype = 2
- else:
- num_toplevels += 1
- subtype = 0
-
- qualifier = _('Deprecated') if deprecated else ''
- entries.append(IndexEntry(stripped + modname, subtype, docname,
- node_id, platforms, qualifier, synopsis))
- prev_modname = modname
-
- # apply heuristics when to collapse modindex at page load:
- # only collapse if number of toplevel modules is larger than
- # number of submodules
- collapse = len(modules) - num_toplevels < num_toplevels
-
- # sort by first letter
- sorted_content = sorted(content.items())
-
- return sorted_content, collapse
-
-
-class PythonDomain(Domain):
- """Python language domain."""
- name = 'py'
- label = 'Python'
- object_types: dict[str, ObjType] = {
- 'function': ObjType(_('function'), 'func', 'obj'),
- 'data': ObjType(_('data'), 'data', 'obj'),
- 'class': ObjType(_('class'), 'class', 'exc', 'obj'),
- 'exception': ObjType(_('exception'), 'exc', 'class', 'obj'),
- 'method': ObjType(_('method'), 'meth', 'obj'),
- 'classmethod': ObjType(_('class method'), 'meth', 'obj'),
- 'staticmethod': ObjType(_('static method'), 'meth', 'obj'),
- 'attribute': ObjType(_('attribute'), 'attr', 'obj'),
- 'property': ObjType(_('property'), 'attr', '_prop', 'obj'),
- 'module': ObjType(_('module'), 'mod', 'obj'),
- }
-
- directives = {
- 'function': PyFunction,
- 'data': PyVariable,
- 'class': PyClasslike,
- 'exception': PyClasslike,
- 'method': PyMethod,
- 'classmethod': PyClassMethod,
- 'staticmethod': PyStaticMethod,
- 'attribute': PyAttribute,
- 'property': PyProperty,
- 'module': PyModule,
- 'currentmodule': PyCurrentModule,
- 'decorator': PyDecoratorFunction,
- 'decoratormethod': PyDecoratorMethod,
- }
- roles = {
- 'data': PyXRefRole(),
- 'exc': PyXRefRole(),
- 'func': PyXRefRole(fix_parens=True),
- 'class': PyXRefRole(),
- 'const': PyXRefRole(),
- 'attr': PyXRefRole(),
- 'meth': PyXRefRole(fix_parens=True),
- 'mod': PyXRefRole(),
- 'obj': PyXRefRole(),
- }
- initial_data: dict[str, dict[str, tuple[Any]]] = {
- 'objects': {}, # fullname -> docname, objtype
- 'modules': {}, # modname -> docname, synopsis, platform, deprecated
- }
- indices = [
- PythonModuleIndex,
- ]
-
- @property
- def objects(self) -> dict[str, ObjectEntry]:
- return self.data.setdefault('objects', {}) # fullname -> ObjectEntry
-
- def note_object(self, name: str, objtype: str, node_id: str,
- aliased: bool = False, location: Any = None) -> None:
- """Note a python object for cross reference.
-
- .. versionadded:: 2.1
- """
- if name in self.objects:
- other = self.objects[name]
- if other.aliased and aliased is False:
- # The original definition found. Override it!
- pass
- elif other.aliased is False and aliased:
- # The original definition is already registered.
- return
- else:
- # duplicated
- logger.warning(__('duplicate object description of %s, '
- 'other instance in %s, use :no-index: for one of them'),
- name, other.docname, location=location)
- self.objects[name] = ObjectEntry(self.env.docname, node_id, objtype, aliased)
-
- @property
- def modules(self) -> dict[str, ModuleEntry]:
- return self.data.setdefault('modules', {}) # modname -> ModuleEntry
-
- def note_module(self, name: str, node_id: str, synopsis: str,
- platform: str, deprecated: bool) -> None:
- """Note a python module for cross reference.
-
- .. versionadded:: 2.1
- """
- self.modules[name] = ModuleEntry(self.env.docname, node_id,
- synopsis, platform, deprecated)
-
- def clear_doc(self, docname: str) -> None:
- for fullname, obj in list(self.objects.items()):
- if obj.docname == docname:
- del self.objects[fullname]
- for modname, mod in list(self.modules.items()):
- if mod.docname == docname:
- del self.modules[modname]
-
- def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
- # XXX check duplicates?
- for fullname, obj in otherdata['objects'].items():
- if obj.docname in docnames:
- self.objects[fullname] = obj
- for modname, mod in otherdata['modules'].items():
- if mod.docname in docnames:
- self.modules[modname] = mod
-
- def find_obj(self, env: BuildEnvironment, modname: str, classname: str,
- name: str, type: str | None, searchmode: int = 0,
- ) -> list[tuple[str, ObjectEntry]]:
- """Find a Python object for "name", perhaps using the given module
- and/or classname. Returns a list of (name, object entry) tuples.
- """
- # skip parens
- if name[-2:] == '()':
- name = name[:-2]
-
- if not name:
- return []
-
- matches: list[tuple[str, ObjectEntry]] = []
-
- newname = None
- if searchmode == 1:
- if type is None:
- objtypes: list[str] | None = list(self.object_types)
- else:
- objtypes = self.objtypes_for_role(type)
- if objtypes is not None:
- if modname and classname:
- fullname = modname + '.' + classname + '.' + name
- if fullname in self.objects and self.objects[fullname].objtype in objtypes:
- newname = fullname
- if not newname:
- if modname and modname + '.' + name in self.objects and \
- self.objects[modname + '.' + name].objtype in objtypes:
- newname = modname + '.' + name
- elif name in self.objects and self.objects[name].objtype in objtypes:
- newname = name
- else:
- # "fuzzy" searching mode
- searchname = '.' + name
- matches = [(oname, self.objects[oname]) for oname in self.objects
- if oname.endswith(searchname) and
- self.objects[oname].objtype in objtypes]
- else:
- # NOTE: searching for exact match, object type is not considered
- if name in self.objects:
- newname = name
- elif type == 'mod':
- # only exact matches allowed for modules
- return []
- elif classname and classname + '.' + name in self.objects:
- newname = classname + '.' + name
- elif modname and modname + '.' + name in self.objects:
- newname = modname + '.' + name
- elif modname and classname and \
- modname + '.' + classname + '.' + name in self.objects:
- newname = modname + '.' + classname + '.' + name
- if newname is not None:
- matches.append((newname, self.objects[newname]))
- return matches
-
- def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- type: str, target: str, node: pending_xref, contnode: Element,
- ) -> Element | None:
- modname = node.get('py:module')
- clsname = node.get('py:class')
- searchmode = 1 if node.hasattr('refspecific') else 0
- matches = self.find_obj(env, modname, clsname, target,
- type, searchmode)
-
- if not matches and type == 'attr':
- # fallback to meth (for property; Sphinx 2.4.x)
- # this ensures that `:attr:` role continues to refer to the old property entry
- # that defined by ``method`` directive in old reST files.
- matches = self.find_obj(env, modname, clsname, target, 'meth', searchmode)
- if not matches and type == 'meth':
- # fallback to attr (for property)
- # this ensures that `:meth:` in the old reST files can refer to the property
- # entry that defined by ``property`` directive.
- #
- # Note: _prop is a secret role only for internal look-up.
- matches = self.find_obj(env, modname, clsname, target, '_prop', searchmode)
-
- if not matches:
- return None
- elif len(matches) > 1:
- canonicals = [m for m in matches if not m[1].aliased]
- if len(canonicals) == 1:
- matches = canonicals
- else:
- logger.warning(__('more than one target found for cross-reference %r: %s'),
- target, ', '.join(match[0] for match in matches),
- type='ref', subtype='python', location=node)
- name, obj = matches[0]
-
- if obj[2] == 'module':
- return self._make_module_refnode(builder, fromdocname, name, contnode)
- else:
- # determine the content of the reference by conditions
- content = find_pending_xref_condition(node, 'resolved')
- if content:
- children = content.children
- else:
- # if not found, use contnode
- children = [contnode]
-
- return make_refnode(builder, fromdocname, obj[0], obj[1], children, name)
-
- def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
- target: str, node: pending_xref, contnode: Element,
- ) -> list[tuple[str, Element]]:
- modname = node.get('py:module')
- clsname = node.get('py:class')
- results: list[tuple[str, Element]] = []
-
- # always search in "refspecific" mode with the :any: role
- matches = self.find_obj(env, modname, clsname, target, None, 1)
- multiple_matches = len(matches) > 1
-
- for name, obj in matches:
-
- if multiple_matches and obj.aliased:
- # Skip duplicated matches
- continue
-
- if obj[2] == 'module':
- results.append(('py:mod',
- self._make_module_refnode(builder, fromdocname,
- name, contnode)))
- else:
- # determine the content of the reference by conditions
- content = find_pending_xref_condition(node, 'resolved')
- if content:
- children = content.children
- else:
- # if not found, use contnode
- children = [contnode]
-
- role = 'py:' + self.role_for_objtype(obj[2]) # type: ignore[operator]
- results.append((role, make_refnode(builder, fromdocname, obj[0], obj[1],
- children, name)))
- return results
-
- def _make_module_refnode(self, builder: Builder, fromdocname: str, name: str,
- contnode: Node) -> Element:
- # get additional info for modules
- module = self.modules[name]
- title = name
- if module.synopsis:
- title += ': ' + module.synopsis
- if module.deprecated:
- title += _(' (deprecated)')
- if module.platform:
- title += ' (' + module.platform + ')'
- return make_refnode(builder, fromdocname, module.docname, module.node_id,
- contnode, title)
-
- def get_objects(self) -> Iterator[tuple[str, str, str, str, str, int]]:
- for modname, mod in self.modules.items():
- yield (modname, modname, 'module', mod.docname, mod.node_id, 0)
- for refname, obj in self.objects.items():
- if obj.objtype != 'module': # modules are already handled
- if obj.aliased:
- # aliased names are not full-text searchable.
- yield (refname, refname, obj.objtype, obj.docname, obj.node_id, -1)
- else:
- yield (refname, refname, obj.objtype, obj.docname, obj.node_id, 1)
-
- def get_full_qualified_name(self, node: Element) -> str | None:
- modname = node.get('py:module')
- clsname = node.get('py:class')
- target = node.get('reftarget')
- if target is None:
- return None
- else:
- return '.'.join(filter(None, [modname, clsname, target]))
-
-
-def builtin_resolver(app: Sphinx, env: BuildEnvironment,
- node: pending_xref, contnode: Element) -> Element | None:
- """Do not emit nitpicky warnings for built-in types."""
- def istyping(s: str) -> bool:
- if s.startswith('typing.'):
- s = s.split('.', 1)[1]
-
- return s in typing.__all__
-
- if node.get('refdomain') != 'py':
- return None
- elif node.get('reftype') in ('class', 'obj') and node.get('reftarget') == 'None':
- return contnode
- elif node.get('reftype') in ('class', 'obj', 'exc'):
- reftarget = node.get('reftarget')
- if inspect.isclass(getattr(builtins, reftarget, None)):
- # built-in class
- return contnode
- if istyping(reftarget):
- # typing class
- return contnode
-
- return None
-
-
-def setup(app: Sphinx) -> dict[str, Any]:
- app.setup_extension('sphinx.directives')
-
- app.add_domain(PythonDomain)
- app.add_config_value('python_use_unqualified_type_names', False, 'env')
- app.add_config_value('python_maximum_signature_line_length', None, 'env',
- types={int, None})
- app.add_config_value('python_display_short_literal_types', False, 'env')
- app.connect('object-description-transform', filter_meta_fields)
- app.connect('missing-reference', builtin_resolver, priority=900)
-
- return {
- 'version': 'builtin',
- 'env_version': 4,
- 'parallel_read_safe': True,
- 'parallel_write_safe': True,
- }
diff --git a/sphinx/domains/python/__init__.py b/sphinx/domains/python/__init__.py
new file mode 100644
index 0000000..ca3eec0
--- /dev/null
+++ b/sphinx/domains/python/__init__.py
@@ -0,0 +1,904 @@
+"""The Python domain."""
+
+from __future__ import annotations
+
+import builtins
+import inspect
+import typing
+from typing import TYPE_CHECKING, Any, ClassVar, NamedTuple, cast
+
+from docutils import nodes
+from docutils.parsers.rst import directives
+
+from sphinx import addnodes
+from sphinx.domains import Domain, Index, IndexEntry, ObjType
+from sphinx.domains.python._annotations import _parse_annotation
+from sphinx.domains.python._object import PyObject
+from sphinx.locale import _, __
+from sphinx.roles import XRefRole
+from sphinx.util import logging
+from sphinx.util.docutils import SphinxDirective
+from sphinx.util.nodes import (
+ find_pending_xref_condition,
+ make_id,
+ make_refnode,
+ nested_parse_with_titles,
+)
+
+if TYPE_CHECKING:
+ from collections.abc import Iterable, Iterator
+
+ from docutils.nodes import Element, Node
+
+ from sphinx.addnodes import desc_signature, pending_xref
+ from sphinx.application import Sphinx
+ from sphinx.builders import Builder
+ from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
+
+# re-export objects for backwards compatibility
+# xref https://github.com/sphinx-doc/sphinx/issues/12295
+from sphinx.domains.python._annotations import ( # NoQA: F401
+ _parse_arglist, # for sphinx-immaterial
+ type_to_xref,
+)
+from sphinx.domains.python._object import ( # NoQA: F401
+ PyField,
+ PyGroupedField,
+ PyTypedField,
+ PyXrefMixin,
+ py_sig_re,
+)
+
+logger = logging.getLogger(__name__)
+
+pairindextypes = {
+ 'module': 'module',
+ 'keyword': 'keyword',
+ 'operator': 'operator',
+ 'object': 'object',
+ 'exception': 'exception',
+ 'statement': 'statement',
+ 'builtin': 'built-in function',
+}
+
+
+class ObjectEntry(NamedTuple):
+ docname: str
+ node_id: str
+ objtype: str
+ aliased: bool
+
+
+class ModuleEntry(NamedTuple):
+ docname: str
+ node_id: str
+ synopsis: str
+ platform: str
+ deprecated: bool
+
+
+class PyFunction(PyObject):
+ """Description of a function."""
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy() # noqa: F821
+ option_spec.update({
+ 'async': directives.flag,
+ })
+
+ def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
+ if 'async' in self.options:
+ return [addnodes.desc_sig_keyword('', 'async'),
+ addnodes.desc_sig_space()]
+ else:
+ return []
+
+ def needs_arglist(self) -> bool:
+ return True
+
+ def add_target_and_index(self, name_cls: tuple[str, str], sig: str,
+ signode: desc_signature) -> None:
+ super().add_target_and_index(name_cls, sig, signode)
+ if 'no-index-entry' not in self.options:
+ modname = self.options.get('module', self.env.ref_context.get('py:module'))
+ node_id = signode['ids'][0]
+
+ name, cls = name_cls
+ if modname:
+ text = _('%s() (in module %s)') % (name, modname)
+ self.indexnode['entries'].append(('single', text, node_id, '', None))
+ else:
+ text = f'built-in function; {name}()'
+ self.indexnode['entries'].append(('pair', text, node_id, '', None))
+
+ def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
+ # add index in own add_target_and_index() instead.
+ return ''
+
+
+class PyDecoratorFunction(PyFunction):
+ """Description of a decorator."""
+
+ def run(self) -> list[Node]:
+ # a decorator function is a function after all
+ self.name = 'py:function'
+ return super().run()
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
+ ret = super().handle_signature(sig, signode)
+ signode.insert(0, addnodes.desc_addname('@', '@'))
+ return ret
+
+ def needs_arglist(self) -> bool:
+ return False
+
+
+class PyVariable(PyObject):
+ """Description of a variable."""
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy()
+ option_spec.update({
+ 'type': directives.unchanged,
+ 'value': directives.unchanged,
+ })
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
+ fullname, prefix = super().handle_signature(sig, signode)
+
+ typ = self.options.get('type')
+ if typ:
+ annotations = _parse_annotation(typ, self.env)
+ signode += addnodes.desc_annotation(typ, '',
+ addnodes.desc_sig_punctuation('', ':'),
+ addnodes.desc_sig_space(), *annotations)
+
+ value = self.options.get('value')
+ if value:
+ signode += addnodes.desc_annotation(value, '',
+ addnodes.desc_sig_space(),
+ addnodes.desc_sig_punctuation('', '='),
+ addnodes.desc_sig_space(),
+ nodes.Text(value))
+
+ return fullname, prefix
+
+ def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
+ name, cls = name_cls
+ if modname:
+ return _('%s (in module %s)') % (name, modname)
+ else:
+ return _('%s (built-in variable)') % name
+
+
+class PyClasslike(PyObject):
+ """
+ Description of a class-like object (classes, interfaces, exceptions).
+ """
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy()
+ option_spec.update({
+ 'final': directives.flag,
+ })
+
+ allow_nesting = True
+
+ def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
+ if 'final' in self.options:
+ return [nodes.Text('final'), addnodes.desc_sig_space(),
+ nodes.Text(self.objtype), addnodes.desc_sig_space()]
+ else:
+ return [nodes.Text(self.objtype), addnodes.desc_sig_space()]
+
+ def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
+ if self.objtype == 'class':
+ if not modname:
+ return _('%s (built-in class)') % name_cls[0]
+ return _('%s (class in %s)') % (name_cls[0], modname)
+ elif self.objtype == 'exception':
+ return name_cls[0]
+ else:
+ return ''
+
+
+class PyMethod(PyObject):
+ """Description of a method."""
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy()
+ option_spec.update({
+ 'abstractmethod': directives.flag,
+ 'async': directives.flag,
+ 'classmethod': directives.flag,
+ 'final': directives.flag,
+ 'staticmethod': directives.flag,
+ })
+
+ def needs_arglist(self) -> bool:
+ return True
+
+ def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
+ prefix: list[nodes.Node] = []
+ if 'final' in self.options:
+ prefix.append(nodes.Text('final'))
+ prefix.append(addnodes.desc_sig_space())
+ if 'abstractmethod' in self.options:
+ prefix.append(nodes.Text('abstract'))
+ prefix.append(addnodes.desc_sig_space())
+ if 'async' in self.options:
+ prefix.append(nodes.Text('async'))
+ prefix.append(addnodes.desc_sig_space())
+ if 'classmethod' in self.options:
+ prefix.append(nodes.Text('classmethod'))
+ prefix.append(addnodes.desc_sig_space())
+ if 'staticmethod' in self.options:
+ prefix.append(nodes.Text('static'))
+ prefix.append(addnodes.desc_sig_space())
+ return prefix
+
+ def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
+ name, cls = name_cls
+ try:
+ clsname, methname = name.rsplit('.', 1)
+ if modname and self.env.config.add_module_names:
+ clsname = f'{modname}.{clsname}'
+ except ValueError:
+ if modname:
+ return _('%s() (in module %s)') % (name, modname)
+ else:
+ return '%s()' % name
+
+ if 'classmethod' in self.options:
+ return _('%s() (%s class method)') % (methname, clsname)
+ elif 'staticmethod' in self.options:
+ return _('%s() (%s static method)') % (methname, clsname)
+ else:
+ return _('%s() (%s method)') % (methname, clsname)
+
+
+class PyClassMethod(PyMethod):
+ """Description of a classmethod."""
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy()
+
+ def run(self) -> list[Node]:
+ self.name = 'py:method'
+ self.options['classmethod'] = True
+
+ return super().run()
+
+
+class PyStaticMethod(PyMethod):
+ """Description of a staticmethod."""
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy()
+
+ def run(self) -> list[Node]:
+ self.name = 'py:method'
+ self.options['staticmethod'] = True
+
+ return super().run()
+
+
+class PyDecoratorMethod(PyMethod):
+ """Description of a decoratormethod."""
+
+ def run(self) -> list[Node]:
+ self.name = 'py:method'
+ return super().run()
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
+ ret = super().handle_signature(sig, signode)
+ signode.insert(0, addnodes.desc_addname('@', '@'))
+ return ret
+
+ def needs_arglist(self) -> bool:
+ return False
+
+
+class PyAttribute(PyObject):
+ """Description of an attribute."""
+
+ option_spec: ClassVar[OptionSpec] = PyObject.option_spec.copy()
+ option_spec.update({
+ 'type': directives.unchanged,
+ 'value': directives.unchanged,
+ })
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
+ fullname, prefix = super().handle_signature(sig, signode)
+
+ typ = self.options.get('type')
+ if typ:
+ annotations = _parse_annotation(typ, self.env)
+ signode += addnodes.desc_annotation(typ, '',
+ addnodes.desc_sig_punctuation('', ':'),
+ addnodes.desc_sig_space(),
+ *annotations)
+
+ value = self.options.get('value')
+ if value:
+ signode += addnodes.desc_annotation(value, '',
+ addnodes.desc_sig_space(),
+ addnodes.desc_sig_punctuation('', '='),
+ addnodes.desc_sig_space(),
+ nodes.Text(value))
+
+ return fullname, prefix
+
+ def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
+ name, cls = name_cls
+ try:
+ clsname, attrname = name.rsplit('.', 1)
+ if modname and self.env.config.add_module_names:
+ clsname = f'{modname}.{clsname}'
+ except ValueError:
+ if modname:
+ return _('%s (in module %s)') % (name, modname)
+ else:
+ return name
+
+ return _('%s (%s attribute)') % (attrname, clsname)
+
+
+class PyProperty(PyObject):
+ """Description of an attribute."""
+
+ option_spec = PyObject.option_spec.copy()
+ option_spec.update({
+ 'abstractmethod': directives.flag,
+ 'classmethod': directives.flag,
+ 'type': directives.unchanged,
+ })
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
+ fullname, prefix = super().handle_signature(sig, signode)
+
+ typ = self.options.get('type')
+ if typ:
+ annotations = _parse_annotation(typ, self.env)
+ signode += addnodes.desc_annotation(typ, '',
+ addnodes.desc_sig_punctuation('', ':'),
+ addnodes.desc_sig_space(),
+ *annotations)
+
+ return fullname, prefix
+
+ def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
+ prefix: list[nodes.Node] = []
+ if 'abstractmethod' in self.options:
+ prefix.append(nodes.Text('abstract'))
+ prefix.append(addnodes.desc_sig_space())
+ if 'classmethod' in self.options:
+ prefix.append(nodes.Text('class'))
+ prefix.append(addnodes.desc_sig_space())
+
+ prefix.append(nodes.Text('property'))
+ prefix.append(addnodes.desc_sig_space())
+ return prefix
+
+ def get_index_text(self, modname: str, name_cls: tuple[str, str]) -> str:
+ name, cls = name_cls
+ try:
+ clsname, attrname = name.rsplit('.', 1)
+ if modname and self.env.config.add_module_names:
+ clsname = f'{modname}.{clsname}'
+ except ValueError:
+ if modname:
+ return _('%s (in module %s)') % (name, modname)
+ else:
+ return name
+
+ return _('%s (%s property)') % (attrname, clsname)
+
+
+class PyModule(SphinxDirective):
+ """
+ Directive to mark description of a new module.
+ """
+
+ has_content = True
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = False
+ option_spec: ClassVar[OptionSpec] = {
+ 'platform': lambda x: x,
+ 'synopsis': lambda x: x,
+ 'no-index': directives.flag,
+ 'no-contents-entry': directives.flag,
+ 'no-typesetting': directives.flag,
+ 'noindex': directives.flag,
+ 'nocontentsentry': directives.flag,
+ 'deprecated': directives.flag,
+ }
+
+ def run(self) -> list[Node]:
+ domain = cast(PythonDomain, self.env.get_domain('py'))
+
+ modname = self.arguments[0].strip()
+ no_index = 'no-index' in self.options or 'noindex' in self.options
+ self.env.ref_context['py:module'] = modname
+
+ content_node: Element = nodes.section()
+ # necessary so that the child nodes get the right source/line set
+ content_node.document = self.state.document
+ nested_parse_with_titles(self.state, self.content, content_node, self.content_offset)
+
+ ret: list[Node] = []
+ if not no_index:
+ # note module to the domain
+ node_id = make_id(self.env, self.state.document, 'module', modname)
+ target = nodes.target('', '', ids=[node_id], ismod=True)
+ self.set_source_info(target)
+ self.state.document.note_explicit_target(target)
+
+ domain.note_module(modname,
+ node_id,
+ self.options.get('synopsis', ''),
+ self.options.get('platform', ''),
+ 'deprecated' in self.options)
+ domain.note_object(modname, 'module', node_id, location=target)
+
+ # the platform and synopsis aren't printed; in fact, they are only
+ # used in the modindex currently
+ indextext = f'module; {modname}'
+ inode = addnodes.index(entries=[('pair', indextext, node_id, '', None)])
+ # The node order is: index node first, then target node.
+ ret.append(inode)
+ ret.append(target)
+ ret.extend(content_node.children)
+ return ret
+
+
+class PyCurrentModule(SphinxDirective):
+ """
+ This directive is just to tell Sphinx that we're documenting
+ stuff in module foo, but links to module foo won't lead here.
+ """
+
+ has_content = False
+ required_arguments = 1
+ optional_arguments = 0
+ final_argument_whitespace = False
+ option_spec: ClassVar[OptionSpec] = {}
+
+ def run(self) -> list[Node]:
+ modname = self.arguments[0].strip()
+ if modname == 'None':
+ self.env.ref_context.pop('py:module', None)
+ else:
+ self.env.ref_context['py:module'] = modname
+ return []
+
+
+class PyXRefRole(XRefRole):
+ def process_link(self, env: BuildEnvironment, refnode: Element,
+ has_explicit_title: bool, title: str, target: str) -> tuple[str, str]:
+ refnode['py:module'] = env.ref_context.get('py:module')
+ refnode['py:class'] = env.ref_context.get('py:class')
+ if not has_explicit_title:
+ title = title.lstrip('.') # only has a meaning for the target
+ target = target.lstrip('~') # only has a meaning for the title
+ # if the first character is a tilde, don't display the module/class
+ # parts of the contents
+ if title[0:1] == '~':
+ title = title[1:]
+ dot = title.rfind('.')
+ if dot != -1:
+ title = title[dot + 1:]
+ # if the first character is a dot, search more specific namespaces first
+ # else search builtins first
+ if target[0:1] == '.':
+ target = target[1:]
+ refnode['refspecific'] = True
+ return title, target
+
+
+def filter_meta_fields(app: Sphinx, domain: str, objtype: str, content: Element) -> None:
+ """Filter ``:meta:`` field from its docstring."""
+ if domain != 'py':
+ return
+
+ for node in content:
+ if isinstance(node, nodes.field_list):
+ fields = cast(list[nodes.field], node)
+ # removing list items while iterating the list needs reversed()
+ for field in reversed(fields):
+ field_name = cast(nodes.field_body, field[0]).astext().strip()
+ if field_name == 'meta' or field_name.startswith('meta '):
+ node.remove(field)
+
+
+class PythonModuleIndex(Index):
+ """
+ Index subclass to provide the Python module index.
+ """
+
+ name = 'modindex'
+ localname = _('Python Module Index')
+ shortname = _('modules')
+
+ def generate(self, docnames: Iterable[str] | None = None,
+ ) -> tuple[list[tuple[str, list[IndexEntry]]], bool]:
+ content: dict[str, list[IndexEntry]] = {}
+ # list of prefixes to ignore
+ ignores: list[str] = self.domain.env.config['modindex_common_prefix']
+ ignores = sorted(ignores, key=len, reverse=True)
+ # list of all modules, sorted by module name
+ modules = sorted(self.domain.data['modules'].items(),
+ key=lambda x: x[0].lower())
+ # sort out collapsible modules
+ prev_modname = ''
+ num_toplevels = 0
+ for modname, (docname, node_id, synopsis, platforms, deprecated) in modules:
+ if docnames and docname not in docnames:
+ continue
+
+ for ignore in ignores:
+ if modname.startswith(ignore):
+ modname = modname[len(ignore):]
+ stripped = ignore
+ break
+ else:
+ stripped = ''
+
+ # we stripped the whole module name?
+ if not modname:
+ modname, stripped = stripped, ''
+
+ entries = content.setdefault(modname[0].lower(), [])
+
+ package = modname.split('.')[0]
+ if package != modname:
+ # it's a submodule
+ if prev_modname == package:
+ # first submodule - make parent a group head
+ if entries:
+ last = entries[-1]
+ entries[-1] = IndexEntry(last[0], 1, last[2], last[3],
+ last[4], last[5], last[6])
+ elif not prev_modname.startswith(package):
+ # submodule without parent in list, add dummy entry
+ entries.append(IndexEntry(stripped + package, 1, '', '', '', '', ''))
+ subtype = 2
+ else:
+ num_toplevels += 1
+ subtype = 0
+
+ qualifier = _('Deprecated') if deprecated else ''
+ entries.append(IndexEntry(stripped + modname, subtype, docname,
+ node_id, platforms, qualifier, synopsis))
+ prev_modname = modname
+
+ # apply heuristics when to collapse modindex at page load:
+ # only collapse if number of toplevel modules is larger than
+ # number of submodules
+ collapse = len(modules) - num_toplevels < num_toplevels
+
+ # sort by first letter
+ sorted_content = sorted(content.items())
+
+ return sorted_content, collapse
+
+
+class PythonDomain(Domain):
+ """Python language domain."""
+
+ name = 'py'
+ label = 'Python'
+ object_types: dict[str, ObjType] = {
+ 'function': ObjType(_('function'), 'func', 'obj'),
+ 'data': ObjType(_('data'), 'data', 'obj'),
+ 'class': ObjType(_('class'), 'class', 'exc', 'obj'),
+ 'exception': ObjType(_('exception'), 'exc', 'class', 'obj'),
+ 'method': ObjType(_('method'), 'meth', 'obj'),
+ 'classmethod': ObjType(_('class method'), 'meth', 'obj'),
+ 'staticmethod': ObjType(_('static method'), 'meth', 'obj'),
+ 'attribute': ObjType(_('attribute'), 'attr', 'obj'),
+ 'property': ObjType(_('property'), 'attr', '_prop', 'obj'),
+ 'module': ObjType(_('module'), 'mod', 'obj'),
+ }
+
+ directives = {
+ 'function': PyFunction,
+ 'data': PyVariable,
+ 'class': PyClasslike,
+ 'exception': PyClasslike,
+ 'method': PyMethod,
+ 'classmethod': PyClassMethod,
+ 'staticmethod': PyStaticMethod,
+ 'attribute': PyAttribute,
+ 'property': PyProperty,
+ 'module': PyModule,
+ 'currentmodule': PyCurrentModule,
+ 'decorator': PyDecoratorFunction,
+ 'decoratormethod': PyDecoratorMethod,
+ }
+ roles = {
+ 'data': PyXRefRole(),
+ 'exc': PyXRefRole(),
+ 'func': PyXRefRole(fix_parens=True),
+ 'class': PyXRefRole(),
+ 'const': PyXRefRole(),
+ 'attr': PyXRefRole(),
+ 'meth': PyXRefRole(fix_parens=True),
+ 'mod': PyXRefRole(),
+ 'obj': PyXRefRole(),
+ }
+ initial_data: dict[str, dict[str, tuple[Any]]] = {
+ 'objects': {}, # fullname -> docname, objtype
+ 'modules': {}, # modname -> docname, synopsis, platform, deprecated
+ }
+ indices = [
+ PythonModuleIndex,
+ ]
+
+ @property
+ def objects(self) -> dict[str, ObjectEntry]:
+ return self.data.setdefault('objects', {}) # fullname -> ObjectEntry
+
+ def note_object(self, name: str, objtype: str, node_id: str,
+ aliased: bool = False, location: Any = None) -> None:
+ """Note a python object for cross reference.
+
+ .. versionadded:: 2.1
+ """
+ if name in self.objects:
+ other = self.objects[name]
+ if other.aliased and aliased is False:
+ # The original definition found. Override it!
+ pass
+ elif other.aliased is False and aliased:
+ # The original definition is already registered.
+ return
+ else:
+ # duplicated
+ logger.warning(__('duplicate object description of %s, '
+ 'other instance in %s, use :no-index: for one of them'),
+ name, other.docname, location=location)
+ self.objects[name] = ObjectEntry(self.env.docname, node_id, objtype, aliased)
+
+ @property
+ def modules(self) -> dict[str, ModuleEntry]:
+ return self.data.setdefault('modules', {}) # modname -> ModuleEntry
+
+ def note_module(self, name: str, node_id: str, synopsis: str,
+ platform: str, deprecated: bool) -> None:
+ """Note a python module for cross reference.
+
+ .. versionadded:: 2.1
+ """
+ self.modules[name] = ModuleEntry(self.env.docname, node_id,
+ synopsis, platform, deprecated)
+
+ def clear_doc(self, docname: str) -> None:
+ for fullname, obj in list(self.objects.items()):
+ if obj.docname == docname:
+ del self.objects[fullname]
+ for modname, mod in list(self.modules.items()):
+ if mod.docname == docname:
+ del self.modules[modname]
+
+ def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
+ # XXX check duplicates?
+ for fullname, obj in otherdata['objects'].items():
+ if obj.docname in docnames:
+ self.objects[fullname] = obj
+ for modname, mod in otherdata['modules'].items():
+ if mod.docname in docnames:
+ self.modules[modname] = mod
+
+ def find_obj(self, env: BuildEnvironment, modname: str, classname: str,
+ name: str, type: str | None, searchmode: int = 0,
+ ) -> list[tuple[str, ObjectEntry]]:
+ """Find a Python object for "name", perhaps using the given module
+ and/or classname. Returns a list of (name, object entry) tuples.
+ """
+ # skip parens
+ if name[-2:] == '()':
+ name = name[:-2]
+
+ if not name:
+ return []
+
+ matches: list[tuple[str, ObjectEntry]] = []
+
+ newname = None
+ if searchmode == 1:
+ if type is None:
+ objtypes: list[str] | None = list(self.object_types)
+ else:
+ objtypes = self.objtypes_for_role(type)
+ if objtypes is not None:
+ if modname and classname:
+ fullname = modname + '.' + classname + '.' + name
+ if fullname in self.objects and self.objects[fullname].objtype in objtypes:
+ newname = fullname
+ if not newname:
+ if modname and modname + '.' + name in self.objects and \
+ self.objects[modname + '.' + name].objtype in objtypes:
+ newname = modname + '.' + name
+ elif name in self.objects and self.objects[name].objtype in objtypes:
+ newname = name
+ else:
+ # "fuzzy" searching mode
+ searchname = '.' + name
+ matches = [(oname, self.objects[oname]) for oname in self.objects
+ if oname.endswith(searchname) and
+ self.objects[oname].objtype in objtypes]
+ else:
+ # NOTE: searching for exact match, object type is not considered
+ if name in self.objects:
+ newname = name
+ elif type == 'mod':
+ # only exact matches allowed for modules
+ return []
+ elif classname and classname + '.' + name in self.objects:
+ newname = classname + '.' + name
+ elif modname and modname + '.' + name in self.objects:
+ newname = modname + '.' + name
+ elif modname and classname and \
+ modname + '.' + classname + '.' + name in self.objects:
+ newname = modname + '.' + classname + '.' + name
+ if newname is not None:
+ matches.append((newname, self.objects[newname]))
+ return matches
+
+ def resolve_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ type: str, target: str, node: pending_xref, contnode: Element,
+ ) -> Element | None:
+ modname = node.get('py:module')
+ clsname = node.get('py:class')
+ searchmode = 1 if node.hasattr('refspecific') else 0
+ matches = self.find_obj(env, modname, clsname, target,
+ type, searchmode)
+
+ if not matches and type == 'attr':
+ # fallback to meth (for property; Sphinx 2.4.x)
+ # this ensures that `:attr:` role continues to refer to the old property entry
+ # that defined by ``method`` directive in old reST files.
+ matches = self.find_obj(env, modname, clsname, target, 'meth', searchmode)
+ if not matches and type == 'meth':
+ # fallback to attr (for property)
+ # this ensures that `:meth:` in the old reST files can refer to the property
+ # entry that defined by ``property`` directive.
+ #
+ # Note: _prop is a secret role only for internal look-up.
+ matches = self.find_obj(env, modname, clsname, target, '_prop', searchmode)
+
+ if not matches:
+ return None
+ elif len(matches) > 1:
+ canonicals = [m for m in matches if not m[1].aliased]
+ if len(canonicals) == 1:
+ matches = canonicals
+ else:
+ logger.warning(__('more than one target found for cross-reference %r: %s'),
+ target, ', '.join(match[0] for match in matches),
+ type='ref', subtype='python', location=node)
+ name, obj = matches[0]
+
+ if obj[2] == 'module':
+ return self._make_module_refnode(builder, fromdocname, name, contnode)
+ else:
+ # determine the content of the reference by conditions
+ content = find_pending_xref_condition(node, 'resolved')
+ if content:
+ children = content.children
+ else:
+ # if not found, use contnode
+ children = [contnode]
+
+ return make_refnode(builder, fromdocname, obj[0], obj[1], children, name)
+
+ def resolve_any_xref(self, env: BuildEnvironment, fromdocname: str, builder: Builder,
+ target: str, node: pending_xref, contnode: Element,
+ ) -> list[tuple[str, Element]]:
+ modname = node.get('py:module')
+ clsname = node.get('py:class')
+ results: list[tuple[str, Element]] = []
+
+ # always search in "refspecific" mode with the :any: role
+ matches = self.find_obj(env, modname, clsname, target, None, 1)
+ multiple_matches = len(matches) > 1
+
+ for name, obj in matches:
+
+ if multiple_matches and obj.aliased:
+ # Skip duplicated matches
+ continue
+
+ if obj[2] == 'module':
+ results.append(('py:mod',
+ self._make_module_refnode(builder, fromdocname,
+ name, contnode)))
+ else:
+ # determine the content of the reference by conditions
+ content = find_pending_xref_condition(node, 'resolved')
+ if content:
+ children = content.children
+ else:
+ # if not found, use contnode
+ children = [contnode]
+
+ role = 'py:' + self.role_for_objtype(obj[2]) # type: ignore[operator]
+ results.append((role, make_refnode(builder, fromdocname, obj[0], obj[1],
+ children, name)))
+ return results
+
+ def _make_module_refnode(self, builder: Builder, fromdocname: str, name: str,
+ contnode: Node) -> Element:
+ # get additional info for modules
+ module = self.modules[name]
+ title = name
+ if module.synopsis:
+ title += ': ' + module.synopsis
+ if module.deprecated:
+ title += _(' (deprecated)')
+ if module.platform:
+ title += ' (' + module.platform + ')'
+ return make_refnode(builder, fromdocname, module.docname, module.node_id,
+ contnode, title)
+
+ def get_objects(self) -> Iterator[tuple[str, str, str, str, str, int]]:
+ for modname, mod in self.modules.items():
+ yield (modname, modname, 'module', mod.docname, mod.node_id, 0)
+ for refname, obj in self.objects.items():
+ if obj.objtype != 'module': # modules are already handled
+ if obj.aliased:
+ # aliased names are not full-text searchable.
+ yield (refname, refname, obj.objtype, obj.docname, obj.node_id, -1)
+ else:
+ yield (refname, refname, obj.objtype, obj.docname, obj.node_id, 1)
+
+ def get_full_qualified_name(self, node: Element) -> str | None:
+ modname = node.get('py:module')
+ clsname = node.get('py:class')
+ target = node.get('reftarget')
+ if target is None:
+ return None
+ else:
+ return '.'.join(filter(None, [modname, clsname, target]))
+
+
+def builtin_resolver(app: Sphinx, env: BuildEnvironment,
+ node: pending_xref, contnode: Element) -> Element | None:
+ """Do not emit nitpicky warnings for built-in types."""
+ def istyping(s: str) -> bool:
+ if s.startswith('typing.'):
+ s = s.split('.', 1)[1]
+
+ return s in typing.__all__
+
+ if node.get('refdomain') != 'py':
+ return None
+ elif node.get('reftype') in ('class', 'obj') and node.get('reftarget') == 'None':
+ return contnode
+ elif node.get('reftype') in ('class', 'obj', 'exc'):
+ reftarget = node.get('reftarget')
+ if inspect.isclass(getattr(builtins, reftarget, None)):
+ # built-in class
+ return contnode
+ if istyping(reftarget):
+ # typing class
+ return contnode
+
+ return None
+
+
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.setup_extension('sphinx.directives')
+
+ app.add_domain(PythonDomain)
+ app.add_config_value('python_use_unqualified_type_names', False, 'env')
+ app.add_config_value(
+ 'python_maximum_signature_line_length', None, 'env', {int, type(None)},
+ )
+ app.add_config_value('python_display_short_literal_types', False, 'env')
+ app.connect('object-description-transform', filter_meta_fields)
+ app.connect('missing-reference', builtin_resolver, priority=900)
+
+ return {
+ 'version': 'builtin',
+ 'env_version': 4,
+ 'parallel_read_safe': True,
+ 'parallel_write_safe': True,
+ }
diff --git a/sphinx/domains/python/_annotations.py b/sphinx/domains/python/_annotations.py
new file mode 100644
index 0000000..5d4803c
--- /dev/null
+++ b/sphinx/domains/python/_annotations.py
@@ -0,0 +1,507 @@
+from __future__ import annotations
+
+import ast
+import functools
+import operator
+import token
+from collections import deque
+from inspect import Parameter
+from typing import TYPE_CHECKING, Any
+
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.addnodes import desc_signature, pending_xref, pending_xref_condition
+from sphinx.pycode.parser import Token, TokenProcessor
+from sphinx.util.inspect import signature_from_str
+
+if TYPE_CHECKING:
+ from collections.abc import Iterable, Iterator
+
+ from docutils.nodes import Element, Node
+
+ from sphinx.environment import BuildEnvironment
+
+
+def parse_reftarget(reftarget: str, suppress_prefix: bool = False,
+ ) -> tuple[str, str, str, bool]:
+ """Parse a type string and return (reftype, reftarget, title, refspecific flag)"""
+ refspecific = False
+ if reftarget.startswith('.'):
+ reftarget = reftarget[1:]
+ title = reftarget
+ refspecific = True
+ elif reftarget.startswith('~'):
+ reftarget = reftarget[1:]
+ title = reftarget.split('.')[-1]
+ elif suppress_prefix:
+ title = reftarget.split('.')[-1]
+ elif reftarget.startswith('typing.'):
+ title = reftarget[7:]
+ else:
+ title = reftarget
+
+ if reftarget == 'None' or reftarget.startswith('typing.'):
+ # typing module provides non-class types. Obj reference is good to refer them.
+ reftype = 'obj'
+ else:
+ reftype = 'class'
+
+ return reftype, reftarget, title, refspecific
+
+
+def type_to_xref(target: str, env: BuildEnvironment, *,
+ suppress_prefix: bool = False) -> addnodes.pending_xref:
+ """Convert a type string to a cross reference node."""
+ if env:
+ kwargs = {'py:module': env.ref_context.get('py:module'),
+ 'py:class': env.ref_context.get('py:class')}
+ else:
+ kwargs = {}
+
+ reftype, target, title, refspecific = parse_reftarget(target, suppress_prefix)
+
+ if env.config.python_use_unqualified_type_names:
+ # Note: It would be better to use qualname to describe the object to support support
+ # nested classes. But python domain can't access the real python object because this
+ # module should work not-dynamically.
+ shortname = title.split('.')[-1]
+ contnodes: list[Node] = [pending_xref_condition('', shortname, condition='resolved'),
+ pending_xref_condition('', title, condition='*')]
+ else:
+ contnodes = [nodes.Text(title)]
+
+ return pending_xref('', *contnodes,
+ refdomain='py', reftype=reftype, reftarget=target,
+ refspecific=refspecific, **kwargs)
+
+
+def _parse_annotation(annotation: str, env: BuildEnvironment) -> list[Node]:
+ """Parse type annotation."""
+ short_literals = env.config.python_display_short_literal_types
+
+ def unparse(node: ast.AST) -> list[Node]:
+ if isinstance(node, ast.Attribute):
+ return [nodes.Text(f"{unparse(node.value)[0]}.{node.attr}")]
+ if isinstance(node, ast.BinOp):
+ result: list[Node] = unparse(node.left)
+ result.extend(unparse(node.op))
+ result.extend(unparse(node.right))
+ return result
+ if isinstance(node, ast.BitOr):
+ return [addnodes.desc_sig_space(),
+ addnodes.desc_sig_punctuation('', '|'),
+ addnodes.desc_sig_space()]
+ if isinstance(node, ast.Constant):
+ if node.value is Ellipsis:
+ return [addnodes.desc_sig_punctuation('', "...")]
+ if isinstance(node.value, bool):
+ return [addnodes.desc_sig_keyword('', repr(node.value))]
+ if isinstance(node.value, int):
+ return [addnodes.desc_sig_literal_number('', repr(node.value))]
+ if isinstance(node.value, str):
+ return [addnodes.desc_sig_literal_string('', repr(node.value))]
+ else:
+ # handles None, which is further handled by type_to_xref later
+ # and fallback for other types that should be converted
+ return [nodes.Text(repr(node.value))]
+ if isinstance(node, ast.Expr):
+ return unparse(node.value)
+ if isinstance(node, ast.Invert):
+ return [addnodes.desc_sig_punctuation('', '~')]
+ if isinstance(node, ast.USub):
+ return [addnodes.desc_sig_punctuation('', '-')]
+ if isinstance(node, ast.List):
+ result = [addnodes.desc_sig_punctuation('', '[')]
+ if node.elts:
+ # check if there are elements in node.elts to only pop the
+ # last element of result if the for-loop was run at least
+ # once
+ for elem in node.elts:
+ result.extend(unparse(elem))
+ result.append(addnodes.desc_sig_punctuation('', ','))
+ result.append(addnodes.desc_sig_space())
+ result.pop()
+ result.pop()
+ result.append(addnodes.desc_sig_punctuation('', ']'))
+ return result
+ if isinstance(node, ast.Module):
+ return functools.reduce(operator.iadd, (unparse(e) for e in node.body), [])
+ if isinstance(node, ast.Name):
+ return [nodes.Text(node.id)]
+ if isinstance(node, ast.Subscript):
+ if getattr(node.value, 'id', '') in {'Optional', 'Union'}:
+ return _unparse_pep_604_annotation(node)
+ if short_literals and getattr(node.value, 'id', '') == 'Literal':
+ return _unparse_pep_604_annotation(node)
+ result = unparse(node.value)
+ result.append(addnodes.desc_sig_punctuation('', '['))
+ result.extend(unparse(node.slice))
+ result.append(addnodes.desc_sig_punctuation('', ']'))
+
+ # Wrap the Text nodes inside brackets by literal node if the subscript is a Literal
+ if result[0] in ('Literal', 'typing.Literal'):
+ for i, subnode in enumerate(result[1:], start=1):
+ if isinstance(subnode, nodes.Text):
+ result[i] = nodes.literal('', '', subnode)
+ return result
+ if isinstance(node, ast.UnaryOp):
+ return unparse(node.op) + unparse(node.operand)
+ if isinstance(node, ast.Tuple):
+ if node.elts:
+ result = []
+ for elem in node.elts:
+ result.extend(unparse(elem))
+ result.append(addnodes.desc_sig_punctuation('', ','))
+ result.append(addnodes.desc_sig_space())
+ result.pop()
+ result.pop()
+ else:
+ result = [addnodes.desc_sig_punctuation('', '('),
+ addnodes.desc_sig_punctuation('', ')')]
+
+ return result
+ raise SyntaxError # unsupported syntax
+
+ def _unparse_pep_604_annotation(node: ast.Subscript) -> list[Node]:
+ subscript = node.slice
+
+ flattened: list[Node] = []
+ if isinstance(subscript, ast.Tuple):
+ flattened.extend(unparse(subscript.elts[0]))
+ for elt in subscript.elts[1:]:
+ flattened.extend(unparse(ast.BitOr()))
+ flattened.extend(unparse(elt))
+ else:
+ # e.g. a Union[] inside an Optional[]
+ flattened.extend(unparse(subscript))
+
+ if getattr(node.value, 'id', '') == 'Optional':
+ flattened.extend(unparse(ast.BitOr()))
+ flattened.append(nodes.Text('None'))
+
+ return flattened
+
+ try:
+ tree = ast.parse(annotation, type_comments=True)
+ result: list[Node] = []
+ for node in unparse(tree):
+ if isinstance(node, nodes.literal):
+ result.append(node[0])
+ elif isinstance(node, nodes.Text) and node.strip():
+ if (result and isinstance(result[-1], addnodes.desc_sig_punctuation) and
+ result[-1].astext() == '~'):
+ result.pop()
+ result.append(type_to_xref(str(node), env, suppress_prefix=True))
+ else:
+ result.append(type_to_xref(str(node), env))
+ else:
+ result.append(node)
+ return result
+ except SyntaxError:
+ return [type_to_xref(annotation, env)]
+
+
+class _TypeParameterListParser(TokenProcessor):
+ def __init__(self, sig: str) -> None:
+ signature = sig.replace('\n', '').strip()
+ super().__init__([signature])
+ # Each item is a tuple (name, kind, default, annotation) mimicking
+ # ``inspect.Parameter`` to allow default values on VAR_POSITIONAL
+ # or VAR_KEYWORD parameters.
+ self.type_params: list[tuple[str, int, Any, Any]] = []
+
+ def fetch_type_param_spec(self) -> list[Token]:
+ tokens = []
+ while current := self.fetch_token():
+ tokens.append(current)
+ for ldelim, rdelim in ('(', ')'), ('{', '}'), ('[', ']'):
+ if current == [token.OP, ldelim]:
+ tokens += self.fetch_until([token.OP, rdelim])
+ break
+ else:
+ if current == token.INDENT:
+ tokens += self.fetch_until(token.DEDENT)
+ elif current.match(
+ [token.OP, ':'], [token.OP, '='], [token.OP, ',']):
+ tokens.pop()
+ break
+ return tokens
+
+ def parse(self) -> None:
+ while current := self.fetch_token():
+ if current == token.NAME:
+ tp_name = current.value.strip()
+ if self.previous and self.previous.match([token.OP, '*'], [token.OP, '**']):
+ if self.previous == [token.OP, '*']:
+ tp_kind = Parameter.VAR_POSITIONAL
+ else:
+ tp_kind = Parameter.VAR_KEYWORD # type: ignore[assignment]
+ else:
+ tp_kind = Parameter.POSITIONAL_OR_KEYWORD # type: ignore[assignment]
+
+ tp_ann: Any = Parameter.empty
+ tp_default: Any = Parameter.empty
+
+ current = self.fetch_token()
+ if current and current.match([token.OP, ':'], [token.OP, '=']):
+ if current == [token.OP, ':']:
+ tokens = self.fetch_type_param_spec()
+ tp_ann = self._build_identifier(tokens)
+
+ if self.current and self.current == [token.OP, '=']:
+ tokens = self.fetch_type_param_spec()
+ tp_default = self._build_identifier(tokens)
+
+ if tp_kind != Parameter.POSITIONAL_OR_KEYWORD and tp_ann != Parameter.empty:
+ msg = ('type parameter bound or constraint is not allowed '
+ f'for {tp_kind.description} parameters')
+ raise SyntaxError(msg)
+
+ type_param = (tp_name, tp_kind, tp_default, tp_ann)
+ self.type_params.append(type_param)
+
+ def _build_identifier(self, tokens: list[Token]) -> str:
+ from itertools import chain, islice
+
+ def triplewise(iterable: Iterable[Token]) -> Iterator[tuple[Token, ...]]:
+ # sliding_window('ABCDEFG', 4) --> ABCD BCDE CDEF DEFG
+ it = iter(iterable)
+ window = deque(islice(it, 3), maxlen=3)
+ if len(window) == 3:
+ yield tuple(window)
+ for x in it:
+ window.append(x)
+ yield tuple(window)
+
+ idents: list[str] = []
+ tokens: Iterable[Token] = iter(tokens) # type: ignore[no-redef]
+ # do not format opening brackets
+ for tok in tokens:
+ if not tok.match([token.OP, '('], [token.OP, '['], [token.OP, '{']):
+ # check if the first non-delimiter character is an unpack operator
+ is_unpack_operator = tok.match([token.OP, '*'], [token.OP, ['**']])
+ idents.append(self._pformat_token(tok, native=is_unpack_operator))
+ break
+ idents.append(tok.value)
+
+ # check the remaining tokens
+ stop = Token(token.ENDMARKER, '', (-1, -1), (-1, -1), '<sentinel>')
+ is_unpack_operator = False
+ for tok, op, after in triplewise(chain(tokens, [stop, stop])):
+ ident = self._pformat_token(tok, native=is_unpack_operator)
+ idents.append(ident)
+ # determine if the next token is an unpack operator depending
+ # on the left and right hand side of the operator symbol
+ is_unpack_operator = (
+ op.match([token.OP, '*'], [token.OP, '**']) and not (
+ tok.match(token.NAME, token.NUMBER, token.STRING,
+ [token.OP, ')'], [token.OP, ']'], [token.OP, '}'])
+ and after.match(token.NAME, token.NUMBER, token.STRING,
+ [token.OP, '('], [token.OP, '['], [token.OP, '{'])
+ )
+ )
+
+ return ''.join(idents).strip()
+
+ def _pformat_token(self, tok: Token, native: bool = False) -> str:
+ if native:
+ return tok.value
+
+ if tok.match(token.NEWLINE, token.ENDMARKER):
+ return ''
+
+ if tok.match([token.OP, ':'], [token.OP, ','], [token.OP, '#']):
+ return f'{tok.value} '
+
+ # Arithmetic operators are allowed because PEP 695 specifies the
+ # default type parameter to be *any* expression (so "T1 << T2" is
+ # allowed if it makes sense). The caller is responsible to ensure
+ # that a multiplication operator ("*") is not to be confused with
+ # an unpack operator (which will not be surrounded by spaces).
+ #
+ # The operators are ordered according to how likely they are to
+ # be used and for (possible) future implementations (e.g., "&" for
+ # an intersection type).
+ if tok.match(
+ # Most likely operators to appear
+ [token.OP, '='], [token.OP, '|'],
+ # Type composition (future compatibility)
+ [token.OP, '&'], [token.OP, '^'], [token.OP, '<'], [token.OP, '>'],
+ # Unlikely type composition
+ [token.OP, '+'], [token.OP, '-'], [token.OP, '*'], [token.OP, '**'],
+ # Unlikely operators but included for completeness
+ [token.OP, '@'], [token.OP, '/'], [token.OP, '//'], [token.OP, '%'],
+ [token.OP, '<<'], [token.OP, '>>'], [token.OP, '>>>'],
+ [token.OP, '<='], [token.OP, '>='], [token.OP, '=='], [token.OP, '!='],
+ ):
+ return f' {tok.value} '
+
+ return tok.value
+
+
+def _parse_type_list(
+ tp_list: str, env: BuildEnvironment,
+ multi_line_parameter_list: bool = False,
+) -> addnodes.desc_type_parameter_list:
+ """Parse a list of type parameters according to PEP 695."""
+ type_params = addnodes.desc_type_parameter_list(tp_list)
+ type_params['multi_line_parameter_list'] = multi_line_parameter_list
+ # formal parameter names are interpreted as type parameter names and
+ # type annotations are interpreted as type parameter bound or constraints
+ parser = _TypeParameterListParser(tp_list)
+ parser.parse()
+ for (tp_name, tp_kind, tp_default, tp_ann) in parser.type_params:
+ # no positional-only or keyword-only allowed in a type parameters list
+ if tp_kind in {Parameter.POSITIONAL_ONLY, Parameter.KEYWORD_ONLY}:
+ msg = ('positional-only or keyword-only parameters '
+ 'are prohibited in type parameter lists')
+ raise SyntaxError(msg)
+
+ node = addnodes.desc_type_parameter()
+ if tp_kind == Parameter.VAR_POSITIONAL:
+ node += addnodes.desc_sig_operator('', '*')
+ elif tp_kind == Parameter.VAR_KEYWORD:
+ node += addnodes.desc_sig_operator('', '**')
+ node += addnodes.desc_sig_name('', tp_name)
+
+ if tp_ann is not Parameter.empty:
+ annotation = _parse_annotation(tp_ann, env)
+ if not annotation:
+ continue
+
+ node += addnodes.desc_sig_punctuation('', ':')
+ node += addnodes.desc_sig_space()
+
+ type_ann_expr = addnodes.desc_sig_name('', '',
+ *annotation) # type: ignore[arg-type]
+ # a type bound is ``T: U`` whereas type constraints
+ # must be enclosed with parentheses. ``T: (U, V)``
+ if tp_ann.startswith('(') and tp_ann.endswith(')'):
+ type_ann_text = type_ann_expr.astext()
+ if type_ann_text.startswith('(') and type_ann_text.endswith(')'):
+ node += type_ann_expr
+ else:
+ # surrounding braces are lost when using _parse_annotation()
+ node += addnodes.desc_sig_punctuation('', '(')
+ node += type_ann_expr # type constraint
+ node += addnodes.desc_sig_punctuation('', ')')
+ else:
+ node += type_ann_expr # type bound
+
+ if tp_default is not Parameter.empty:
+ # Always surround '=' with spaces, even if there is no annotation
+ node += addnodes.desc_sig_space()
+ node += addnodes.desc_sig_operator('', '=')
+ node += addnodes.desc_sig_space()
+ node += nodes.inline('', tp_default,
+ classes=['default_value'],
+ support_smartquotes=False)
+
+ type_params += node
+ return type_params
+
+
+def _parse_arglist(
+ arglist: str, env: BuildEnvironment, multi_line_parameter_list: bool = False,
+) -> addnodes.desc_parameterlist:
+ """Parse a list of arguments using AST parser"""
+ params = addnodes.desc_parameterlist(arglist)
+ params['multi_line_parameter_list'] = multi_line_parameter_list
+ sig = signature_from_str('(%s)' % arglist)
+ last_kind = None
+ for param in sig.parameters.values():
+ if param.kind != param.POSITIONAL_ONLY and last_kind == param.POSITIONAL_ONLY:
+ # PEP-570: Separator for Positional Only Parameter: /
+ params += addnodes.desc_parameter('', '', addnodes.desc_sig_operator('', '/'))
+ if param.kind == param.KEYWORD_ONLY and last_kind in (param.POSITIONAL_OR_KEYWORD,
+ param.POSITIONAL_ONLY,
+ None):
+ # PEP-3102: Separator for Keyword Only Parameter: *
+ params += addnodes.desc_parameter('', '', addnodes.desc_sig_operator('', '*'))
+
+ node = addnodes.desc_parameter()
+ if param.kind == param.VAR_POSITIONAL:
+ node += addnodes.desc_sig_operator('', '*')
+ node += addnodes.desc_sig_name('', param.name)
+ elif param.kind == param.VAR_KEYWORD:
+ node += addnodes.desc_sig_operator('', '**')
+ node += addnodes.desc_sig_name('', param.name)
+ else:
+ node += addnodes.desc_sig_name('', param.name)
+
+ if param.annotation is not param.empty:
+ children = _parse_annotation(param.annotation, env)
+ node += addnodes.desc_sig_punctuation('', ':')
+ node += addnodes.desc_sig_space()
+ node += addnodes.desc_sig_name('', '', *children) # type: ignore[arg-type]
+ if param.default is not param.empty:
+ if param.annotation is not param.empty:
+ node += addnodes.desc_sig_space()
+ node += addnodes.desc_sig_operator('', '=')
+ node += addnodes.desc_sig_space()
+ else:
+ node += addnodes.desc_sig_operator('', '=')
+ node += nodes.inline('', param.default, classes=['default_value'],
+ support_smartquotes=False)
+
+ params += node
+ last_kind = param.kind
+
+ if last_kind == Parameter.POSITIONAL_ONLY:
+ # PEP-570: Separator for Positional Only Parameter: /
+ params += addnodes.desc_parameter('', '', addnodes.desc_sig_operator('', '/'))
+
+ return params
+
+
+def _pseudo_parse_arglist(
+ signode: desc_signature, arglist: str, multi_line_parameter_list: bool = False,
+) -> None:
+ """"Parse" a list of arguments separated by commas.
+
+ Arguments can have "optional" annotations given by enclosing them in
+ brackets. Currently, this will split at any comma, even if it's inside a
+ string literal (e.g. default argument value).
+ """
+ paramlist = addnodes.desc_parameterlist()
+ paramlist['multi_line_parameter_list'] = multi_line_parameter_list
+ stack: list[Element] = [paramlist]
+ try:
+ for argument in arglist.split(','):
+ argument = argument.strip()
+ ends_open = ends_close = 0
+ while argument.startswith('['):
+ stack.append(addnodes.desc_optional())
+ stack[-2] += stack[-1]
+ argument = argument[1:].strip()
+ while argument.startswith(']'):
+ stack.pop()
+ argument = argument[1:].strip()
+ while argument.endswith(']') and not argument.endswith('[]'):
+ ends_close += 1
+ argument = argument[:-1].strip()
+ while argument.endswith('['):
+ ends_open += 1
+ argument = argument[:-1].strip()
+ if argument:
+ stack[-1] += addnodes.desc_parameter(
+ '', '', addnodes.desc_sig_name(argument, argument))
+ while ends_open:
+ stack.append(addnodes.desc_optional())
+ stack[-2] += stack[-1]
+ ends_open -= 1
+ while ends_close:
+ stack.pop()
+ ends_close -= 1
+ if len(stack) != 1:
+ raise IndexError
+ except IndexError:
+ # if there are too few or too many elements on the stack, just give up
+ # and treat the whole argument list as one argument, discarding the
+ # already partially populated paramlist node
+ paramlist = addnodes.desc_parameterlist()
+ paramlist += addnodes.desc_parameter(arglist, arglist)
+ signode += paramlist
+ else:
+ signode += paramlist
diff --git a/sphinx/domains/python/_object.py b/sphinx/domains/python/_object.py
new file mode 100644
index 0000000..41f9df1
--- /dev/null
+++ b/sphinx/domains/python/_object.py
@@ -0,0 +1,426 @@
+from __future__ import annotations
+
+import contextlib
+import re
+from typing import TYPE_CHECKING, ClassVar
+
+from docutils import nodes
+from docutils.parsers.rst import directives
+
+from sphinx import addnodes
+from sphinx.addnodes import desc_signature, pending_xref, pending_xref_condition
+from sphinx.directives import ObjectDescription
+from sphinx.domains.python._annotations import (
+ _parse_annotation,
+ _parse_arglist,
+ _parse_type_list,
+ _pseudo_parse_arglist,
+ parse_reftarget,
+)
+from sphinx.locale import _
+from sphinx.util import logging
+from sphinx.util.docfields import Field, GroupedField, TypedField
+from sphinx.util.nodes import (
+ make_id,
+)
+
+if TYPE_CHECKING:
+
+ from docutils.nodes import Node
+ from docutils.parsers.rst.states import Inliner
+
+ from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import OptionSpec, TextlikeNode
+
+logger = logging.getLogger(__name__)
+
+# REs for Python signatures
+py_sig_re = re.compile(
+ r'''^ ([\w.]*\.)? # class name(s)
+ (\w+) \s* # thing name
+ (?: \[\s*(.*)\s*])? # optional: type parameters list
+ (?: \(\s*(.*)\s*\) # optional: arguments
+ (?:\s* -> \s* (.*))? # return annotation
+ )? $ # and nothing more
+ ''', re.VERBOSE)
+
+
+# This override allows our inline type specifiers to behave like :class: link
+# when it comes to handling "." and "~" prefixes.
+class PyXrefMixin:
+ def make_xref(
+ self,
+ rolename: str,
+ domain: str,
+ target: str,
+ innernode: type[TextlikeNode] = nodes.emphasis,
+ contnode: Node | None = None,
+ env: BuildEnvironment | None = None,
+ inliner: Inliner | None = None,
+ location: Node | None = None,
+ ) -> Node:
+ # we use inliner=None to make sure we get the old behaviour with a single
+ # pending_xref node
+ result = super().make_xref(rolename, domain, target, # type: ignore[misc]
+ innernode, contnode,
+ env, inliner=None, location=None)
+ if isinstance(result, pending_xref):
+ assert env is not None
+ result['refspecific'] = True
+ result['py:module'] = env.ref_context.get('py:module')
+ result['py:class'] = env.ref_context.get('py:class')
+
+ reftype, reftarget, reftitle, _ = parse_reftarget(target)
+ if reftarget != reftitle:
+ result['reftype'] = reftype
+ result['reftarget'] = reftarget
+
+ result.clear()
+ result += innernode(reftitle, reftitle) # type: ignore[call-arg]
+ elif env.config.python_use_unqualified_type_names:
+ children = result.children
+ result.clear()
+
+ shortname = target.split('.')[-1]
+ textnode = innernode('', shortname) # type: ignore[call-arg]
+ contnodes = [pending_xref_condition('', '', textnode, condition='resolved'),
+ pending_xref_condition('', '', *children, condition='*')]
+ result.extend(contnodes)
+
+ return result
+
+ def make_xrefs(
+ self,
+ rolename: str,
+ domain: str,
+ target: str,
+ innernode: type[TextlikeNode] = nodes.emphasis,
+ contnode: Node | None = None,
+ env: BuildEnvironment | None = None,
+ inliner: Inliner | None = None,
+ location: Node | None = None,
+ ) -> list[Node]:
+ delims = r'(\s*[\[\]\(\),](?:\s*o[rf]\s)?\s*|\s+o[rf]\s+|\s*\|\s*|\.\.\.)'
+ delims_re = re.compile(delims)
+ sub_targets = re.split(delims, target)
+
+ split_contnode = bool(contnode and contnode.astext() == target)
+
+ in_literal = False
+ results = []
+ for sub_target in filter(None, sub_targets):
+ if split_contnode:
+ contnode = nodes.Text(sub_target)
+
+ if in_literal or delims_re.match(sub_target):
+ results.append(contnode or innernode(sub_target, sub_target)) # type: ignore[call-arg]
+ else:
+ results.append(self.make_xref(rolename, domain, sub_target,
+ innernode, contnode, env, inliner, location))
+
+ if sub_target in ('Literal', 'typing.Literal', '~typing.Literal'):
+ in_literal = True
+
+ return results
+
+
+class PyField(PyXrefMixin, Field):
+ pass
+
+
+class PyGroupedField(PyXrefMixin, GroupedField):
+ pass
+
+
+class PyTypedField(PyXrefMixin, TypedField):
+ pass
+
+
+class PyObject(ObjectDescription[tuple[str, str]]):
+ """
+ Description of a general Python object.
+
+ :cvar allow_nesting: Class is an object that allows for nested namespaces
+ :vartype allow_nesting: bool
+ """
+
+ option_spec: ClassVar[OptionSpec] = {
+ 'no-index': directives.flag,
+ 'no-index-entry': directives.flag,
+ 'no-contents-entry': directives.flag,
+ 'no-typesetting': directives.flag,
+ 'noindex': directives.flag,
+ 'noindexentry': directives.flag,
+ 'nocontentsentry': directives.flag,
+ 'single-line-parameter-list': directives.flag,
+ 'single-line-type-parameter-list': directives.flag,
+ 'module': directives.unchanged,
+ 'canonical': directives.unchanged,
+ 'annotation': directives.unchanged,
+ }
+
+ doc_field_types = [
+ PyTypedField('parameter', label=_('Parameters'),
+ names=('param', 'parameter', 'arg', 'argument',
+ 'keyword', 'kwarg', 'kwparam'),
+ typerolename='class', typenames=('paramtype', 'type'),
+ can_collapse=True),
+ PyTypedField('variable', label=_('Variables'),
+ names=('var', 'ivar', 'cvar'),
+ typerolename='class', typenames=('vartype',),
+ can_collapse=True),
+ PyGroupedField('exceptions', label=_('Raises'), rolename='exc',
+ names=('raises', 'raise', 'exception', 'except'),
+ can_collapse=True),
+ Field('returnvalue', label=_('Returns'), has_arg=False,
+ names=('returns', 'return')),
+ PyField('returntype', label=_('Return type'), has_arg=False,
+ names=('rtype',), bodyrolename='class'),
+ ]
+
+ allow_nesting = False
+
+ def get_signature_prefix(self, sig: str) -> list[nodes.Node]:
+ """May return a prefix to put before the object name in the
+ signature.
+ """
+ return []
+
+ def needs_arglist(self) -> bool:
+ """May return true if an empty argument list is to be generated even if
+ the document contains none.
+ """
+ return False
+
+ def handle_signature(self, sig: str, signode: desc_signature) -> tuple[str, str]:
+ """Transform a Python signature into RST nodes.
+
+ Return (fully qualified name of the thing, classname if any).
+
+ If inside a class, the current class name is handled intelligently:
+ * it is stripped from the displayed name if present
+ * it is added to the full name (return value) if not present
+ """
+ m = py_sig_re.match(sig)
+ if m is None:
+ raise ValueError
+ prefix, name, tp_list, arglist, retann = m.groups()
+
+ # determine module and class name (if applicable), as well as full name
+ modname = self.options.get('module', self.env.ref_context.get('py:module'))
+ classname = self.env.ref_context.get('py:class')
+ if classname:
+ add_module = False
+ if prefix and (prefix == classname or
+ prefix.startswith(classname + ".")):
+ fullname = prefix + name
+ # class name is given again in the signature
+ prefix = prefix[len(classname):].lstrip('.')
+ elif prefix:
+ # class name is given in the signature, but different
+ # (shouldn't happen)
+ fullname = classname + '.' + prefix + name
+ else:
+ # class name is not given in the signature
+ fullname = classname + '.' + name
+ else:
+ add_module = True
+ if prefix:
+ classname = prefix.rstrip('.')
+ fullname = prefix + name
+ else:
+ classname = ''
+ fullname = name
+
+ signode['module'] = modname
+ signode['class'] = classname
+ signode['fullname'] = fullname
+
+ max_len = (self.env.config.python_maximum_signature_line_length
+ or self.env.config.maximum_signature_line_length
+ or 0)
+
+ # determine if the function arguments (without its type parameters)
+ # should be formatted on a multiline or not by removing the width of
+ # the type parameters list (if any)
+ sig_len = len(sig)
+ tp_list_span = m.span(3)
+ multi_line_parameter_list = (
+ 'single-line-parameter-list' not in self.options
+ and (sig_len - (tp_list_span[1] - tp_list_span[0])) > max_len > 0
+ )
+
+ # determine whether the type parameter list must be wrapped or not
+ arglist_span = m.span(4)
+ multi_line_type_parameter_list = (
+ 'single-line-type-parameter-list' not in self.options
+ and (sig_len - (arglist_span[1] - arglist_span[0])) > max_len > 0
+ )
+
+ sig_prefix = self.get_signature_prefix(sig)
+ if sig_prefix:
+ if type(sig_prefix) is str:
+ msg = ("Python directive method get_signature_prefix()"
+ " must return a list of nodes."
+ f" Return value was '{sig_prefix}'.")
+ raise TypeError(msg)
+ signode += addnodes.desc_annotation(str(sig_prefix), '', *sig_prefix)
+
+ if prefix:
+ signode += addnodes.desc_addname(prefix, prefix)
+ elif modname and add_module and self.env.config.add_module_names:
+ nodetext = modname + '.'
+ signode += addnodes.desc_addname(nodetext, nodetext)
+
+ signode += addnodes.desc_name(name, name)
+
+ if tp_list:
+ try:
+ signode += _parse_type_list(tp_list, self.env, multi_line_type_parameter_list)
+ except Exception as exc:
+ logger.warning("could not parse tp_list (%r): %s", tp_list, exc,
+ location=signode)
+
+ if arglist:
+ try:
+ signode += _parse_arglist(arglist, self.env, multi_line_parameter_list)
+ except SyntaxError:
+ # fallback to parse arglist original parser
+ # (this may happen if the argument list is incorrectly used
+ # as a list of bases when documenting a class)
+ # it supports to represent optional arguments (ex. "func(foo [, bar])")
+ _pseudo_parse_arglist(signode, arglist, multi_line_parameter_list)
+ except (NotImplementedError, ValueError) as exc:
+ # duplicated parameter names raise ValueError and not a SyntaxError
+ logger.warning("could not parse arglist (%r): %s", arglist, exc,
+ location=signode)
+ _pseudo_parse_arglist(signode, arglist, multi_line_parameter_list)
+ else:
+ if self.needs_arglist():
+ # for callables, add an empty parameter list
+ signode += addnodes.desc_parameterlist()
+
+ if retann:
+ children = _parse_annotation(retann, self.env)
+ signode += addnodes.desc_returns(retann, '', *children)
+
+ anno = self.options.get('annotation')
+ if anno:
+ signode += addnodes.desc_annotation(' ' + anno, '',
+ addnodes.desc_sig_space(),
+ nodes.Text(anno))
+
+ return fullname, prefix
+
+ def _object_hierarchy_parts(self, sig_node: desc_signature) -> tuple[str, ...]:
+ if 'fullname' not in sig_node:
+ return ()
+ modname = sig_node.get('module')
+ fullname = sig_node['fullname']
+
+ if modname:
+ return (modname, *fullname.split('.'))
+ else:
+ return tuple(fullname.split('.'))
+
+ def get_index_text(self, modname: str, name: tuple[str, str]) -> str:
+ """Return the text for the index entry of the object."""
+ msg = 'must be implemented in subclasses'
+ raise NotImplementedError(msg)
+
+ def add_target_and_index(self, name_cls: tuple[str, str], sig: str,
+ signode: desc_signature) -> None:
+ modname = self.options.get('module', self.env.ref_context.get('py:module'))
+ fullname = (modname + '.' if modname else '') + name_cls[0]
+ node_id = make_id(self.env, self.state.document, '', fullname)
+ signode['ids'].append(node_id)
+ self.state.document.note_explicit_target(signode)
+
+ domain = self.env.domains['py']
+ domain.note_object(fullname, self.objtype, node_id, location=signode)
+
+ canonical_name = self.options.get('canonical')
+ if canonical_name:
+ domain.note_object(canonical_name, self.objtype, node_id, aliased=True,
+ location=signode)
+
+ if 'no-index-entry' not in self.options:
+ indextext = self.get_index_text(modname, name_cls)
+ if indextext:
+ self.indexnode['entries'].append(('single', indextext, node_id, '', None))
+
+ def before_content(self) -> None:
+ """Handle object nesting before content
+
+ :py:class:`PyObject` represents Python language constructs. For
+ constructs that are nestable, such as a Python classes, this method will
+ build up a stack of the nesting hierarchy so that it can be later
+ de-nested correctly, in :py:meth:`after_content`.
+
+ For constructs that aren't nestable, the stack is bypassed, and instead
+ only the most recent object is tracked. This object prefix name will be
+ removed with :py:meth:`after_content`.
+ """
+ prefix = None
+ if self.names:
+ # fullname and name_prefix come from the `handle_signature` method.
+ # fullname represents the full object name that is constructed using
+ # object nesting and explicit prefixes. `name_prefix` is the
+ # explicit prefix given in a signature
+ (fullname, name_prefix) = self.names[-1]
+ if self.allow_nesting:
+ prefix = fullname
+ elif name_prefix:
+ prefix = name_prefix.strip('.')
+ if prefix:
+ self.env.ref_context['py:class'] = prefix
+ if self.allow_nesting:
+ classes = self.env.ref_context.setdefault('py:classes', [])
+ classes.append(prefix)
+ if 'module' in self.options:
+ modules = self.env.ref_context.setdefault('py:modules', [])
+ modules.append(self.env.ref_context.get('py:module'))
+ self.env.ref_context['py:module'] = self.options['module']
+
+ def after_content(self) -> None:
+ """Handle object de-nesting after content
+
+ If this class is a nestable object, removing the last nested class prefix
+ ends further nesting in the object.
+
+ If this class is not a nestable object, the list of classes should not
+ be altered as we didn't affect the nesting levels in
+ :py:meth:`before_content`.
+ """
+ classes = self.env.ref_context.setdefault('py:classes', [])
+ if self.allow_nesting:
+ with contextlib.suppress(IndexError):
+ classes.pop()
+
+ self.env.ref_context['py:class'] = (classes[-1] if len(classes) > 0
+ else None)
+ if 'module' in self.options:
+ modules = self.env.ref_context.setdefault('py:modules', [])
+ if modules:
+ self.env.ref_context['py:module'] = modules.pop()
+ else:
+ self.env.ref_context.pop('py:module')
+
+ def _toc_entry_name(self, sig_node: desc_signature) -> str:
+ if not sig_node.get('_toc_parts'):
+ return ''
+
+ config = self.env.app.config
+ objtype = sig_node.parent.get('objtype')
+ if config.add_function_parentheses and objtype in {'function', 'method'}:
+ parens = '()'
+ else:
+ parens = ''
+ *parents, name = sig_node['_toc_parts']
+ if config.toc_object_entries_show_parents == 'domain':
+ return sig_node.get('fullname', name) + parens
+ if config.toc_object_entries_show_parents == 'hide':
+ return name + parens
+ if config.toc_object_entries_show_parents == 'all':
+ return '.'.join([*parents, name + parens])
+ return ''
diff --git a/sphinx/domains/rst.py b/sphinx/domains/rst.py
index 480aba5..5ae267a 100644
--- a/sphinx/domains/rst.py
+++ b/sphinx/domains/rst.py
@@ -3,7 +3,7 @@
from __future__ import annotations
import re
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, Any, ClassVar, cast
from docutils.parsers.rst import directives
@@ -24,7 +24,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
logger = logging.getLogger(__name__)
@@ -35,7 +35,8 @@ class ReSTMarkup(ObjectDescription[str]):
"""
Description of generic reST markup.
"""
- option_spec: OptionSpec = {
+
+ option_spec: ClassVar[OptionSpec] = {
'no-index': directives.flag,
'no-index-entry': directives.flag,
'no-contents-entry': directives.flag,
@@ -112,6 +113,7 @@ class ReSTDirective(ReSTMarkup):
"""
Description of a reST directive.
"""
+
def handle_signature(self, sig: str, signode: desc_signature) -> str:
name, args = parse_directive(sig)
desc_name = f'.. {name}::'
@@ -139,7 +141,8 @@ class ReSTDirectiveOption(ReSTMarkup):
"""
Description of an option for reST directive.
"""
- option_spec: OptionSpec = ReSTMarkup.option_spec.copy()
+
+ option_spec: ClassVar[OptionSpec] = ReSTMarkup.option_spec.copy()
option_spec.update({
'type': directives.unchanged,
})
@@ -165,8 +168,8 @@ class ReSTDirectiveOption(ReSTMarkup):
directive_name = self.current_directive
if directive_name:
- prefix = '-'.join([self.objtype, directive_name])
- objname = ':'.join([directive_name, name])
+ prefix = f'{self.objtype}-{directive_name}'
+ objname = f'{directive_name}:{name}'
else:
prefix = self.objtype
objname = name
@@ -199,6 +202,7 @@ class ReSTRole(ReSTMarkup):
"""
Description of a reST role.
"""
+
def handle_signature(self, sig: str, signode: desc_signature) -> str:
desc_name = f':{sig}:'
signode['fullname'] = sig.strip()
@@ -211,6 +215,7 @@ class ReSTRole(ReSTMarkup):
class ReSTDomain(Domain):
"""ReStructuredText domain."""
+
name = 'rst'
label = 'reStructuredText'
@@ -288,7 +293,7 @@ class ReSTDomain(Domain):
yield name, name, typ, docname, node_id, 1
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(ReSTDomain)
return {
diff --git a/sphinx/domains/std.py b/sphinx/domains/std/__init__.py
index b3082a7..30d0977 100644
--- a/sphinx/domains/std.py
+++ b/sphinx/domains/std/__init__.py
@@ -4,7 +4,7 @@ from __future__ import annotations
import re
from copy import copy
-from typing import TYPE_CHECKING, Any, Callable, Final, cast
+from typing import TYPE_CHECKING, Any, Callable, ClassVar, Final, cast
from docutils import nodes
from docutils.nodes import Element, Node, system_message
@@ -27,14 +27,14 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec, RoleFunction
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec, RoleFunction
logger = logging.getLogger(__name__)
# RE for option descriptions
option_desc_re = re.compile(r'((?:/|--|-|\+)?[^\s=]+)(=?\s*.*)')
# RE for grammar tokens
-token_re = re.compile(r'`((~?\w*:)?\w+)`', re.U)
+token_re = re.compile(r'`((~?[\w-]*:)?\w+)`')
samp_role = EmphasizedLiteral()
@@ -43,6 +43,7 @@ class GenericObject(ObjectDescription[str]):
"""
A generic x-ref directive registered with Sphinx.add_object_type().
"""
+
indextemplate: str = ''
parse_node: Callable[[BuildEnvironment, str, desc_signature], str] | None = None
@@ -104,13 +105,14 @@ class Target(SphinxDirective):
"""
Generic target for user-defined cross-reference types.
"""
+
indextemplate = ''
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
# normalize whitespace in fullname like XRefRole does
@@ -204,7 +206,7 @@ class Cmdoption(ObjectDescription[str]):
def add_target_and_index(self, firstname: str, sig: str, signode: desc_signature) -> None:
currprogram = self.env.ref_context.get('std:program')
- for optname in signode.get('allnames', []):
+ for optname in signode.get('allnames', []): # type: ignore[var-annotated]
prefixes = ['cmdoption']
if currprogram:
prefixes.append(currprogram)
@@ -226,8 +228,8 @@ class Cmdoption(ObjectDescription[str]):
descr = _('%s command line option') % currprogram
else:
descr = _('command line option')
- for option in signode.get('allnames', []):
- entry = '; '.join([descr, option])
+ for option in signode.get('allnames', []): # type: ignore[var-annotated]
+ entry = f'{descr}; {option}'
self.indexnode['entries'].append(('pair', entry, signode['ids'][0], '', None))
@@ -240,7 +242,7 @@ class Program(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
program = ws_re.sub('-', self.arguments[0].strip())
@@ -260,7 +262,7 @@ class OptionXRefRole(XRefRole):
def split_term_classifiers(line: str) -> list[str | None]:
# split line into a term and classifiers. if no classifier, None is used..
- parts: list[str | None] = re.split(' +: +', line) + [None]
+ parts: list[str | None] = [*re.split(' +: +', line), None]
return parts
@@ -304,7 +306,7 @@ class Glossary(SphinxDirective):
required_arguments = 0
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'sorted': directives.flag,
}
@@ -383,7 +385,7 @@ class Glossary(SphinxDirective):
parts = split_term_classifiers(line)
# parse the term with inline markup
# classifiers (parts[1:]) will not be shown on doctree
- textnodes, sysmsg = self.state.inline_text(parts[0], # type: ignore[arg-type]
+ textnodes, sysmsg = self.state.inline_text(parts[0],
lineno)
# use first classifier as a index key
@@ -406,7 +408,7 @@ class Glossary(SphinxDirective):
dlist = nodes.definition_list('', *items)
dlist['classes'].append('glossary')
node += dlist
- return messages + [node]
+ return [*messages, node]
def token_xrefs(text: str, productionGroup: str = '') -> list[Node]:
@@ -451,7 +453,7 @@ class ProductionList(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
domain = cast(StandardDomain, self.env.get_domain('std'))
@@ -1000,7 +1002,7 @@ class StandardDomain(Domain):
yield (doc, clean_astext(self.env.titles[doc]), 'doc', doc, '', -1)
for (prog, option), info in self.progoptions.items():
if prog:
- fullname = ".".join([prog, option])
+ fullname = f'{prog}.{option}'
yield (fullname, fullname, 'cmdoption', info[0], info[1], 1)
else:
yield (option, option, 'cmdoption', info[0], info[1], 1)
@@ -1089,7 +1091,8 @@ class StandardDomain(Domain):
command.insert(0, progname)
option = command.pop()
if command:
- return '.'.join(['-'.join(command), option])
+ command_str = '-'.join(command)
+ return f'{command_str}.{option}'
else:
return None
else:
@@ -1111,7 +1114,7 @@ def warn_missing_reference(app: Sphinx, domain: Domain, node: pending_xref,
return True
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_domain(StandardDomain)
app.connect('warn-missing-reference', warn_missing_reference)
diff --git a/sphinx/environment/__init__.py b/sphinx/environment/__init__.py
index 9b9e9dd..e145c92 100644
--- a/sphinx/environment/__init__.py
+++ b/sphinx/environment/__init__.py
@@ -9,7 +9,7 @@ import time
from collections import defaultdict
from copy import copy
from os import path
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING, Any, Callable, NoReturn
from sphinx import addnodes
from sphinx.environment.adapters import toctree as toctree_adapters
@@ -23,7 +23,7 @@ from sphinx.util.nodes import is_translatable
from sphinx.util.osutil import canon_path, os_path
if TYPE_CHECKING:
- from collections.abc import Generator, Iterator
+ from collections.abc import Iterator
from pathlib import Path
from docutils import nodes
@@ -58,7 +58,7 @@ default_settings: dict[str, Any] = {
# This is increased every time an environment attribute is added
# or changed to properly invalidate pickle files.
-ENV_VERSION = 60
+ENV_VERSION = 61
# config status
CONFIG_UNSET = -1
@@ -81,9 +81,7 @@ versioning_conditions: dict[str, bool | Callable] = {
if TYPE_CHECKING:
from collections.abc import MutableMapping
- from typing import Literal
-
- from typing_extensions import overload
+ from typing import Literal, overload
from sphinx.domains.c import CDomain
from sphinx.domains.changeset import ChangeSetDomain
@@ -126,10 +124,12 @@ if TYPE_CHECKING:
@overload
def __getitem__(self, key: str) -> Domain: ... # NoQA: E704
def __getitem__(self, key): raise NotImplementedError # NoQA: E704
- def __setitem__(self, key, value): raise NotImplementedError # NoQA: E704
- def __delitem__(self, key): raise NotImplementedError # NoQA: E704
- def __iter__(self): raise NotImplementedError # NoQA: E704
- def __len__(self): raise NotImplementedError # NoQA: E704
+ def __setitem__( # NoQA: E301,E704
+ self, key: str, value: Domain,
+ ) -> NoReturn: raise NotImplementedError
+ def __delitem__(self, key: str) -> NoReturn: raise NotImplementedError # NoQA: E704
+ def __iter__(self) -> NoReturn: raise NotImplementedError # NoQA: E704
+ def __len__(self) -> NoReturn: raise NotImplementedError # NoQA: E704
else:
_DomainsType = dict
@@ -146,7 +146,7 @@ class BuildEnvironment:
# --------- ENVIRONMENT INITIALIZATION -------------------------------------
- def __init__(self, app: Sphinx):
+ def __init__(self, app: Sphinx) -> None:
self.app: Sphinx = app
self.doctreedir: Path = app.doctreedir
self.srcdir: Path = app.srcdir
@@ -155,7 +155,7 @@ class BuildEnvironment:
self.config_status_extra: str = ''
self.events: EventManager = app.events
self.project: Project = app.project
- self.version: dict[str, str] = app.registry.get_envversion(app)
+ self.version: dict[str, int] = app.registry.get_envversion(app)
# the method of doctree versioning; see set_versioning_method
self.versioning_condition: bool | Callable | None = None
@@ -265,6 +265,9 @@ class BuildEnvironment:
"""Obtains serializable data for pickling."""
__dict__ = self.__dict__.copy()
__dict__.update(app=None, domains={}, events=None) # clear unpickable attributes
+ # ensure that upon restoring the state, the most recent pickled files
+ # on the disk are used instead of those from a possibly outdated state
+ __dict__.update(_pickled_doctree_cache={})
return __dict__
def __setstate__(self, state: dict) -> None:
@@ -299,7 +302,7 @@ class BuildEnvironment:
# initialize config
self._update_config(app.config)
- # initialie settings
+ # initialize settings
self._update_settings(app.config)
def _update_config(self, config: Config) -> None:
@@ -320,7 +323,7 @@ class BuildEnvironment:
else:
# check if a config value was changed that affects how
# doctrees are read
- for item in config.filter('env'):
+ for item in config.filter(frozenset({'env'})):
if self.config[item.name] != item.value:
self.config_status = CONFIG_CHANGED
self.config_status_extra = f' ({item.name!r})'
@@ -338,7 +341,7 @@ class BuildEnvironment:
self.settings.setdefault('smart_quotes', True)
def set_versioning_method(self, method: str | Callable, compare: bool) -> None:
- """This sets the doctree versioning method for this environment.
+ """Set the doctree versioning method for this environment.
Versioning methods are a builder property; only builders with the same
versioning method can share the same doctree directory. Therefore, we
@@ -424,7 +427,7 @@ class BuildEnvironment:
@property
def found_docs(self) -> set[str]:
- """contains all existing docnames."""
+ """Contains all existing docnames."""
return self.project.docnames
def find_files(self, config: Config, builder: Builder) -> None:
@@ -521,7 +524,7 @@ class BuildEnvironment:
return added, changed, removed
- def check_dependents(self, app: Sphinx, already: set[str]) -> Generator[str, None, None]:
+ def check_dependents(self, app: Sphinx, already: set[str]) -> Iterator[str]:
to_rewrite: list[str] = []
for docnames in self.events.emit('env-get-updated', self):
to_rewrite.extend(docnames)
@@ -743,7 +746,6 @@ def _last_modified_time(filename: str | os.PathLike[str]) -> int:
We prefer to err on the side of re-rendering a file,
so we round up to the nearest microsecond.
"""
-
# upside-down floor division to get the ceiling
return -(os.stat(filename).st_mtime_ns // -1_000)
@@ -751,7 +753,7 @@ def _last_modified_time(filename: str | os.PathLike[str]) -> int:
def _format_modified_time(timestamp: int) -> str:
"""Return an RFC 3339 formatted string representing the given timestamp."""
seconds, fraction = divmod(timestamp, 10**6)
- return time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(seconds)) + f'.{fraction//1_000}'
+ return time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(seconds)) + f'.{fraction // 1_000}'
def _traverse_toctree(
diff --git a/sphinx/environment/adapters/indexentries.py b/sphinx/environment/adapters/indexentries.py
index 6fdbea6..a12e131 100644
--- a/sphinx/environment/adapters/indexentries.py
+++ b/sphinx/environment/adapters/indexentries.py
@@ -129,7 +129,7 @@ def _add_entry(word: str, subword: str, main: str | None, *,
def _key_func_0(entry: tuple[str, str]) -> tuple[bool, str]:
- """sort the index entries for same keyword."""
+ """Sort the index entries for same keyword."""
main, uri = entry
return not main, uri # show main entries at first
@@ -156,7 +156,7 @@ def _key_func_1(entry: tuple[str, list]) -> tuple[tuple[int, str], str]:
def _key_func_2(entry: tuple[str, list]) -> str:
- """sort the sub-index entries"""
+ """Sort the sub-index entries"""
key = unicodedata.normalize('NFD', entry[0].lower())
if key.startswith('\N{RIGHT-TO-LEFT MARK}'):
key = key[1:]
diff --git a/sphinx/environment/adapters/toctree.py b/sphinx/environment/adapters/toctree.py
index e50d10b..cfe717f 100644
--- a/sphinx/environment/adapters/toctree.py
+++ b/sphinx/environment/adapters/toctree.py
@@ -47,7 +47,6 @@ def document_toc(env: BuildEnvironment, docname: str, tags: Tags) -> Node:
For a ToC tree that shows the document's place in the
ToC structure, use `get_toctree_for`.
"""
-
tocdepth = env.metadata[docname].get('tocdepth', 0)
try:
toc = _toctree_copy(env.tocs[docname], 2, tocdepth, False, tags)
@@ -74,10 +73,8 @@ def global_toctree_for_doc(
This gives the global ToC, with all ancestors and their siblings.
"""
-
- toctrees: list[Element] = []
- for toctree_node in env.master_doctree.findall(addnodes.toctree):
- if toctree := _resolve_toctree(
+ resolved = (
+ _resolve_toctree(
env,
docname,
builder,
@@ -87,8 +84,13 @@ def global_toctree_for_doc(
titles_only=titles_only,
collapse=collapse,
includehidden=includehidden,
- ):
- toctrees.append(toctree)
+ )
+ for toctree_node in env.master_doctree.findall(addnodes.toctree)
+ )
+ toctrees = [
+ toctree for toctree in resolved if toctree is not None
+ ]
+
if not toctrees:
return None
result = toctrees[0]
@@ -113,7 +115,6 @@ def _resolve_toctree(
If *collapse* is True, all branches not containing docname will
be collapsed.
"""
-
if toctree.get('hidden', False) and not includehidden:
return None
@@ -250,7 +251,7 @@ def _entries_from_toctree(
included,
excluded,
sub_toc_node,
- [refdoc] + parents,
+ [refdoc, *parents],
subtree=True,
),
start=sub_toc_node.parent.index(sub_toc_node) + 1,
diff --git a/sphinx/environment/collectors/__init__.py b/sphinx/environment/collectors/__init__.py
index c7e069a..c12dd50 100644
--- a/sphinx/environment/collectors/__init__.py
+++ b/sphinx/environment/collectors/__init__.py
@@ -41,19 +41,22 @@ class EnvironmentCollector:
def clear_doc(self, app: Sphinx, env: BuildEnvironment, docname: str) -> None:
"""Remove specified data of a document.
- This method is called on the removal of the document."""
+ This method is called on the removal of the document.
+ """
raise NotImplementedError
def merge_other(self, app: Sphinx, env: BuildEnvironment,
docnames: set[str], other: BuildEnvironment) -> None:
"""Merge in specified data regarding docnames from a different `BuildEnvironment`
- object which coming from a subprocess in parallel builds."""
+ object which coming from a subprocess in parallel builds.
+ """
raise NotImplementedError
def process_doc(self, app: Sphinx, doctree: nodes.document) -> None:
"""Process a document and gather specific data from it.
- This method is called after the document is read."""
+ This method is called after the document is read.
+ """
raise NotImplementedError
def get_updated_docs(self, app: Sphinx, env: BuildEnvironment) -> list[str]:
diff --git a/sphinx/environment/collectors/asset.py b/sphinx/environment/collectors/asset.py
index c2066f4..451d659 100644
--- a/sphinx/environment/collectors/asset.py
+++ b/sphinx/environment/collectors/asset.py
@@ -5,7 +5,7 @@ from __future__ import annotations
import os
from glob import glob
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
from docutils.utils import relative_path
@@ -22,6 +22,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -121,7 +122,7 @@ class DownloadFileCollector(EnvironmentCollector):
env.dlfiles.merge_other(docnames, other.dlfiles)
def process_doc(self, app: Sphinx, doctree: nodes.document) -> None:
- """Process downloadable file paths. """
+ """Process downloadable file paths."""
for node in doctree.findall(addnodes.download_reference):
targetname = node['reftarget']
if '://' in targetname:
@@ -136,7 +137,7 @@ class DownloadFileCollector(EnvironmentCollector):
node['filename'] = app.env.dlfiles.add_file(app.env.docname, rel_filename)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(ImageCollector)
app.add_env_collector(DownloadFileCollector)
diff --git a/sphinx/environment/collectors/dependencies.py b/sphinx/environment/collectors/dependencies.py
index df1f0c1..33b54b8 100644
--- a/sphinx/environment/collectors/dependencies.py
+++ b/sphinx/environment/collectors/dependencies.py
@@ -4,7 +4,7 @@ from __future__ import annotations
import os
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils.utils import relative_path
@@ -16,6 +16,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class DependenciesCollector(EnvironmentCollector):
@@ -47,7 +48,7 @@ class DependenciesCollector(EnvironmentCollector):
app.env.dependencies[app.env.docname].add(relpath)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(DependenciesCollector)
return {
diff --git a/sphinx/environment/collectors/metadata.py b/sphinx/environment/collectors/metadata.py
index 5f737a9..bef3511 100644
--- a/sphinx/environment/collectors/metadata.py
+++ b/sphinx/environment/collectors/metadata.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, cast
from docutils import nodes
@@ -11,6 +11,7 @@ from sphinx.environment.collectors import EnvironmentCollector
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class MetadataCollector(EnvironmentCollector):
@@ -29,7 +30,7 @@ class MetadataCollector(EnvironmentCollector):
Keep processing minimal -- just return what docutils says.
"""
- index = doctree.first_child_not_matching_class(nodes.PreBibliographic)
+ index = doctree.first_child_not_matching_class(nodes.PreBibliographic) # type: ignore[arg-type]
if index is None:
return
elif isinstance(doctree[index], nodes.docinfo):
@@ -46,11 +47,11 @@ class MetadataCollector(EnvironmentCollector):
md[field_name.astext()] = field_body.astext()
elif isinstance(node, nodes.TextElement):
# other children must be TextElement
- # see: https://docutils.sourceforge.io/docs/ref/doctree.html#bibliographic-elements # noqa: E501
+ # see: https://docutils.sourceforge.io/docs/ref/doctree.html#bibliographic-elements # NoQA: E501
md[node.__class__.__name__] = node.astext()
for name, value in md.items():
- if name in ('tocdepth',):
+ if name == 'tocdepth':
try:
value = int(value)
except ValueError:
@@ -60,7 +61,7 @@ class MetadataCollector(EnvironmentCollector):
doctree.pop(index)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(MetadataCollector)
return {
diff --git a/sphinx/environment/collectors/title.py b/sphinx/environment/collectors/title.py
index 014d77a..0760557 100644
--- a/sphinx/environment/collectors/title.py
+++ b/sphinx/environment/collectors/title.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
@@ -12,6 +12,7 @@ from sphinx.transforms import SphinxContentsFilter
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class TitleCollector(EnvironmentCollector):
@@ -51,7 +52,7 @@ class TitleCollector(EnvironmentCollector):
app.env.longtitles[app.env.docname] = longtitlenode
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(TitleCollector)
return {
diff --git a/sphinx/environment/collectors/toctree.py b/sphinx/environment/collectors/toctree.py
index 772591e..6ea148c 100644
--- a/sphinx/environment/collectors/toctree.py
+++ b/sphinx/environment/collectors/toctree.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, TypeVar, cast
+from typing import TYPE_CHECKING, TypeVar, cast
from docutils import nodes
@@ -20,6 +20,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
N = TypeVar('N')
@@ -201,7 +202,7 @@ class TocTreeCollector(EnvironmentCollector):
numstack[-1] += 1
reference = cast(nodes.reference, subnode[0])
if depth > 0:
- number = list(numstack)
+ number = numstack.copy()
secnums[reference['anchorname']] = tuple(numstack)
else:
number = None
@@ -283,7 +284,7 @@ class TocTreeCollector(EnvironmentCollector):
secnum = secnum[:env.config.numfig_secnum_depth]
counter[secnum] = counter.get(secnum, 0) + 1
- return secnum + (counter[secnum],)
+ return (*secnum, counter[secnum])
def register_fignumber(docname: str, secnum: tuple[int, ...],
figtype: str, fignode: Element) -> None:
@@ -345,7 +346,7 @@ def _make_anchor_name(ids: list[str], num_entries: list[int]) -> str:
return anchorname
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_env_collector(TocTreeCollector)
return {
diff --git a/sphinx/errors.py b/sphinx/errors.py
index 5db68dd..44df3e8 100644
--- a/sphinx/errors.py
+++ b/sphinx/errors.py
@@ -25,16 +25,19 @@ class SphinxError(Exception):
exception to a string ("category: message"). Should be set accordingly
in subclasses.
"""
+
category = 'Sphinx error'
class SphinxWarning(SphinxError):
"""Warning, treated as error."""
+
category = 'Warning, treated as error'
class ApplicationError(SphinxError):
"""Application initialization error."""
+
category = 'Application error'
@@ -42,7 +45,7 @@ class ExtensionError(SphinxError):
"""Extension error."""
def __init__(
- self, message: str, orig_exc: Exception | None = None, modname: str | None = None,
+ self, message: str, orig_exc: Exception | None = None, modname: str | None = None
) -> None:
super().__init__(message)
self.message = message
@@ -70,26 +73,31 @@ class ExtensionError(SphinxError):
class BuildEnvironmentError(SphinxError):
"""BuildEnvironment error."""
+
category = 'BuildEnvironment error'
class ConfigError(SphinxError):
"""Configuration error."""
+
category = 'Configuration error'
class DocumentError(SphinxError):
"""Document error."""
+
category = 'Document error'
class ThemeError(SphinxError):
"""Theme error."""
+
category = 'Theme error'
class VersionRequirementError(SphinxError):
"""Incompatible Sphinx version error."""
+
category = 'Sphinx version error'
@@ -118,10 +126,13 @@ class PycodeError(Exception):
class NoUri(Exception):
"""Raised by builder.get_relative_uri() or from missing-reference handlers
- if there is no URI available."""
+ if there is no URI available.
+ """
+
pass
class FiletypeNotFoundError(Exception):
"""Raised by get_filetype() if a filename matches no source suffix."""
+
pass
diff --git a/sphinx/events.py b/sphinx/events.py
index dad33aa..af8dfb4 100644
--- a/sphinx/events.py
+++ b/sphinx/events.py
@@ -77,21 +77,21 @@ class EventManager:
def disconnect(self, listener_id: int) -> None:
"""Disconnect a handler."""
for listeners in self.listeners.values():
- for listener in listeners[:]:
+ for listener in listeners.copy():
if listener.id == listener_id:
listeners.remove(listener)
- def emit(self, name: str, *args: Any,
- allowed_exceptions: tuple[type[Exception], ...] = ()) -> list:
+ def emit(
+ self, name: str, *args: Any, allowed_exceptions: tuple[type[Exception], ...] = ()
+ ) -> list:
"""Emit a Sphinx event."""
-
# not every object likes to be repr()'d (think
# random stuff coming via autodoc)
with contextlib.suppress(Exception):
logger.debug('[app] emitting event: %r%s', name, repr(args)[:100])
results = []
- listeners = sorted(self.listeners[name], key=attrgetter("priority"))
+ listeners = sorted(self.listeners[name], key=attrgetter('priority'))
for listener in listeners:
try:
results.append(listener.handler(self.app, *args))
@@ -105,12 +105,17 @@ class EventManager:
# Just pass through the error, so that it can be debugged.
raise
modname = safe_getattr(listener.handler, '__module__', None)
- raise ExtensionError(__("Handler %r for event %r threw an exception") %
- (listener.handler, name), exc, modname=modname) from exc
+ raise ExtensionError(
+ __('Handler %r for event %r threw an exception')
+ % (listener.handler, name),
+ exc,
+ modname=modname,
+ ) from exc
return results
- def emit_firstresult(self, name: str, *args: Any,
- allowed_exceptions: tuple[type[Exception], ...] = ()) -> Any:
+ def emit_firstresult(
+ self, name: str, *args: Any, allowed_exceptions: tuple[type[Exception], ...] = ()
+ ) -> Any:
"""Emit a Sphinx event and returns first result.
This returns the result of the first handler that doesn't return ``None``.
diff --git a/sphinx/ext/apidoc.py b/sphinx/ext/apidoc.py
index 42df848..b2e2291 100644
--- a/sphinx/ext/apidoc.py
+++ b/sphinx/ext/apidoc.py
@@ -32,7 +32,7 @@ from sphinx.util.osutil import FileAvoidWrite, ensuredir
from sphinx.util.template import ReSTRenderer
if TYPE_CHECKING:
- from collections.abc import Generator, Sequence
+ from collections.abc import Iterator, Sequence
logger = logging.getLogger(__name__)
@@ -47,7 +47,7 @@ else:
'show-inheritance',
]
-PY_SUFFIXES = ('.py', '.pyx') + tuple(EXTENSION_SUFFIXES)
+PY_SUFFIXES = ('.py', '.pyx', *tuple(EXTENSION_SUFFIXES))
template_dir = path.join(package_dir, 'templates', 'apidoc')
@@ -68,7 +68,7 @@ def module_join(*modnames: str | None) -> str:
def is_packagedir(dirname: str | None = None, files: list[str] | None = None) -> bool:
"""Check given *files* contains __init__ file."""
- if files is None and dirname is None:
+ if files is dirname is None:
return False
if files is None:
@@ -168,7 +168,7 @@ def create_modules_toc_file(modules: list[str], opts: Any, name: str = 'modules'
"""Create the module's index."""
modules.sort()
prev_module = ''
- for module in modules[:]:
+ for module in modules.copy():
# look if the module is a subpackage and, if yes, ignore it
if module.startswith(prev_module + '.'):
modules.remove(module)
@@ -209,14 +209,12 @@ def is_skipped_module(filename: str, opts: Any, _excludes: Sequence[re.Pattern[s
if not path.exists(filename):
# skip if the file doesn't exist
return True
- if path.basename(filename).startswith('_') and not opts.includeprivate:
- # skip if the module has a "private" name
- return True
- return False
+ # skip if the module has a "private" name
+ return path.basename(filename).startswith('_') and not opts.includeprivate
def walk(rootpath: str, excludes: Sequence[re.Pattern[str]], opts: Any,
- ) -> Generator[tuple[str, list[str], list[str]], None, None]:
+ ) -> Iterator[tuple[str, list[str], list[str]]]:
"""Walk through the directory and list files and subdirectories up."""
followlinks = getattr(opts, 'followlinks', False)
includeprivate = getattr(opts, 'includeprivate', False)
@@ -268,14 +266,14 @@ def recurse_tree(rootpath: str, excludes: Sequence[re.Pattern[str]], opts: Any,
is_pkg = is_packagedir(None, files)
is_namespace = not is_pkg and implicit_namespaces
if is_pkg:
- for f in files[:]:
+ for f in files.copy():
if is_initpy(f):
files.remove(f)
files.insert(0, f)
elif root != rootpath:
# only accept non-package at toplevel unless using implicit namespaces
if not implicit_namespaces:
- del subs[:]
+ subs.clear()
continue
if is_pkg or is_namespace:
diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py
index 8d68f72..45e4cad 100644
--- a/sphinx/ext/autodoc/__init__.py
+++ b/sphinx/ext/autodoc/__init__.py
@@ -7,11 +7,13 @@ for those who like elaborate docstrings.
from __future__ import annotations
+import functools
+import operator
import re
import sys
import warnings
from inspect import Parameter, Signature
-from typing import TYPE_CHECKING, Any, Callable, TypeVar
+from typing import TYPE_CHECKING, Any, Callable, ClassVar, TypeVar
from docutils.statemachine import StringList
@@ -31,7 +33,13 @@ from sphinx.util.inspect import (
safe_getattr,
stringify_signature,
)
-from sphinx.util.typing import OptionSpec, get_type_hints, restify, stringify_annotation
+from sphinx.util.typing import (
+ ExtensionMetadata,
+ OptionSpec,
+ get_type_hints,
+ restify,
+ stringify_annotation,
+)
if TYPE_CHECKING:
from collections.abc import Iterator, Sequence
@@ -221,7 +229,7 @@ def between(
return
deleted = 0
delete = not exclude
- orig_lines = lines[:]
+ orig_lines = lines.copy()
for i, line in enumerate(orig_lines):
if delete:
lines.pop(i - deleted)
@@ -243,6 +251,7 @@ def between(
# But we define this class here to keep compatibility (see #4538)
class Options(dict):
"""A dict/attribute hybrid that returns None on nonexisting keys."""
+
def copy(self) -> Options:
return Options(super().copy())
@@ -275,7 +284,7 @@ class ObjectMember:
self.skipped = skipped
self.class_ = class_
- def __getitem__(self, index):
+ def __getitem__(self, index: int) -> Any:
warnings.warn('The tuple interface of ObjectMember is deprecated. '
'Use (obj.__name__, obj.object) instead.',
RemovedInSphinx80Warning, stacklevel=2)
@@ -297,6 +306,7 @@ class Documenter:
in fact, it will be used to parse an auto directive's options that matches
the Documenter.
"""
+
#: name by which the directive is called (auto...) and the default
#: generated directive name
objtype = 'object'
@@ -309,7 +319,7 @@ class Documenter:
#: true if the generated content may contain titles
titles_allowed = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'no-index': bool_option,
'noindex': bool_option,
}
@@ -319,8 +329,9 @@ class Documenter:
return autodoc_attrgetter(self.env.app, obj, name, *defargs)
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
"""Called to see if a member can be documented by this Documenter."""
msg = 'must be implemented in subclasses'
raise NotImplementedError(msg)
@@ -450,9 +461,7 @@ class Documenter:
subject = inspect.unpartial(self.object)
modname = self.get_attr(subject, '__module__', None)
- if modname and modname != self.modname:
- return False
- return True
+ return not modname or modname == self.modname
def format_args(self, **kwargs: Any) -> str:
"""Format the argument signature of *self.object*.
@@ -923,7 +932,7 @@ class Documenter:
except PycodeError:
pass
- docstrings: list[str] = sum(self.get_doc() or [], [])
+ docstrings: list[str] = functools.reduce(operator.iadd, self.get_doc() or [], [])
if ismock(self.object) and not docstrings:
logger.warning(__('A mocked object is detected: %r'),
self.name, type='autodoc')
@@ -966,11 +975,12 @@ class ModuleDocumenter(Documenter):
"""
Specialized Documenter subclass for modules.
"""
+
objtype = 'module'
content_indent = ''
_extra_indent = ' '
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'members': members_option, 'undoc-members': bool_option,
'no-index': bool_option, 'inherited-members': inherited_members_option,
'show-inheritance': bool_option, 'synopsis': identity,
@@ -997,8 +1007,9 @@ class ModuleDocumenter(Documenter):
self.add_line(line, src[0], src[1])
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
# don't document submodules automatically
return False
@@ -1127,13 +1138,14 @@ class ModuleLevelDocumenter(Documenter):
Specialized Documenter subclass for objects on module level (functions,
classes, data/constants).
"""
+
def resolve_name(self, modname: str | None, parents: Any, path: str, base: str,
) -> tuple[str | None, list[str]]:
if modname is not None:
- return modname, parents + [base]
+ return modname, [*parents, base]
if path:
modname = path.rstrip('.')
- return modname, parents + [base]
+ return modname, [*parents, base]
# if documenting a toplevel object without explicit module,
# it can be contained in another auto directive ...
@@ -1142,7 +1154,7 @@ class ModuleLevelDocumenter(Documenter):
if not modname:
modname = self.env.ref_context.get('py:module')
# ... else, it stays None, which means invalid
- return modname, parents + [base]
+ return modname, [*parents, base]
class ClassLevelDocumenter(Documenter):
@@ -1150,10 +1162,11 @@ class ClassLevelDocumenter(Documenter):
Specialized Documenter subclass for objects on class level (methods,
attributes).
"""
+
def resolve_name(self, modname: str | None, parents: Any, path: str, base: str,
) -> tuple[str | None, list[str]]:
if modname is not None:
- return modname, parents + [base]
+ return modname, [*parents, base]
if path:
mod_cls = path.rstrip('.')
@@ -1177,7 +1190,7 @@ class ClassLevelDocumenter(Documenter):
if not modname:
modname = self.env.ref_context.get('py:module')
# ... else, it stays None, which means invalid
- return modname, parents + [base]
+ return modname, [*parents, base]
class DocstringSignatureMixin:
@@ -1185,6 +1198,7 @@ class DocstringSignatureMixin:
Mixin for FunctionDocumenter and MethodDocumenter to provide the
feature of reading the signature from the docstring.
"""
+
_new_docstrings: list[list[str]] | None = None
_signatures: list[str] = []
@@ -1256,7 +1270,7 @@ class DocstringSignatureMixin:
self.args, self.retann = result
sig = super().format_signature(**kwargs) # type: ignore[misc]
if self._signatures:
- return "\n".join([sig] + self._signatures)
+ return "\n".join((sig, *self._signatures))
else:
return sig
@@ -1266,6 +1280,7 @@ class DocstringStripSignatureMixin(DocstringSignatureMixin):
Mixin for AttributeDocumenter to provide the
feature of stripping any function signature from the docstring.
"""
+
def format_signature(self, **kwargs: Any) -> str:
if (
self.args is None
@@ -1286,12 +1301,14 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
"""
Specialized Documenter subclass for functions.
"""
+
objtype = 'function'
member_order = 30
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
# supports functions, builtins and bound methods exported at the module level
return (inspect.isfunction(member) or inspect.isbuiltin(member) or
(inspect.isroutine(member) and isinstance(parent, ModuleDocumenter)))
@@ -1393,7 +1410,7 @@ class FunctionDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # typ
if len(sig.parameters) == 0:
return None
- def dummy():
+ def dummy(): # NoQA: ANN202
pass
params = list(sig.parameters.values())
@@ -1414,6 +1431,7 @@ class DecoratorDocumenter(FunctionDocumenter):
"""
Specialized Documenter subclass for decorator functions.
"""
+
objtype = 'decorator'
# must be lower than FunctionDocumenter
@@ -1445,9 +1463,10 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
"""
Specialized Documenter subclass for classes.
"""
+
objtype = 'class'
member_order = 20
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'members': members_option, 'undoc-members': bool_option,
'no-index': bool_option, 'inherited-members': inherited_members_option,
'show-inheritance': bool_option, 'member-order': member_order_option,
@@ -1481,8 +1500,9 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
merge_members_option(self.options)
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
return isinstance(member, type) or (
isattr and (inspect.isNewType(member) or isinstance(member, TypeVar)))
@@ -1509,7 +1529,7 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
return None, None, None
def get_user_defined_function_or_method(obj: Any, attr: str) -> Any:
- """ Get the `attr` function or method from `obj`, if it is user-defined. """
+ """Get the `attr` function or method from `obj`, if it is user-defined."""
if inspect.is_builtin_class_method(obj, attr):
return None
attr = self.get_attr(obj, attr, None)
@@ -1657,7 +1677,7 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
try:
analyzer = ModuleAnalyzer.for_module(cls.__module__)
analyzer.analyze()
- qualname = '.'.join([cls.__qualname__, self._signature_method_name])
+ qualname = f'{cls.__qualname__}.{self._signature_method_name}'
if qualname in analyzer.overloads:
return analyzer.overloads.get(qualname, [])
elif qualname in analyzer.tagorder:
@@ -1678,7 +1698,7 @@ class ClassDocumenter(DocstringSignatureMixin, ModuleLevelDocumenter): # type:
__qualname__ = None
if __modname__ and __qualname__:
- return '.'.join([__modname__, __qualname__])
+ return f'{__modname__}.{__qualname__}'
else:
return None
@@ -1904,6 +1924,7 @@ class ExceptionDocumenter(ClassDocumenter):
"""
Specialized ClassDocumenter subclass for exceptions.
"""
+
objtype = 'exception'
member_order = 10
@@ -1911,8 +1932,9 @@ class ExceptionDocumenter(ClassDocumenter):
priority = ClassDocumenter.priority + 5
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
try:
return isinstance(member, type) and issubclass(member, BaseException)
except TypeError as exc:
@@ -2016,16 +2038,18 @@ class DataDocumenter(GenericAliasMixin,
"""
Specialized Documenter subclass for data items.
"""
+
objtype = 'data'
member_order = 40
priority = -10
- option_spec: OptionSpec = dict(ModuleLevelDocumenter.option_spec)
+ option_spec: ClassVar[OptionSpec] = dict(ModuleLevelDocumenter.option_spec)
option_spec["annotation"] = annotation_option
option_spec["no-value"] = bool_option
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
return isinstance(parent, ModuleDocumenter) and isattr
def update_annotations(self, parent: Any) -> None:
@@ -2054,7 +2078,8 @@ class DataDocumenter(GenericAliasMixin,
return True
else:
doc = self.get_doc() or []
- docstring, metadata = separate_metadata('\n'.join(sum(doc, [])))
+ docstring, metadata = separate_metadata(
+ '\n'.join(functools.reduce(operator.iadd, doc, [])))
if 'hide-value' in metadata:
return True
@@ -2135,14 +2160,16 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
"""
Specialized Documenter subclass for methods (normal, static and class).
"""
+
objtype = 'method'
directivetype = 'method'
member_order = 50
priority = 1 # must be more than FunctionDocumenter
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
return inspect.isroutine(member) and not isinstance(parent, ModuleDocumenter)
def import_object(self, raiseerror: bool = False) -> bool:
@@ -2169,7 +2196,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
kwargs.setdefault('unqualified_typehints', True)
try:
- if self.object == object.__init__ and self.parent != object:
+ if self.object == object.__init__ and self.parent != object: # NoQA: E721
# Classes not having own __init__() method are shown as no arguments.
#
# Note: The signature of object.__init__() is (self, /, *args, **kwargs).
@@ -2206,7 +2233,8 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
self.add_line(' :abstractmethod:', sourcename)
if inspect.iscoroutinefunction(obj) or inspect.isasyncgenfunction(obj):
self.add_line(' :async:', sourcename)
- if inspect.isclassmethod(obj):
+ if (inspect.isclassmethod(obj) or
+ inspect.is_singledispatch_method(obj) and inspect.isclassmethod(obj.func)):
self.add_line(' :classmethod:', sourcename)
if inspect.isstaticmethod(obj, cls=self.parent, name=self.object_name):
self.add_line(' :staticmethod:', sourcename)
@@ -2238,6 +2266,8 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
if typ is object:
pass # default implementation. skipped.
else:
+ if inspect.isclassmethod(func):
+ func = func.__func__
dispatchmeth = self.annotate_to_first_argument(func, typ)
if dispatchmeth:
documenter = MethodDocumenter(self.directive, '')
@@ -2292,7 +2322,7 @@ class MethodDocumenter(DocstringSignatureMixin, ClassLevelDocumenter): # type:
if len(sig.parameters) == 1:
return None
- def dummy():
+ def dummy(): # NoQA: ANN202
pass
params = list(sig.parameters.values())
@@ -2408,8 +2438,8 @@ class SlotsMixin(DataDocumenterMixinBase):
if self.object is SLOTSATTR:
try:
parent___slots__ = inspect.getslots(self.parent)
- if parent___slots__ and parent___slots__.get(self.objpath[-1]):
- docstring = prepare_docstring(parent___slots__[self.objpath[-1]])
+ if parent___slots__ and (docstring := parent___slots__.get(self.objpath[-1])):
+ docstring = prepare_docstring(docstring)
return [docstring]
else:
return []
@@ -2440,9 +2470,7 @@ class RuntimeInstanceAttributeMixin(DataDocumenterMixinBase):
# An instance variable defined in __init__().
if self.get_attribute_comment(parent, self.objpath[-1]): # type: ignore[attr-defined]
return True
- if self.is_runtime_instance_attribute_not_commented(parent):
- return True
- return False
+ return self.is_runtime_instance_attribute_not_commented(parent)
def is_runtime_instance_attribute_not_commented(self, parent: Any) -> bool:
"""Check the subject is an attribute defined in __init__() without comment."""
@@ -2454,7 +2482,7 @@ class RuntimeInstanceAttributeMixin(DataDocumenterMixinBase):
analyzer = ModuleAnalyzer.for_module(module)
analyzer.analyze()
if qualname and self.objpath:
- key = '.'.join([qualname, self.objpath[-1]])
+ key = f'{qualname}.{self.objpath[-1]}'
if key in analyzer.tagorder:
return True
except (AttributeError, PycodeError):
@@ -2464,7 +2492,8 @@ class RuntimeInstanceAttributeMixin(DataDocumenterMixinBase):
def import_object(self, raiseerror: bool = False) -> bool:
"""Check the existence of runtime instance attribute after failing to import the
- attribute."""
+ attribute.
+ """
try:
return super().import_object(raiseerror=True) # type: ignore[misc]
except ImportError as exc:
@@ -2517,7 +2546,8 @@ class UninitializedInstanceAttributeMixin(DataDocumenterMixinBase):
def import_object(self, raiseerror: bool = False) -> bool:
"""Check the exisitence of uninitialized instance attribute when failed to import
- the attribute."""
+ the attribute.
+ """
try:
return super().import_object(raiseerror=True) # type: ignore[misc]
except ImportError as exc:
@@ -2556,9 +2586,10 @@ class AttributeDocumenter(GenericAliasMixin, SlotsMixin, # type: ignore[misc]
"""
Specialized Documenter subclass for attributes.
"""
+
objtype = 'attribute'
member_order = 60
- option_spec: OptionSpec = dict(ModuleLevelDocumenter.option_spec)
+ option_spec: ClassVar[OptionSpec] = dict(ModuleLevelDocumenter.option_spec)
option_spec["annotation"] = annotation_option
option_spec["no-value"] = bool_option
@@ -2571,15 +2602,14 @@ class AttributeDocumenter(GenericAliasMixin, SlotsMixin, # type: ignore[misc]
return inspect.isfunction(obj) or inspect.isbuiltin(obj) or inspect.ismethod(obj)
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
if isinstance(parent, ModuleDocumenter):
return False
if inspect.isattributedescriptor(member):
return True
- if not inspect.isroutine(member) and not isinstance(member, type):
- return True
- return False
+ return not inspect.isroutine(member) and not isinstance(member, type)
def document_members(self, all_members: bool = False) -> None:
pass
@@ -2625,7 +2655,8 @@ class AttributeDocumenter(GenericAliasMixin, SlotsMixin, # type: ignore[misc]
else:
doc = self.get_doc()
if doc:
- docstring, metadata = separate_metadata('\n'.join(sum(doc, [])))
+ docstring, metadata = separate_metadata(
+ '\n'.join(functools.reduce(operator.iadd, doc, [])))
if 'hide-value' in metadata:
return True
@@ -2711,6 +2742,7 @@ class PropertyDocumenter(DocstringStripSignatureMixin, # type: ignore[misc]
"""
Specialized Documenter subclass for properties.
"""
+
objtype = 'property'
member_order = 60
@@ -2718,8 +2750,9 @@ class PropertyDocumenter(DocstringStripSignatureMixin, # type: ignore[misc]
priority = AttributeDocumenter.priority + 1
@classmethod
- def can_document_member(cls, member: Any, membername: str, isattr: bool, parent: Any,
- ) -> bool:
+ def can_document_member(
+ cls: type[Documenter], member: Any, membername: str, isattr: bool, parent: Any,
+ ) -> bool:
if isinstance(parent, ClassDocumenter):
if inspect.isproperty(member):
return True
@@ -2732,7 +2765,8 @@ class PropertyDocumenter(DocstringStripSignatureMixin, # type: ignore[misc]
def import_object(self, raiseerror: bool = False) -> bool:
"""Check the exisitence of uninitialized instance attribute when failed to import
- the attribute."""
+ the attribute.
+ """
ret = super().import_object(raiseerror)
if ret and not inspect.isproperty(self.object):
__dict__ = safe_getattr(self.parent, '__dict__', {})
@@ -2793,7 +2827,7 @@ class PropertyDocumenter(DocstringStripSignatureMixin, # type: ignore[misc]
except ValueError:
pass
- def _get_property_getter(self):
+ def _get_property_getter(self) -> Callable | None:
if safe_getattr(self.object, 'fget', None): # property
return self.object.fget
if safe_getattr(self.object, 'func', None): # cached_property
@@ -2810,7 +2844,7 @@ def autodoc_attrgetter(app: Sphinx, obj: Any, name: str, *defargs: Any) -> Any:
return safe_getattr(obj, name, *defargs)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_autodocumenter(ModuleDocumenter)
app.add_autodocumenter(ClassDocumenter)
app.add_autodocumenter(ExceptionDocumenter)
@@ -2821,22 +2855,22 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_autodocumenter(AttributeDocumenter)
app.add_autodocumenter(PropertyDocumenter)
- app.add_config_value('autoclass_content', 'class', True, ENUM('both', 'class', 'init'))
- app.add_config_value('autodoc_member_order', 'alphabetical', True,
+ app.add_config_value('autoclass_content', 'class', 'env', ENUM('both', 'class', 'init'))
+ app.add_config_value('autodoc_member_order', 'alphabetical', 'env',
ENUM('alphabetical', 'bysource', 'groupwise'))
- app.add_config_value('autodoc_class_signature', 'mixed', True, ENUM('mixed', 'separated'))
- app.add_config_value('autodoc_default_options', {}, True)
- app.add_config_value('autodoc_docstring_signature', True, True)
- app.add_config_value('autodoc_mock_imports', [], True)
- app.add_config_value('autodoc_typehints', "signature", True,
+ app.add_config_value('autodoc_class_signature', 'mixed', 'env', ENUM('mixed', 'separated'))
+ app.add_config_value('autodoc_default_options', {}, 'env')
+ app.add_config_value('autodoc_docstring_signature', True, 'env')
+ app.add_config_value('autodoc_mock_imports', [], 'env')
+ app.add_config_value('autodoc_typehints', "signature", 'env',
ENUM("signature", "description", "none", "both"))
- app.add_config_value('autodoc_typehints_description_target', 'all', True,
+ app.add_config_value('autodoc_typehints_description_target', 'all', 'env',
ENUM('all', 'documented', 'documented_params'))
- app.add_config_value('autodoc_type_aliases', {}, True)
+ app.add_config_value('autodoc_type_aliases', {}, 'env')
app.add_config_value('autodoc_typehints_format', "short", 'env',
ENUM("fully-qualified", "short"))
- app.add_config_value('autodoc_warningiserror', True, True)
- app.add_config_value('autodoc_inherit_docstrings', True, True)
+ app.add_config_value('autodoc_warningiserror', True, 'env')
+ app.add_config_value('autodoc_inherit_docstrings', True, 'env')
app.add_event('autodoc-before-process-signature')
app.add_event('autodoc-process-docstring')
app.add_event('autodoc-process-signature')
diff --git a/sphinx/ext/autodoc/directive.py b/sphinx/ext/autodoc/directive.py
index 64cbc9b..130e347 100644
--- a/sphinx/ext/autodoc/directive.py
+++ b/sphinx/ext/autodoc/directive.py
@@ -59,20 +59,20 @@ class DocumenterBridge:
def process_documenter_options(documenter: type[Documenter], config: Config, options: dict,
) -> Options:
"""Recognize options of Documenter from user input."""
+ default_options = config.autodoc_default_options
for name in AUTODOC_DEFAULT_OPTIONS:
if name not in documenter.option_spec:
continue
negated = options.pop('no-' + name, True) is None
- if name in config.autodoc_default_options and not negated:
- if name in options and isinstance(config.autodoc_default_options[name], str):
+ if name in default_options and not negated:
+ if name in options and isinstance(default_options[name], str):
# take value from options if present or extend it
# with autodoc_default_options if necessary
if name in AUTODOC_EXTENDABLE_OPTIONS:
if options[name] is not None and options[name].startswith('+'):
- options[name] = ','.join([config.autodoc_default_options[name],
- options[name][1:]])
+ options[name] = f'{default_options[name]},{options[name][1:]}'
else:
- options[name] = config.autodoc_default_options[name]
+ options[name] = default_options[name]
elif options.get(name) is not None:
# remove '+' from option argument if there's nothing to merge it with
@@ -104,6 +104,7 @@ class AutodocDirective(SphinxDirective):
It invokes a Documenter upon running. After the processing, it parses and returns
the content generated by Documenter.
"""
+
option_spec = DummyOptionSpec()
has_content = True
required_arguments = 1
@@ -114,7 +115,7 @@ class AutodocDirective(SphinxDirective):
reporter = self.state.document.reporter
try:
- source, lineno = reporter.get_source_and_line( # type: ignore[attr-defined]
+ source, lineno = reporter.get_source_and_line(
self.lineno)
except AttributeError:
source, lineno = (None, None)
diff --git a/sphinx/ext/autodoc/importer.py b/sphinx/ext/autodoc/importer.py
index 84bfee5..784fa71 100644
--- a/sphinx/ext/autodoc/importer.py
+++ b/sphinx/ext/autodoc/importer.py
@@ -8,7 +8,8 @@ import os
import sys
import traceback
import typing
-from typing import TYPE_CHECKING, Any, Callable, NamedTuple
+from enum import Enum
+from typing import TYPE_CHECKING, NamedTuple
from sphinx.ext.autodoc.mock import ismock, undecorate
from sphinx.pycode import ModuleAnalyzer, PycodeError
@@ -20,16 +21,91 @@ from sphinx.util.inspect import (
isclass,
isenumclass,
safe_getattr,
+ unwrap_all,
)
if TYPE_CHECKING:
+ from collections.abc import Callable, Iterator, Mapping
from types import ModuleType
+ from typing import Any
from sphinx.ext.autodoc import ObjectMember
logger = logging.getLogger(__name__)
+def _filter_enum_dict(
+ enum_class: type[Enum],
+ attrgetter: Callable[[Any, str, Any], Any],
+ enum_class_dict: Mapping[str, object],
+) -> Iterator[tuple[str, type, Any]]:
+ """Find the attributes to document of an enumeration class.
+
+ The output consists of triplets ``(attribute name, defining class, value)``
+ where the attribute name can appear more than once during the iteration
+ but with different defining class. The order of occurrence is guided by
+ the MRO of *enum_class*.
+ """
+ # attributes that were found on a mixin type or the data type
+ candidate_in_mro: set[str] = set()
+ # sunder names that were picked up (and thereby allowed to be redefined)
+ # see: https://docs.python.org/3/howto/enum.html#supported-dunder-names
+ sunder_names = {'_name_', '_value_', '_missing_', '_order_', '_generate_next_value_'}
+ # attributes that can be picked up on a mixin type or the enum's data type
+ public_names = {'name', 'value', *object.__dict__, *sunder_names}
+ # names that are ignored by default
+ ignore_names = Enum.__dict__.keys() - public_names
+
+ def is_native_api(obj: object, name: str) -> bool:
+ """Check whether *obj* is the same as ``Enum.__dict__[name]``."""
+ return unwrap_all(obj) is unwrap_all(Enum.__dict__[name])
+
+ def should_ignore(name: str, value: Any) -> bool:
+ if name in sunder_names:
+ return is_native_api(value, name)
+ return name in ignore_names
+
+ sentinel = object()
+
+ def query(name: str, defining_class: type) -> tuple[str, type, Any] | None:
+ value = attrgetter(enum_class, name, sentinel)
+ if value is not sentinel:
+ return (name, defining_class, value)
+ return None
+
+ # attributes defined on a parent type, possibly shadowed later by
+ # the attributes defined directly inside the enumeration class
+ for parent in enum_class.__mro__:
+ if parent in {enum_class, Enum, object}:
+ continue
+
+ parent_dict = attrgetter(parent, '__dict__', {})
+ for name, value in parent_dict.items():
+ if should_ignore(name, value):
+ continue
+
+ candidate_in_mro.add(name)
+ if (item := query(name, parent)) is not None:
+ yield item
+
+ # exclude members coming from the native Enum unless
+ # they were redefined on a mixin type or the data type
+ excluded_members = Enum.__dict__.keys() - candidate_in_mro
+ yield from filter(None, (query(name, enum_class) for name in enum_class_dict
+ if name not in excluded_members))
+
+ # check if allowed members from ``Enum`` were redefined at the enum level
+ special_names = sunder_names | public_names
+ special_names &= enum_class_dict.keys()
+ special_names &= Enum.__dict__.keys()
+ for name in special_names:
+ if (
+ not is_native_api(enum_class_dict[name], name)
+ and (item := query(name, enum_class)) is not None
+ ):
+ yield item
+
+
def mangle(subject: Any, name: str) -> str:
"""Mangle the given name."""
try:
@@ -61,9 +137,7 @@ def unmangle(subject: Any, name: str) -> str | None:
def import_module(modname: str, warningiserror: bool = False) -> Any:
- """
- Call importlib.import_module(modname), convert exceptions to ImportError
- """
+ """Call importlib.import_module(modname), convert exceptions to ImportError."""
try:
with logging.skip_warningiserror(not warningiserror):
return importlib.import_module(modname)
@@ -97,7 +171,7 @@ def import_object(modname: str, objpath: list[str], objtype: str = '',
try:
module = None
exc_on_importing = None
- objpath = list(objpath)
+ objpath = objpath.copy()
while module is None:
try:
original_module_names = frozenset(sys.modules)
@@ -194,15 +268,11 @@ def get_object_members(
# enum members
if isenumclass(subject):
- for name, value in subject.__members__.items():
- if name not in members:
- members[name] = Attribute(name, True, value)
-
- superclass = subject.__mro__[1]
- for name in obj_dict:
- if name not in superclass.__dict__:
- value = safe_getattr(subject, name)
- members[name] = Attribute(name, True, value)
+ for name, defining_class, value in _filter_enum_dict(subject, attrgetter, obj_dict):
+ # the order of occurrence of *name* matches the subject's MRO,
+ # allowing inherited attributes to be shadowed correctly
+ if unmangled := unmangle(defining_class, name):
+ members[unmangled] = Attribute(unmangled, defining_class is subject, value)
# members in __slots__
try:
@@ -220,18 +290,18 @@ def get_object_members(
try:
value = attrgetter(subject, name)
directly_defined = name in obj_dict
- name = unmangle(subject, name)
- if name and name not in members:
- members[name] = Attribute(name, directly_defined, value)
+ unmangled = unmangle(subject, name)
+ if unmangled and unmangled not in members:
+ members[unmangled] = Attribute(unmangled, directly_defined, value)
except AttributeError:
continue
# annotation only member (ex. attr: int)
- for i, cls in enumerate(getmro(subject)):
+ for cls in getmro(subject):
for name in getannotations(cls):
- name = unmangle(cls, name)
- if name and name not in members:
- members[name] = Attribute(name, i == 0, INSTANCEATTR)
+ unmangled = unmangle(cls, name)
+ if unmangled and unmangled not in members:
+ members[unmangled] = Attribute(unmangled, cls is subject, INSTANCEATTR)
if analyzer:
# append instance attributes (cf. self.attr1) if analyzer knows
@@ -255,15 +325,11 @@ def get_class_members(subject: Any, objpath: Any, attrgetter: Callable,
# enum members
if isenumclass(subject):
- for name, value in subject.__members__.items():
- if name not in members:
- members[name] = ObjectMember(name, value, class_=subject)
-
- superclass = subject.__mro__[1]
- for name in obj_dict:
- if name not in superclass.__dict__:
- value = safe_getattr(subject, name)
- members[name] = ObjectMember(name, value, class_=subject)
+ for name, defining_class, value in _filter_enum_dict(subject, attrgetter, obj_dict):
+ # the order of occurrence of *name* matches the subject's MRO,
+ # allowing inherited attributes to be shadowed correctly
+ if unmangled := unmangle(defining_class, name):
+ members[unmangled] = ObjectMember(unmangled, value, class_=defining_class)
# members in __slots__
try:
@@ -308,15 +374,15 @@ def get_class_members(subject: Any, objpath: Any, attrgetter: Callable,
# annotation only member (ex. attr: int)
for name in getannotations(cls):
- name = unmangle(cls, name)
- if name and name not in members:
- if analyzer and (qualname, name) in analyzer.attr_docs:
- docstring = '\n'.join(analyzer.attr_docs[qualname, name])
+ unmangled = unmangle(cls, name)
+ if unmangled and unmangled not in members:
+ if analyzer and (qualname, unmangled) in analyzer.attr_docs:
+ docstring = '\n'.join(analyzer.attr_docs[qualname, unmangled])
else:
docstring = None
- members[name] = ObjectMember(name, INSTANCEATTR, class_=cls,
- docstring=docstring)
+ members[unmangled] = ObjectMember(unmangled, INSTANCEATTR, class_=cls,
+ docstring=docstring)
# append or complete instance attributes (cf. self.attr1) if analyzer knows
if analyzer:
diff --git a/sphinx/ext/autodoc/mock.py b/sphinx/ext/autodoc/mock.py
index 7034977..c2ab0fe 100644
--- a/sphinx/ext/autodoc/mock.py
+++ b/sphinx/ext/autodoc/mock.py
@@ -14,7 +14,7 @@ from sphinx.util import logging
from sphinx.util.inspect import isboundmethod, safe_getattr
if TYPE_CHECKING:
- from collections.abc import Generator, Iterator, Sequence
+ from collections.abc import Iterator, Sequence
logger = logging.getLogger(__name__)
@@ -80,6 +80,7 @@ def _make_subclass(name: str, module: str, superclass: Any = _MockObject,
class _MockModule(ModuleType):
"""Used by autodoc_mock_imports."""
+
__file__ = os.devnull
__sphinx_mock__ = True
@@ -97,6 +98,7 @@ class _MockModule(ModuleType):
class MockLoader(Loader):
"""A loader for mocking."""
+
def __init__(self, finder: MockFinder) -> None:
super().__init__()
self.finder = finder
@@ -135,12 +137,12 @@ class MockFinder(MetaPathFinder):
@contextlib.contextmanager
-def mock(modnames: list[str]) -> Generator[None, None, None]:
+def mock(modnames: list[str]) -> Iterator[None]:
"""Insert mock modules during context::
- with mock(['target.module.name']):
- # mock modules are enabled here
- ...
+ with mock(['target.module.name']):
+ # mock modules are enabled here
+ ...
"""
try:
finder = MockFinder(modnames)
diff --git a/sphinx/ext/autodoc/preserve_defaults.py b/sphinx/ext/autodoc/preserve_defaults.py
index 5f957ce..b0b3243 100644
--- a/sphinx/ext/autodoc/preserve_defaults.py
+++ b/sphinx/ext/autodoc/preserve_defaults.py
@@ -22,6 +22,7 @@ if TYPE_CHECKING:
from typing import Any
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
_LAMBDA_NAME = (lambda: None).__name__
@@ -96,7 +97,7 @@ def _get_arguments(obj: Any, /) -> ast.arguments | None:
return _get_arguments_inner(subject)
-def _is_lambda(x, /):
+def _is_lambda(x: Any, /) -> bool:
return isinstance(x, types.LambdaType) and x.__name__ == _LAMBDA_NAME
@@ -189,8 +190,8 @@ def update_defvalue(app: Sphinx, obj: Any, bound_method: bool) -> None:
logger.warning(__("Failed to parse a default argument value for %r: %s"), obj, exc)
-def setup(app: Sphinx) -> dict[str, Any]:
- app.add_config_value('autodoc_preserve_defaults', False, True)
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.add_config_value('autodoc_preserve_defaults', False, 'env')
app.connect('autodoc-before-process-signature', update_defvalue)
return {
diff --git a/sphinx/ext/autodoc/type_comment.py b/sphinx/ext/autodoc/type_comment.py
index e2c9ae2..e0a5a63 100644
--- a/sphinx/ext/autodoc/type_comment.py
+++ b/sphinx/ext/autodoc/type_comment.py
@@ -15,6 +15,7 @@ if TYPE_CHECKING:
from collections.abc import Sequence
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -134,7 +135,7 @@ def update_annotations_using_type_comments(app: Sphinx, obj: Any, bound_method:
logger.warning(__("Failed to parse type_comment for %r: %s"), obj, exc)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('autodoc-before-process-signature', update_annotations_using_type_comments)
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/autodoc/typehints.py b/sphinx/ext/autodoc/typehints.py
index 79906fb..df0c468 100644
--- a/sphinx/ext/autodoc/typehints.py
+++ b/sphinx/ext/autodoc/typehints.py
@@ -11,16 +11,17 @@ from docutils import nodes
import sphinx
from sphinx import addnodes
from sphinx.util import inspect
-from sphinx.util.typing import stringify_annotation
+from sphinx.util.typing import ExtensionMetadata, stringify_annotation
if TYPE_CHECKING:
from docutils.nodes import Element
from sphinx.application import Sphinx
+ from sphinx.ext.autodoc import Options
def record_typehints(app: Sphinx, objtype: str, name: str, obj: Any,
- options: dict, args: str, retann: str) -> None:
+ options: Options, args: str, retann: str) -> None:
"""Record type hints to env object."""
if app.config.autodoc_typehints_format == 'short':
mode = 'smart'
@@ -50,7 +51,7 @@ def merge_typehints(app: Sphinx, domain: str, objtype: str, contentnode: Element
try:
signature = cast(addnodes.desc_signature, contentnode.parent[0])
if signature['module']:
- fullname = '.'.join([signature['module'], signature['fullname']])
+ fullname = f'{signature["module"]}.{signature["fullname"]}'
else:
fullname = signature['fullname']
except KeyError:
@@ -208,7 +209,7 @@ def augment_descriptions_with_types(
node += field
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('autodoc-process-signature', record_typehints)
app.connect('object-description-transform', merge_typehints)
diff --git a/sphinx/ext/autosectionlabel.py b/sphinx/ext/autosectionlabel.py
index d423fcc..c1eb46b 100644
--- a/sphinx/ext/autosectionlabel.py
+++ b/sphinx/ext/autosectionlabel.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, cast
from docutils import nodes
@@ -16,6 +16,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -57,7 +58,7 @@ def register_sections_as_label(app: Sphinx, document: Node) -> None:
domain.labels[name] = docname, labelid, sectname
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_config_value('autosectionlabel_prefix_document', False, 'env')
app.add_config_value('autosectionlabel_maxdepth', None, 'env')
app.connect('doctree-read', register_sections_as_label)
diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py
index edb8f0d..7057f43 100644
--- a/sphinx/ext/autosummary/__init__.py
+++ b/sphinx/ext/autosummary/__init__.py
@@ -48,7 +48,9 @@ This can be used as the default role to make links 'smart'.
from __future__ import annotations
+import functools
import inspect
+import operator
import os
import posixpath
import re
@@ -56,7 +58,7 @@ import sys
from inspect import Parameter
from os import path
from types import ModuleType
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, Any, ClassVar, cast
from docutils import nodes
from docutils.parsers.rst import directives
@@ -93,7 +95,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.extension import Extension
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator
logger = logging.getLogger(__name__)
@@ -162,7 +164,7 @@ class FakeDirective(DocumenterBridge):
settings = Struct(tab_width=8)
document = Struct(settings=settings)
app = FakeApplication()
- app.config.add('autodoc_class_signature', 'mixed', True, None)
+ app.config.add('autodoc_class_signature', 'mixed', 'env', ())
env = BuildEnvironment(app) # type: ignore[arg-type]
state = Struct(document=document)
super().__init__(env, None, Options(), 0, state)
@@ -216,7 +218,7 @@ class Autosummary(SphinxDirective):
optional_arguments = 0
final_argument_whitespace = False
has_content = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'caption': directives.unchanged_required,
'toctree': directives.unchanged,
'nosignatures': directives.flag,
@@ -284,9 +286,9 @@ class Autosummary(SphinxDirective):
return import_ivar_by_name(name, prefixes)
except ImportError as exc2:
if exc2.__cause__:
- errors: list[BaseException] = exc.exceptions + [exc2.__cause__]
+ errors: list[BaseException] = [*exc.exceptions, exc2.__cause__]
else:
- errors = exc.exceptions + [exc2]
+ errors = [*exc.exceptions, exc2]
raise ImportExceptionGroup(exc.args[0], errors) from None
@@ -591,7 +593,7 @@ def limited_join(sep: str, items: list[str], max_chars: int = 30,
else:
break
- return sep.join(list(items[:n_items]) + [overflow_marker])
+ return sep.join([*list(items[:n_items]), overflow_marker])
# -- Importing items -----------------------------------------------------------
@@ -603,7 +605,7 @@ class ImportExceptionGroup(Exception):
It contains an error messages and a list of exceptions as its arguments.
"""
- def __init__(self, message: str | None, exceptions: Sequence[BaseException]):
+ def __init__(self, message: str | None, exceptions: Sequence[BaseException]) -> None:
super().__init__(message)
self.exceptions = list(exceptions)
@@ -640,7 +642,7 @@ def import_by_name(
for prefix in prefixes:
try:
if prefix:
- prefixed_name = '.'.join([prefix, name])
+ prefixed_name = f'{prefix}.{name}'
else:
prefixed_name = name
obj, parent, modname = _import_by_name(prefixed_name, grouped_exception=True)
@@ -651,7 +653,8 @@ def import_by_name(
tried.append(prefixed_name)
errors.append(exc)
- exceptions: list[BaseException] = sum((e.exceptions for e in errors), [])
+ exceptions: list[BaseException] = functools.reduce(
+ operator.iadd, (e.exceptions for e in errors), [])
raise ImportExceptionGroup('no module named %s' % ' or '.join(tried), exceptions)
@@ -742,6 +745,7 @@ class AutoLink(SphinxRole):
Expands to ':obj:`text`' if `text` is an object that can be imported;
otherwise expands to '*text*'.
"""
+
def run(self) -> tuple[list[Node], list[system_message]]:
pyobj_role = self.env.get_domain('py').role('obj')
assert pyobj_role is not None
@@ -766,7 +770,7 @@ class AutoLink(SphinxRole):
def get_rst_suffix(app: Sphinx) -> str | None:
def get_supported_format(suffix: str) -> tuple[str, ...]:
- parser_class = app.registry.get_source_parsers().get(suffix)
+ parser_class = app.registry.get_source_parsers().get(suffix.removeprefix('.'))
if parser_class is None:
return ('restructuredtext',)
return parser_class.supported
@@ -803,7 +807,7 @@ def process_generate_options(app: Sphinx) -> None:
suffix = get_rst_suffix(app)
if suffix is None:
- logger.warning(__('autosummary generats .rst files internally. '
+ logger.warning(__('autosummary generates .rst files internally. '
'But your source_suffix does not contain .rst. Skipped.'))
return
@@ -817,7 +821,7 @@ def process_generate_options(app: Sphinx) -> None:
encoding=app.config.source_encoding)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
# I need autodoc
app.setup_extension('sphinx.ext.autodoc')
app.add_node(autosummary_toc,
@@ -835,13 +839,13 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_directive('autosummary', Autosummary)
app.add_role('autolink', AutoLink())
app.connect('builder-inited', process_generate_options)
- app.add_config_value('autosummary_context', {}, True)
+ app.add_config_value('autosummary_context', {}, 'env')
app.add_config_value('autosummary_filename_map', {}, 'html')
- app.add_config_value('autosummary_generate', True, True, [bool, list])
- app.add_config_value('autosummary_generate_overwrite', True, False)
+ app.add_config_value('autosummary_generate', True, 'env', {bool, list})
+ app.add_config_value('autosummary_generate_overwrite', True, '')
app.add_config_value('autosummary_mock_imports',
lambda config: config.autodoc_mock_imports, 'env')
- app.add_config_value('autosummary_imported_members', [], False, [bool])
+ app.add_config_value('autosummary_imported_members', [], '', bool)
app.add_config_value('autosummary_ignore_module_all', True, 'env', bool)
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py
index 06814f9..83497f9 100644
--- a/sphinx/ext/autosummary/generate.py
+++ b/sphinx/ext/autosummary/generate.py
@@ -71,10 +71,9 @@ class DummyApplication:
self._warncount = 0
self.warningiserror = False
- self.config.add('autosummary_context', {}, True, None)
- self.config.add('autosummary_filename_map', {}, True, None)
+ self.config.add('autosummary_context', {}, 'env', ())
+ self.config.add('autosummary_filename_map', {}, 'env', ())
self.config.add('autosummary_ignore_module_all', True, 'env', bool)
- self.config.init_values()
def emit_firstresult(self, *args: Any) -> None:
pass
@@ -134,7 +133,8 @@ class AutosummaryRenderer:
if app.translator:
self.env.add_extension("jinja2.ext.i18n")
- self.env.install_gettext_translations(app.translator)
+ # ``install_gettext_translations`` is injected by the ``jinja2.ext.i18n`` extension
+ self.env.install_gettext_translations(app.translator) # type: ignore[attr-defined]
def render(self, template_name: str, context: dict) -> str:
"""Render a template file."""
@@ -249,8 +249,8 @@ class ModuleScanner:
def members_of(obj: Any, conf: Config) -> Sequence[str]:
"""Get the members of ``obj``, possibly ignoring the ``__all__`` module attribute
- Follows the ``conf.autosummary_ignore_module_all`` setting."""
-
+ Follows the ``conf.autosummary_ignore_module_all`` setting.
+ """
if conf.autosummary_ignore_module_all:
return dir(obj)
else:
@@ -331,7 +331,7 @@ def generate_autosummary_content(name: str, obj: Any, parent: Any,
if doc.objtype in ('method', 'attribute', 'property'):
ns['class'] = qualname.rsplit(".", 1)[0]
- if doc.objtype in ('class',):
+ if doc.objtype == 'class':
shortname = qualname
else:
shortname = qualname.rsplit(".", 1)[-1]
@@ -509,9 +509,9 @@ def generate_autosummary_docs(sources: list[str],
qualname = name.replace(modname + ".", "")
except ImportError as exc2:
if exc2.__cause__:
- exceptions: list[BaseException] = exc.exceptions + [exc2.__cause__]
+ exceptions: list[BaseException] = [*exc.exceptions, exc2.__cause__]
else:
- exceptions = exc.exceptions + [exc2]
+ exceptions = [*exc.exceptions, exc2]
errors = list({f"* {type(e).__name__}: {e}" for e in exceptions})
logger.warning(__('[autosummary] failed to import %s.\nPossible hints:\n%s'),
diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py
index e3d9745..cfe0936 100644
--- a/sphinx/ext/coverage.py
+++ b/sphinx/ext/coverage.py
@@ -19,13 +19,14 @@ import sphinx
from sphinx.builders import Builder
from sphinx.locale import __
from sphinx.util import logging
-from sphinx.util.console import red # type: ignore[attr-defined]
+from sphinx.util.console import red
from sphinx.util.inspect import safe_getattr
if TYPE_CHECKING:
from collections.abc import Iterator
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -69,6 +70,7 @@ class CoverageBuilder(Builder):
"""
Evaluates coverage of code in the documentation.
"""
+
name = 'coverage'
epilog = __('Testing of coverage in the sources finished, look at the '
'results in %(outdir)s' + path.sep + 'python.txt.')
@@ -270,7 +272,7 @@ class CoverageBuilder(Builder):
self.py_documented[mod_name] = documented_objects
def _write_py_statistics(self, op: TextIO) -> None:
- """ Outputs the table of ``op``."""
+ """Outputs the table of ``op``."""
all_modules = set(self.py_documented.keys()).union(
set(self.py_undocumented.keys()))
all_objects: set[str] = set()
@@ -290,11 +292,15 @@ class CoverageBuilder(Builder):
value = 100.0
table.append([module, '%.2f%%' % value, '%d' % len(self.py_undocumented[module])])
- table.append([
- 'TOTAL',
- f'{100 * len(all_documented_objects) / len(all_objects):.2f}%',
- f'{len(all_objects) - len(all_documented_objects)}',
- ])
+
+ if all_objects:
+ table.append([
+ 'TOTAL',
+ f'{100 * len(all_documented_objects) / len(all_objects):.2f}%',
+ f'{len(all_objects) - len(all_documented_objects)}',
+ ])
+ else:
+ table.append(['TOTAL', '100', '0'])
for line in _write_table(table):
op.write(f'{line}\n')
@@ -383,18 +389,18 @@ class CoverageBuilder(Builder):
self.py_undocumented, self.py_documented), dumpfile)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_builder(CoverageBuilder)
- app.add_config_value('coverage_ignore_modules', [], False)
- app.add_config_value('coverage_ignore_functions', [], False)
- app.add_config_value('coverage_ignore_classes', [], False)
- app.add_config_value('coverage_ignore_pyobjects', [], False)
- app.add_config_value('coverage_c_path', [], False)
- app.add_config_value('coverage_c_regexes', {}, False)
- app.add_config_value('coverage_ignore_c_items', {}, False)
- app.add_config_value('coverage_write_headline', True, False)
- app.add_config_value('coverage_statistics_to_report', True, False, (bool,))
- app.add_config_value('coverage_statistics_to_stdout', True, False, (bool,))
- app.add_config_value('coverage_skip_undoc_in_source', False, False)
- app.add_config_value('coverage_show_missing_items', False, False)
+ app.add_config_value('coverage_ignore_modules', [], '')
+ app.add_config_value('coverage_ignore_functions', [], '')
+ app.add_config_value('coverage_ignore_classes', [], '')
+ app.add_config_value('coverage_ignore_pyobjects', [], '')
+ app.add_config_value('coverage_c_path', [], '')
+ app.add_config_value('coverage_c_regexes', {}, '')
+ app.add_config_value('coverage_ignore_c_items', {}, '')
+ app.add_config_value('coverage_write_headline', True, '')
+ app.add_config_value('coverage_statistics_to_report', True, '', bool)
+ app.add_config_value('coverage_statistics_to_stdout', True, '', bool)
+ app.add_config_value('coverage_skip_undoc_in_source', False, '')
+ app.add_config_value('coverage_show_missing_items', False, '')
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py
index c55ef2f..e6ba274 100644
--- a/sphinx/ext/doctest.py
+++ b/sphinx/ext/doctest.py
@@ -11,7 +11,7 @@ import sys
import time
from io import StringIO
from os import path
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING, Any, Callable, ClassVar
from docutils import nodes
from docutils.parsers.rst import directives
@@ -22,7 +22,7 @@ import sphinx
from sphinx.builders import Builder
from sphinx.locale import __
from sphinx.util import logging
-from sphinx.util.console import bold # type: ignore[attr-defined]
+from sphinx.util.console import bold
from sphinx.util.docutils import SphinxDirective
from sphinx.util.osutil import relpath
@@ -32,7 +32,7 @@ if TYPE_CHECKING:
from docutils.nodes import Element, Node, TextElement
from sphinx.application import Sphinx
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
logger = logging.getLogger(__name__)
@@ -125,7 +125,7 @@ class TestDirective(SphinxDirective):
if self.name == 'doctest' and 'pyversion' in self.options:
try:
spec = self.options['pyversion']
- python_version = '.'.join([str(v) for v in sys.version_info[:3]])
+ python_version = '.'.join(map(str, sys.version_info[:3]))
if not is_allowed_version(spec, python_version):
flag = doctest.OPTIONFLAGS_BY_NAME['SKIP']
node['options'][flag] = True # Skip the test
@@ -143,19 +143,19 @@ class TestDirective(SphinxDirective):
class TestsetupDirective(TestDirective):
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'skipif': directives.unchanged_required,
}
class TestcleanupDirective(TestDirective):
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'skipif': directives.unchanged_required,
}
class DoctestDirective(TestDirective):
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'hide': directives.flag,
'no-trim-doctest-flags': directives.flag,
'options': directives.unchanged,
@@ -166,7 +166,7 @@ class DoctestDirective(TestDirective):
class TestcodeDirective(TestDirective):
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'hide': directives.flag,
'no-trim-doctest-flags': directives.flag,
'pyversion': directives.unchanged_required,
@@ -176,7 +176,7 @@ class TestcodeDirective(TestDirective):
class TestoutputDirective(TestDirective):
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'hide': directives.flag,
'no-trim-doctest-flags': directives.flag,
'options': directives.unchanged,
@@ -276,6 +276,7 @@ class DocTestBuilder(Builder):
"""
Runs test snippets in the documentation.
"""
+
name = 'doctest'
epilog = __('Testing of doctests in the sources finished, look at the '
'results in %(outdir)s/output.txt.')
@@ -310,6 +311,12 @@ class DocTestBuilder(Builder):
'==================================%s\n') %
(date, '=' * len(date)))
+ def __del__(self) -> None:
+ # free resources upon destruction (the file handler might not be
+ # closed if the builder is never used)
+ if hasattr(self, 'outfile'):
+ self.outfile.close()
+
def _out(self, text: str) -> None:
logger.info(text, nonl=True)
self.outfile.write(text)
@@ -361,16 +368,16 @@ Doctest summary
def get_filename_for_node(self, node: Node, docname: str) -> str:
"""Try to get the file which actually contains the doctest, not the
- filename of the document it's included in."""
+ filename of the document it's included in.
+ """
try:
- filename = relpath(node.source, self.env.srcdir)\
- .rsplit(':docstring of ', maxsplit=1)[0]
+ filename = relpath(node.source, self.env.srcdir).rsplit(':docstring of ', maxsplit=1)[0] # type: ignore[arg-type] # noqa: E501
except Exception:
filename = self.env.doc2path(docname, False)
return filename
@staticmethod
- def get_line_number(node: Node) -> int:
+ def get_line_number(node: Node) -> int | None:
"""Get the real line number or admit we don't know."""
# TODO: Work out how to store or calculate real (file-relative)
# line numbers for doctest blocks in docstrings.
@@ -379,7 +386,7 @@ Doctest summary
# not the file. This is correct where it is set, in
# `docutils.nodes.Node.setup_child`, but Sphinx should report
# relative to the file, not the docstring.
- return None # type: ignore[return-value]
+ return None
if node.line is not None:
# TODO: find the root cause of this off by one error.
return node.line - 1
@@ -393,7 +400,7 @@ Doctest summary
context: dict[str, Any] = {}
if self.config.doctest_global_setup:
exec(self.config.doctest_global_setup, context) # NoQA: S102
- should_skip = eval(condition, context) # NoQA: PGH001
+ should_skip = eval(condition, context) # NoQA: S307
if self.config.doctest_global_cleanup:
exec(self.config.doctest_global_cleanup, context) # NoQA: S102
return should_skip
@@ -420,21 +427,21 @@ Doctest summary
def condition(node: Node) -> bool:
return isinstance(node, (nodes.literal_block, nodes.comment)) \
and 'testnodetype' in node
- for node in doctree.findall(condition): # type: Element
- if self.skipped(node):
+ for node in doctree.findall(condition):
+ if self.skipped(node): # type: ignore[arg-type]
continue
- source = node['test'] if 'test' in node else node.astext()
+ source = node['test'] if 'test' in node else node.astext() # type: ignore[index, operator]
filename = self.get_filename_for_node(node, docname)
line_number = self.get_line_number(node)
if not source:
logger.warning(__('no code/output in %s block at %s:%s'),
- node.get('testnodetype', 'doctest'),
+ node.get('testnodetype', 'doctest'), # type: ignore[attr-defined]
filename, line_number)
- code = TestCode(source, type=node.get('testnodetype', 'doctest'),
- filename=filename, lineno=line_number,
- options=node.get('options'))
- node_groups = node.get('groups', ['default'])
+ code = TestCode(source, type=node.get('testnodetype', 'doctest'), # type: ignore[attr-defined]
+ filename=filename, lineno=line_number, # type: ignore[arg-type]
+ options=node.get('options')) # type: ignore[attr-defined]
+ node_groups = node.get('groups', ['default']) # type: ignore[attr-defined]
if '*' in node_groups:
add_to_all_groups.append(code)
continue
@@ -501,9 +508,7 @@ Doctest summary
old_f = runner.failures
self.type = 'exec' # the snippet may contain multiple statements
runner.run(sim_doctest, out=self._warn_out, clear_globs=False)
- if runner.failures > old_f:
- return False
- return True
+ return runner.failures <= old_f
# run the setup code
if not run_setup_cleanup(self.setup_runner, group.setup, 'setup'):
@@ -555,7 +560,7 @@ Doctest summary
run_setup_cleanup(self.cleanup_runner, group.cleanup, 'cleanup')
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_directive('testsetup', TestsetupDirective)
app.add_directive('testcleanup', TestcleanupDirective)
app.add_directive('doctest', DoctestDirective)
@@ -563,13 +568,13 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_directive('testoutput', TestoutputDirective)
app.add_builder(DocTestBuilder)
# this config value adds to sys.path
- app.add_config_value('doctest_show_successes', True, False, (bool,))
- app.add_config_value('doctest_path', [], False)
- app.add_config_value('doctest_test_doctest_blocks', 'default', False)
- app.add_config_value('doctest_global_setup', '', False)
- app.add_config_value('doctest_global_cleanup', '', False)
+ app.add_config_value('doctest_show_successes', True, '', bool)
+ app.add_config_value('doctest_path', [], '')
+ app.add_config_value('doctest_test_doctest_blocks', 'default', '')
+ app.add_config_value('doctest_global_setup', '', '')
+ app.add_config_value('doctest_global_cleanup', '', '')
app.add_config_value(
'doctest_default_flags',
doctest.DONT_ACCEPT_TRUE_FOR_1 | doctest.ELLIPSIS | doctest.IGNORE_EXCEPTION_DETAIL,
- False)
+ '')
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/duration.py b/sphinx/ext/duration.py
index 26e197f..2243579 100644
--- a/sphinx/ext/duration.py
+++ b/sphinx/ext/duration.py
@@ -22,6 +22,7 @@ logger = logging.getLogger(__name__)
class DurationDomain(Domain):
"""A domain for durations of Sphinx processing."""
+
name = 'duration'
@property
diff --git a/sphinx/ext/extlinks.py b/sphinx/ext/extlinks.py
index 173df4d..a880278 100644
--- a/sphinx/ext/extlinks.py
+++ b/sphinx/ext/extlinks.py
@@ -37,7 +37,7 @@ if TYPE_CHECKING:
from docutils.parsers.rst.states import Inliner
from sphinx.application import Sphinx
- from sphinx.util.typing import RoleFunction
+ from sphinx.util.typing import ExtensionMetadata, RoleFunction
logger = logging.getLogger(__name__)
@@ -96,7 +96,8 @@ def make_link_role(name: str, base_url: str, caption: str) -> RoleFunction:
# Remark: It is an implementation detail that we use Pythons %-formatting.
# So far we only expose ``%s`` and require quoting of ``%`` using ``%%``.
def role(typ: str, rawtext: str, text: str, lineno: int,
- inliner: Inliner, options: dict | None = None, content: Sequence[str] = (),
+ inliner: Inliner, options: dict[str, Any] | None = None,
+ content: Sequence[str] = (),
) -> tuple[list[Node], list[system_message]]:
text = utils.unescape(text)
has_explicit_title, title, part = split_explicit_title(text)
@@ -116,7 +117,7 @@ def setup_link_roles(app: Sphinx) -> None:
app.add_role(name, make_link_role(name, base_url, caption))
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_config_value('extlinks', {}, 'env')
app.add_config_value('extlinks_detect_hardcoded_links', False, 'env')
diff --git a/sphinx/ext/githubpages.py b/sphinx/ext/githubpages.py
index c9be928..aac4797 100644
--- a/sphinx/ext/githubpages.py
+++ b/sphinx/ext/githubpages.py
@@ -5,13 +5,14 @@ from __future__ import annotations
import contextlib
import os
import urllib.parse
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
import sphinx
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
def _get_domain_from_url(url: str) -> str:
@@ -52,6 +53,6 @@ def create_nojekyll_and_cname(app: Sphinx, env: BuildEnvironment) -> None:
os.unlink(cname_path)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('env-updated', create_nojekyll_and_cname)
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py
index 528bf30..9e6ce11 100644
--- a/sphinx/ext/graphviz.py
+++ b/sphinx/ext/graphviz.py
@@ -11,7 +11,7 @@ from hashlib import sha1
from itertools import chain
from os import path
from subprocess import CalledProcessError
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, Any, ClassVar
from urllib.parse import urlsplit, urlunsplit
from docutils import nodes
@@ -31,7 +31,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator
from sphinx.writers.latex import LaTeXTranslator
from sphinx.writers.manpage import ManualPageTranslator
@@ -47,6 +47,7 @@ class GraphvizError(SphinxError):
class ClickableMapDefinition:
"""A manipulator for clickable map file of graphviz."""
+
maptag_re = re.compile('<map id="(.*?)"')
href_re = re.compile('href=".*?"')
@@ -81,7 +82,7 @@ class ClickableMapDefinition:
If not exists, this only returns empty string.
"""
if self.clickable:
- return '\n'.join([self.content[0]] + self.clickable + [self.content[-1]])
+ return '\n'.join((self.content[0], *self.clickable, self.content[-1]))
else:
return ''
@@ -111,11 +112,12 @@ class Graphviz(SphinxDirective):
"""
Directive to insert arbitrary dot markup.
"""
+
has_content = True
required_arguments = 0
optional_arguments = 1
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'alt': directives.unchanged,
'align': align_spec,
'caption': directives.unchanged,
@@ -179,11 +181,12 @@ class GraphvizSimple(SphinxDirective):
"""
Directive to insert arbitrary dot markup.
"""
+
has_content = True
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'alt': directives.unchanged,
'align': align_spec,
'caption': directives.unchanged,
@@ -330,7 +333,7 @@ def render_dot_html(self: HTML5Translator, node: graphviz, code: str, options: d
logger.warning(__('dot code %r: %s'), code, exc)
raise nodes.SkipNode from exc
- classes = [imgcls, 'graphviz'] + node.get('classes', [])
+ classes = [imgcls, 'graphviz', *node.get('classes', [])]
imgcls = ' '.join(filter(None, classes))
if fname is None:
@@ -449,7 +452,7 @@ def on_config_inited(_app: Sphinx, config: Config) -> None:
config.html_static_path.append(css_path)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_node(graphviz,
html=(html_visit_graphviz, None),
latex=(latex_visit_graphviz, None),
diff --git a/sphinx/ext/ifconfig.py b/sphinx/ext/ifconfig.py
index 1d2b197..398d669 100644
--- a/sphinx/ext/ifconfig.py
+++ b/sphinx/ext/ifconfig.py
@@ -16,7 +16,7 @@ namespace of the project configuration (that is, all variables from
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING, ClassVar
from docutils import nodes
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
class ifconfig(nodes.Element):
@@ -41,7 +41,7 @@ class IfConfig(SphinxDirective):
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
node = ifconfig()
@@ -58,7 +58,7 @@ def process_ifconfig_nodes(app: Sphinx, doctree: nodes.document, docname: str) -
ns['builder'] = app.builder.name
for node in list(doctree.findall(ifconfig)):
try:
- res = eval(node['expr'], ns) # NoQA: PGH001
+ res = eval(node['expr'], ns) # NoQA: S307
except Exception as err:
# handle exceptions in a clean fashion
from traceback import format_exception_only
@@ -74,7 +74,7 @@ def process_ifconfig_nodes(app: Sphinx, doctree: nodes.document, docname: str) -
node.replace_self(node.children)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_node(ifconfig)
app.add_directive('ifconfig', IfConfig)
app.connect('doctree-resolved', process_ifconfig_nodes)
diff --git a/sphinx/ext/imgconverter.py b/sphinx/ext/imgconverter.py
index 071a2cf..5a9fa30 100644
--- a/sphinx/ext/imgconverter.py
+++ b/sphinx/ext/imgconverter.py
@@ -5,7 +5,7 @@ from __future__ import annotations
import subprocess
import sys
from subprocess import CalledProcessError
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
import sphinx
from sphinx.errors import ExtensionError
@@ -15,6 +15,7 @@ from sphinx.util import logging
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -56,9 +57,9 @@ class ImagemagickConverter(ImageConverter):
# (or first page) of image (ex. Animation GIF, PDF)
_from += '[0]'
- args = ([self.config.image_converter] +
- self.config.image_converter_args +
- [_from, _to])
+ args = ([
+ self.config.image_converter, *self.config.image_converter_args, _from, _to,
+ ])
logger.debug('Invoking %r ...', args)
subprocess.run(args, capture_output=True, check=True)
return True
@@ -73,7 +74,7 @@ class ImagemagickConverter(ImageConverter):
(exc.stderr, exc.stdout)) from exc
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_post_transform(ImagemagickConverter)
if sys.platform == 'win32':
# On Windows, we use Imagemagik v7 by default to avoid the trouble for
diff --git a/sphinx/ext/imgmath.py b/sphinx/ext/imgmath.py
index a5f49d9..c640bc7 100644
--- a/sphinx/ext/imgmath.py
+++ b/sphinx/ext/imgmath.py
@@ -2,6 +2,8 @@
from __future__ import annotations
+__all__ = ()
+
import base64
import contextlib
import re
@@ -11,7 +13,7 @@ import tempfile
from hashlib import sha1
from os import path
from subprocess import CalledProcessError
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
@@ -33,14 +35,13 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
from sphinx.writers.html import HTML5Translator
logger = logging.getLogger(__name__)
templates_path = path.join(package_dir, 'templates', 'imgmath')
-__all__ = ()
-
class MathExtError(SphinxError):
category = 'Math extension error'
@@ -70,7 +71,7 @@ def read_svg_depth(filename: str) -> int | None:
"""Read the depth from comment at last line of SVG file
"""
with open(filename, encoding="utf-8") as f:
- for line in f: # noqa: B007
+ for line in f: # NoQA: B007
pass
# Only last line is checked
matched = depthsvgcomment_re.match(line)
@@ -140,7 +141,7 @@ def compile_math(latex: str, builder: Builder) -> str:
# --output-directory option, so we have to manually chdir to the
# temp dir to run it.
command = [builder.config.imgmath_latex]
- if imgmath_latex_name not in ['tectonic']:
+ if imgmath_latex_name != 'tectonic':
command.append('--interaction=nonstopmode')
# add custom args from the config file
command.extend(builder.config.imgmath_latex_args)
@@ -149,7 +150,7 @@ def compile_math(latex: str, builder: Builder) -> str:
try:
subprocess.run(command, capture_output=True, cwd=tempdir, check=True,
encoding='ascii')
- if imgmath_latex_name in ['xelatex', 'tectonic']:
+ if imgmath_latex_name in {'xelatex', 'tectonic'}:
return path.join(tempdir, 'math.xdv')
else:
return path.join(tempdir, 'math.dvi')
@@ -384,7 +385,7 @@ def html_visit_displaymath(self: HTML5Translator, node: nodes.math_block) -> Non
raise nodes.SkipNode
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_html_math_renderer('imgmath',
(html_visit_math, None),
(html_visit_displaymath, None))
@@ -402,6 +403,6 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_config_value('imgmath_latex_preamble', '', 'html')
app.add_config_value('imgmath_add_tooltips', True, 'html')
app.add_config_value('imgmath_font_size', 12, 'html')
- app.add_config_value('imgmath_embed', False, 'html', [bool])
+ app.add_config_value('imgmath_embed', False, 'html', bool)
app.connect('build-finished', clean_up_files)
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py
index 3a015a2..b9e5137 100644
--- a/sphinx/ext/inheritance_diagram.py
+++ b/sphinx/ext/inheritance_diagram.py
@@ -37,7 +37,7 @@ import re
from collections.abc import Iterable, Sequence
from importlib import import_module
from os import path
-from typing import TYPE_CHECKING, Any, cast
+from typing import TYPE_CHECKING, Any, ClassVar, cast
from docutils import nodes
from docutils.parsers.rst import directives
@@ -58,7 +58,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator
from sphinx.writers.latex import LaTeXTranslator
from sphinx.writers.texinfo import TexinfoTranslator
@@ -123,11 +123,8 @@ def import_classes(name: str, currmodule: str) -> Any:
return [target]
elif inspect.ismodule(target):
# If imported object is a module, return classes defined on it
- classes = []
- for cls in target.__dict__.values():
- if inspect.isclass(cls) and cls.__module__ == target.__name__:
- classes.append(cls)
- return classes
+ return [cls for cls in target.__dict__.values()
+ if inspect.isclass(cls) and cls.__module__ == target.__name__]
raise InheritanceException('%r specified for inheritance diagram is '
'not a class or module' % name)
@@ -142,6 +139,7 @@ class InheritanceGraph:
from all the way to the root "object", and then is able to generate a
graphviz dot graph from them.
"""
+
def __init__(self, class_names: list[str], currmodule: str, show_builtins: bool = False,
private_bases: bool = False, parts: int = 0,
aliases: dict[str, str] | None = None, top_classes: Sequence[Any] = (),
@@ -272,10 +270,10 @@ class InheritanceGraph:
}
def _format_node_attrs(self, attrs: dict[str, Any]) -> str:
- return ','.join(['%s=%s' % x for x in sorted(attrs.items())])
+ return ','.join(f'{k}={v}' for k, v in sorted(attrs.items()))
def _format_graph_attrs(self, attrs: dict[str, Any]) -> str:
- return ''.join(['%s=%s;\n' % x for x in sorted(attrs.items())])
+ return ''.join(f'{k}={v};\n' for k, v in sorted(attrs.items()))
def generate_dot(self, name: str, urls: dict[str, str] | None = None,
env: BuildEnvironment | None = None,
@@ -309,34 +307,35 @@ class InheritanceGraph:
n_attrs.update(env.config.inheritance_node_attrs)
e_attrs.update(env.config.inheritance_edge_attrs)
- res: list[str] = []
- res.append('digraph %s {\n' % name)
- res.append(self._format_graph_attrs(g_attrs))
+ res: list[str] = [
+ f'digraph {name} {{\n',
+ self._format_graph_attrs(g_attrs),
+ ]
for name, fullname, bases, tooltip in sorted(self.class_info):
# Write the node
this_node_attrs = n_attrs.copy()
if fullname in urls:
- this_node_attrs['URL'] = '"%s"' % urls[fullname]
- this_node_attrs['target'] = '"_top"'
+ this_node_attrs["URL"] = '"%s"' % urls[fullname]
+ this_node_attrs["target"] = '"_top"'
if tooltip:
- this_node_attrs['tooltip'] = tooltip
- res.append(' "%s" [%s];\n' %
- (name, self._format_node_attrs(this_node_attrs)))
+ this_node_attrs["tooltip"] = tooltip
+ res.append(' "%s" [%s];\n' % (name, self._format_node_attrs(this_node_attrs)))
# Write the edges
- for base_name in bases:
- res.append(' "%s" -> "%s" [%s];\n' %
- (base_name, name,
- self._format_node_attrs(e_attrs)))
- res.append('}\n')
- return ''.join(res)
+ res.extend(
+ ' "%s" -> "%s" [%s];\n' % (base_name, name, self._format_node_attrs(e_attrs))
+ for base_name in bases
+ )
+ res.append("}\n")
+ return "".join(res)
class inheritance_diagram(graphviz):
"""
A docutils node to use as a placeholder for the inheritance diagram.
"""
+
pass
@@ -344,11 +343,12 @@ class InheritanceDiagram(SphinxDirective):
"""
Run when the inheritance_diagram directive is first encountered.
"""
+
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = True
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'parts': int,
'private-bases': directives.flag,
'caption': directives.unchanged,
@@ -378,7 +378,7 @@ class InheritanceDiagram(SphinxDirective):
aliases=self.config.inheritance_alias,
top_classes=node['top-classes'])
except InheritanceException as err:
- return [node.document.reporter.warning(err, line=self.lineno)]
+ return [node.document.reporter.warning(err, line=self.lineno)] # type: ignore[union-attr]
# Create xref nodes for each target of the graph's image map and
# add them to the doc tree so that Sphinx can resolve the
@@ -386,7 +386,7 @@ class InheritanceDiagram(SphinxDirective):
# removed from the doctree after we're done with them.
for name in graph.get_all_class_names():
refnodes, x = class_role( # type: ignore[call-arg,misc]
- 'class', ':class:`%s`' % name, name, 0, self.state) # type: ignore[arg-type]
+ 'class', ':class:`%s`' % name, name, 0, self.state)
node.extend(refnodes)
# Store the graph object so we can use it to generate the
# dot file later
@@ -477,7 +477,7 @@ def skip(self: nodes.NodeVisitor, node: inheritance_diagram) -> None:
raise nodes.SkipNode
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.setup_extension('sphinx.ext.graphviz')
app.add_node(
inheritance_diagram,
@@ -487,8 +487,8 @@ def setup(app: Sphinx) -> dict[str, Any]:
man=(skip, None),
texinfo=(texinfo_visit_inheritance_diagram, None))
app.add_directive('inheritance-diagram', InheritanceDiagram)
- app.add_config_value('inheritance_graph_attrs', {}, False)
- app.add_config_value('inheritance_node_attrs', {}, False)
- app.add_config_value('inheritance_edge_attrs', {}, False)
- app.add_config_value('inheritance_alias', {}, False)
+ app.add_config_value('inheritance_graph_attrs', {}, '')
+ app.add_config_value('inheritance_node_attrs', {}, '')
+ app.add_config_value('inheritance_edge_attrs', {}, '')
+ app.add_config_value('inheritance_alias', {}, '')
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py
index 453bb6e..a8a2cf1 100644
--- a/sphinx/ext/intersphinx.py
+++ b/sphinx/ext/intersphinx.py
@@ -34,6 +34,7 @@ from docutils.utils import relative_path
import sphinx
from sphinx.addnodes import pending_xref
from sphinx.builders.html import INVENTORY_FILENAME
+from sphinx.deprecation import _deprecation_warning
from sphinx.errors import ExtensionError
from sphinx.locale import _, __
from sphinx.transforms.post_transforms import ReferencesResolver
@@ -53,7 +54,7 @@ if TYPE_CHECKING:
from sphinx.config import Config
from sphinx.domains import Domain
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import Inventory, InventoryItem, RoleFunction
+ from sphinx.util.typing import ExtensionMetadata, Inventory, InventoryItem, RoleFunction
InventoryCacheEntry = tuple[Union[str, None], int, Inventory]
@@ -245,7 +246,7 @@ def fetch_inventory_group(
for fail in failures:
logger.info(*fail)
else:
- issues = '\n'.join([f[0] % f[1:] for f in failures])
+ issues = '\n'.join(f[0] % f[1:] for f in failures)
logger.warning(__("failed to reach any of the inventories "
"with the following issues:") + "\n" + issues)
@@ -334,8 +335,10 @@ def _resolve_reference_in_domain_by_target(
if target in inventory[objtype]:
# Case sensitive match, use it
data = inventory[objtype][target]
- elif objtype == 'std:term':
- # Check for potential case insensitive matches for terms only
+ elif objtype in {'std:label', 'std:term'}:
+ # Some types require case insensitive matches:
+ # * 'term': https://github.com/sphinx-doc/sphinx/issues/9291
+ # * 'label': https://github.com/sphinx-doc/sphinx/issues/12008
target_lower = target.lower()
insensitive_matches = list(filter(lambda k: k.lower() == target_lower,
inventory[objtype].keys()))
@@ -479,7 +482,6 @@ def resolve_reference_detect_inventory(env: BuildEnvironment,
to form ``inv_name:newtarget``. If ``inv_name`` is a named inventory, then resolution
is tried in that inventory with the new target.
"""
-
# ordinary direct lookup, use data as is
res = resolve_reference_any_inventory(env, True, node, contnode)
if res is not None:
@@ -501,7 +503,6 @@ def resolve_reference_detect_inventory(env: BuildEnvironment,
def missing_reference(app: Sphinx, env: BuildEnvironment, node: pending_xref,
contnode: TextElement) -> nodes.reference | None:
"""Attempt to resolve a missing reference via intersphinx references."""
-
return resolve_reference_detect_inventory(env, node, contnode)
@@ -533,17 +534,90 @@ class IntersphinxRole(SphinxRole):
assert self.name == self.orig_name.lower()
inventory, name_suffix = self.get_inventory_and_name_suffix(self.orig_name)
if inventory and not inventory_exists(self.env, inventory):
- logger.warning(__('inventory for external cross-reference not found: %s'),
- inventory, location=(self.env.docname, self.lineno))
+ self._emit_warning(
+ __('inventory for external cross-reference not found: %r'), inventory
+ )
return [], []
- role_name = self.get_role_name(name_suffix)
+ domain_name, role_name = self._get_domain_role(name_suffix)
+
if role_name is None:
- logger.warning(__('role for external cross-reference not found: %s'), name_suffix,
- location=(self.env.docname, self.lineno))
+ self._emit_warning(
+ __('invalid external cross-reference suffix: %r'), name_suffix
+ )
return [], []
- result, messages = self.invoke_role(role_name)
+ # attempt to find a matching role function
+ role_func: RoleFunction | None
+
+ if domain_name is not None:
+ # the user specified a domain, so we only check that
+ if (domain := self.env.domains.get(domain_name)) is None:
+ self._emit_warning(
+ __('domain for external cross-reference not found: %r'), domain_name
+ )
+ return [], []
+ if (role_func := domain.roles.get(role_name)) is None:
+ msg = 'role for external cross-reference not found in domain %r: %r'
+ if (
+ object_types := domain.object_types.get(role_name)
+ ) is not None and object_types.roles:
+ self._emit_warning(
+ __(f'{msg} (perhaps you meant one of: %s)'),
+ domain_name,
+ role_name,
+ self._concat_strings(object_types.roles),
+ )
+ else:
+ self._emit_warning(__(msg), domain_name, role_name)
+ return [], []
+
+ else:
+ # the user did not specify a domain,
+ # so we check first the default (if available) then standard domains
+ domains: list[Domain] = []
+ if default_domain := self.env.temp_data.get('default_domain'):
+ domains.append(default_domain)
+ if (
+ std_domain := self.env.domains.get('std')
+ ) is not None and std_domain not in domains:
+ domains.append(std_domain)
+
+ role_func = None
+ for domain in domains:
+ if (role_func := domain.roles.get(role_name)) is not None:
+ domain_name = domain.name
+ break
+
+ if role_func is None or domain_name is None:
+ domains_str = self._concat_strings(d.name for d in domains)
+ msg = 'role for external cross-reference not found in domains %s: %r'
+ possible_roles: set[str] = set()
+ for d in domains:
+ if o := d.object_types.get(role_name):
+ possible_roles.update(f'{d.name}:{r}' for r in o.roles)
+ if possible_roles:
+ msg = f'{msg} (perhaps you meant one of: %s)'
+ self._emit_warning(
+ __(msg),
+ domains_str,
+ role_name,
+ self._concat_strings(possible_roles),
+ )
+ else:
+ self._emit_warning(__(msg), domains_str, role_name)
+ return [], []
+
+ result, messages = role_func(
+ f'{domain_name}:{role_name}',
+ self.rawtext,
+ self.text,
+ self.lineno,
+ self.inliner,
+ self.options,
+ self.content,
+ )
+
for node in result:
if isinstance(node, pending_xref):
node['intersphinx'] = True
@@ -552,13 +626,17 @@ class IntersphinxRole(SphinxRole):
return result, messages
def get_inventory_and_name_suffix(self, name: str) -> tuple[str | None, str]:
+ """Extract an inventory name (if any) and ``domain+name`` suffix from a role *name*.
+ and the domain+name suffix.
+
+ The role name is expected to be of one of the following forms:
+
+ - ``external+inv:name`` -- explicit inventory and name, any domain.
+ - ``external+inv:domain:name`` -- explicit inventory, domain and name.
+ - ``external:name`` -- any inventory and domain, explicit name.
+ - ``external:domain:name`` -- any inventory, explicit domain and name.
+ """
assert name.startswith('external'), name
- # either we have an explicit inventory name, i.e,
- # :external+inv:role: or
- # :external+inv:domain:role:
- # or we look in all inventories, i.e.,
- # :external:role: or
- # :external:domain:role:
suffix = name[9:]
if name[8] == '+':
inv_name, suffix = suffix.split(':', 1)
@@ -569,7 +647,39 @@ class IntersphinxRole(SphinxRole):
msg = f'Malformed :external: role name: {name}'
raise ValueError(msg)
+ def _get_domain_role(self, name: str) -> tuple[str | None, str | None]:
+ """Convert the *name* string into a domain and a role name.
+
+ - If *name* contains no ``:``, return ``(None, name)``.
+ - If *name* contains a single ``:``, the domain/role is split on this.
+ - If *name* contains multiple ``:``, return ``(None, None)``.
+ """
+ names = name.split(':')
+ if len(names) == 1:
+ return None, names[0]
+ elif len(names) == 2:
+ return names[0], names[1]
+ else:
+ return None, None
+
+ def _emit_warning(self, msg: str, /, *args: Any) -> None:
+ logger.warning(
+ msg,
+ *args,
+ type='intersphinx',
+ subtype='external',
+ location=(self.env.docname, self.lineno),
+ )
+
+ def _concat_strings(self, strings: Iterable[str]) -> str:
+ return ', '.join(f'{s!r}' for s in sorted(strings))
+
+ # deprecated methods
+
def get_role_name(self, name: str) -> tuple[str, str] | None:
+ _deprecation_warning(
+ __name__, f'{self.__class__.__name__}.get_role_name', '', remove=(9, 0)
+ )
names = name.split(':')
if len(names) == 1:
# role
@@ -591,6 +701,9 @@ class IntersphinxRole(SphinxRole):
return None
def is_existent_role(self, domain_name: str, role_name: str) -> bool:
+ _deprecation_warning(
+ __name__, f'{self.__class__.__name__}.is_existent_role', '', remove=(9, 0)
+ )
try:
domain = self.env.get_domain(domain_name)
return role_name in domain.roles
@@ -598,6 +711,10 @@ class IntersphinxRole(SphinxRole):
return False
def invoke_role(self, role: tuple[str, str]) -> tuple[list[Node], list[system_message]]:
+ """Invoke the role described by a ``(domain, role name)`` pair."""
+ _deprecation_warning(
+ __name__, f'{self.__class__.__name__}.invoke_role', '', remove=(9, 0)
+ )
domain = self.env.get_domain(role[0])
if domain:
role_func = domain.role(role[1])
@@ -681,11 +798,11 @@ def normalize_intersphinx_mapping(app: Sphinx, config: Config) -> None:
config.intersphinx_mapping.pop(key)
-def setup(app: Sphinx) -> dict[str, Any]:
- app.add_config_value('intersphinx_mapping', {}, True)
- app.add_config_value('intersphinx_cache_limit', 5, False)
- app.add_config_value('intersphinx_timeout', None, False)
- app.add_config_value('intersphinx_disabled_reftypes', ['std:doc'], True)
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.add_config_value('intersphinx_mapping', {}, 'env')
+ app.add_config_value('intersphinx_cache_limit', 5, '')
+ app.add_config_value('intersphinx_timeout', None, '')
+ app.add_config_value('intersphinx_disabled_reftypes', ['std:doc'], 'env')
app.connect('config-inited', normalize_intersphinx_mapping, priority=800)
app.connect('builder-inited', load_mappings)
app.connect('source-read', install_dispatcher)
diff --git a/sphinx/ext/linkcode.py b/sphinx/ext/linkcode.py
index ee10406..93118cd 100644
--- a/sphinx/ext/linkcode.py
+++ b/sphinx/ext/linkcode.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from docutils import nodes
@@ -15,6 +15,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
class LinkcodeError(SphinxError):
@@ -71,7 +72,7 @@ def doctree_read(app: Sphinx, doctree: Node) -> None:
signode += onlynode
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('doctree-read', doctree_read)
app.add_config_value('linkcode_resolve', None, '')
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
diff --git a/sphinx/ext/mathjax.py b/sphinx/ext/mathjax.py
index 41d18b9..24109ee 100644
--- a/sphinx/ext/mathjax.py
+++ b/sphinx/ext/mathjax.py
@@ -21,6 +21,7 @@ from sphinx.util.math import get_node_equation_number
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
from sphinx.writers.html import HTML5Translator
# more information for mathjax secure url is here:
@@ -109,7 +110,7 @@ def install_mathjax(app: Sphinx, pagename: str, templatename: str, context: dict
builder.add_js_file(app.config.mathjax_path, **options)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_html_math_renderer('mathjax',
(html_visit_math, None),
(html_visit_displaymath, None))
diff --git a/sphinx/ext/napoleon/__init__.py b/sphinx/ext/napoleon/__init__.py
index 61aa3d8..581f3ea 100644
--- a/sphinx/ext/napoleon/__init__.py
+++ b/sphinx/ext/napoleon/__init__.py
@@ -2,13 +2,17 @@
from __future__ import annotations
-from typing import Any
+from typing import TYPE_CHECKING, Any
import sphinx
from sphinx.application import Sphinx
from sphinx.ext.napoleon.docstring import GoogleDocstring, NumpyDocstring
from sphinx.util import inspect
+if TYPE_CHECKING:
+ from sphinx.config import _ConfigRebuild
+ from sphinx.util.typing import ExtensionMetadata
+
class Config:
"""Sphinx napoleon extension settings in `conf.py`.
@@ -261,8 +265,9 @@ class Config:
Use the type annotations of class attributes that are documented in the docstring
but do not have a type in the docstring.
- """
- _config_values = {
+ """ # NoQA: D301
+
+ _config_values: dict[str, tuple[Any, _ConfigRebuild]] = {
'napoleon_google_docstring': (True, 'env'),
'napoleon_numpy_docstring': (True, 'env'),
'napoleon_include_init_with_doc': (False, 'env'),
@@ -288,7 +293,7 @@ class Config:
setattr(self, name, value)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
"""Sphinx extension setup function.
When the extension is loaded, Sphinx imports this module and executes
@@ -326,7 +331,7 @@ def setup(app: Sphinx) -> dict[str, Any]:
def _patch_python_domain() -> None:
- from sphinx.domains.python import PyObject, PyTypedField
+ from sphinx.domains.python._object import PyObject, PyTypedField
from sphinx.locale import _
for doc_field in PyObject.doc_field_types:
if doc_field.name == 'parameter':
@@ -335,7 +340,7 @@ def _patch_python_domain() -> None:
PyObject.doc_field_types.append(
PyTypedField('keyword', label=_('Keyword Arguments'),
names=('keyword', 'kwarg', 'kwparam'),
- typerolename='obj', typenames=('paramtype', 'kwtype'),
+ typerolename='class', typenames=('paramtype', 'kwtype'),
can_collapse=True))
@@ -386,7 +391,7 @@ def _process_docstring(app: Sphinx, what: str, name: str, obj: Any,
docstring = GoogleDocstring(result_lines, app.config, app, what, name,
obj, options)
result_lines = docstring.lines()
- lines[:] = result_lines[:]
+ lines[:] = result_lines.copy()
def _skip_member(app: Sphinx, what: str, name: str, obj: Any,
diff --git a/sphinx/ext/napoleon/docstring.py b/sphinx/ext/napoleon/docstring.py
index 2ffde39..2ce3b2d 100644
--- a/sphinx/ext/napoleon/docstring.py
+++ b/sphinx/ext/napoleon/docstring.py
@@ -7,6 +7,7 @@ import contextlib
import inspect
import re
from functools import partial
+from itertools import starmap
from typing import TYPE_CHECKING, Any, Callable
from sphinx.locale import _, __
@@ -14,6 +15,8 @@ from sphinx.util import logging
from sphinx.util.typing import get_type_hints, stringify_annotation
if TYPE_CHECKING:
+ from collections.abc import Iterator
+
from sphinx.application import Sphinx
from sphinx.config import Config as SphinxConfig
@@ -145,7 +148,7 @@ class GoogleDocstring:
"""
_name_rgx = re.compile(r"^\s*((?::(?P<role>\S+):)?`(?P<name>~?[a-zA-Z0-9_.-]+)`|"
- r" (?P<name2>~?[a-zA-Z0-9_.-]+))\s*", re.X)
+ r" (?P<name2>~?[a-zA-Z0-9_.-]+))\s*", re.VERBOSE)
def __init__(
self,
@@ -304,19 +307,18 @@ class GoogleDocstring:
_type = _convert_type_spec(_type, self._config.napoleon_type_aliases or {})
indent = self._get_indent(line) + 1
- _descs = [_desc] + self._dedent(self._consume_indented_block(indent))
+ _descs = [_desc, *self._dedent(self._consume_indented_block(indent))]
_descs = self.__class__(_descs, self._config).lines()
return _name, _type, _descs
def _consume_fields(self, parse_type: bool = True, prefer_type: bool = False,
multiple: bool = False) -> list[tuple[str, str, list[str]]]:
self._consume_empty()
- fields = []
+ fields: list[tuple[str, str, list[str]]] = []
while not self._is_section_break():
_name, _type, _desc = self._consume_field(parse_type, prefer_type)
if multiple and _name:
- for name in _name.split(","):
- fields.append((name.strip(), _type, _desc))
+ fields.extend((name.strip(), _type, _desc) for name in _name.split(","))
elif _name or _type or _desc:
fields.append((_name, _type, _desc))
return fields
@@ -327,7 +329,7 @@ class GoogleDocstring:
if not colon or not _desc:
_type, _desc = _desc, _type
_desc += colon
- _descs = [_desc] + self._dedent(self._consume_to_end())
+ _descs = [_desc, *self._dedent(self._consume_to_end())]
_descs = self.__class__(_descs, self._config).lines()
return _type, _descs
@@ -399,15 +401,15 @@ class GoogleDocstring:
def _fix_field_desc(self, desc: list[str]) -> list[str]:
if self._is_list(desc):
- desc = [''] + desc
+ desc = ['', *desc]
elif desc[0].endswith('::'):
desc_block = desc[1:]
indent = self._get_indent(desc[0])
block_indent = self._get_initial_indent(desc_block)
if block_indent > indent:
- desc = [''] + desc
+ desc = ['', *desc]
else:
- desc = ['', desc[0]] + self._indent(desc_block, 4)
+ desc = ['', desc[0], *self._indent(desc_block, 4)]
return desc
def _format_admonition(self, admonition: str, lines: list[str]) -> list[str]:
@@ -416,7 +418,7 @@ class GoogleDocstring:
return [f'.. {admonition}:: {lines[0].strip()}', '']
elif lines:
lines = self._indent(self._dedent(lines), 3)
- return ['.. %s::' % admonition, ''] + lines + ['']
+ return ['.. %s::' % admonition, '', *lines, '']
else:
return ['.. %s::' % admonition, '']
@@ -453,7 +455,7 @@ class GoogleDocstring:
if _type:
lines.append(f':{type_role} {_name}: {_type}')
- return lines + ['']
+ return [*lines, '']
def _format_field(self, _name: str, _type: str, _desc: list[str]) -> list[str]:
_desc = self._strip_empty(_desc)
@@ -480,7 +482,7 @@ class GoogleDocstring:
if _desc[0]:
return [field + _desc[0]] + _desc[1:]
else:
- return [field] + _desc
+ return [field, *_desc]
else:
return [field]
@@ -537,7 +539,7 @@ class GoogleDocstring:
return [(' ' * n) + line for line in lines]
def _is_indented(self, line: str, indent: int = 1) -> bool:
- for i, s in enumerate(line): # noqa: SIM110
+ for i, s in enumerate(line): # NoQA: SIM110
if i >= indent:
return True
elif not s.isspace():
@@ -623,7 +625,7 @@ class GoogleDocstring:
self._is_in_section = True
self._section_indent = self._get_current_indent()
if _directive_regex.match(section):
- lines = [section] + self._consume_to_next_section()
+ lines = [section, *self._consume_to_next_section()]
else:
lines = self._sections[section.lower()](section)
finally:
@@ -711,7 +713,7 @@ class GoogleDocstring:
else:
header = '.. rubric:: %s' % section
if lines:
- return [header, ''] + lines + ['']
+ return [header, '', *lines, '']
else:
return [header, '']
@@ -733,7 +735,7 @@ class GoogleDocstring:
if 'no-index' in self._opt or 'noindex' in self._opt:
lines.append(' :no-index:')
if _desc:
- lines.extend([''] + self._indent(_desc, 3))
+ lines.extend(['', *self._indent(_desc, 3)])
lines.append('')
return lines
@@ -888,7 +890,7 @@ def _recombine_set_tokens(tokens: list[str]) -> list[str]:
token_queue = collections.deque(tokens)
keywords = ("optional", "default")
- def takewhile_set(tokens):
+ def takewhile_set(tokens: collections.deque[str]) -> Iterator[str]:
open_braces = 0
previous_token = None
while True:
@@ -924,7 +926,7 @@ def _recombine_set_tokens(tokens: list[str]) -> list[str]:
if open_braces == 0:
break
- def combine_set(tokens):
+ def combine_set(tokens: collections.deque[str]) -> Iterator[str]:
while True:
try:
token = tokens.popleft()
@@ -941,7 +943,7 @@ def _recombine_set_tokens(tokens: list[str]) -> list[str]:
def _tokenize_type_spec(spec: str) -> list[str]:
- def postprocess(item):
+ def postprocess(item: str) -> list[str]:
if _default_regex.match(item):
default = item[:7]
# can't be separated by anything other than a single space
@@ -962,7 +964,7 @@ def _tokenize_type_spec(spec: str) -> list[str]:
def _token_type(token: str, location: str | None = None) -> str:
- def is_numeric(token):
+ def is_numeric(token: str) -> bool:
try:
# use complex to make sure every numeric value is detected as literal
complex(token)
@@ -1026,7 +1028,7 @@ def _convert_numpy_type_spec(
if translations is None:
translations = {}
- def convert_obj(obj, translations, default_translation):
+ def convert_obj(obj: str, translations: dict[str, str], default_translation: str) -> str:
translation = translations.get(obj, obj)
# use :class: (the default) only if obj is not a standard singleton
@@ -1155,6 +1157,7 @@ class NumpyDocstring(GoogleDocstring):
The lines of the docstring in a list.
"""
+
def __init__(
self,
docstring: str | list[str],
@@ -1180,13 +1183,13 @@ class NumpyDocstring(GoogleDocstring):
elif filepath is None:
filepath = ""
- return ":".join([filepath, "docstring of %s" % name])
+ return f"{filepath}:docstring of {name}"
def _escape_args_and_kwargs(self, name: str) -> str:
func = super()._escape_args_and_kwargs
if ", " in name:
- return ", ".join(func(param) for param in name.split(", "))
+ return ", ".join(map(func, name.split(", ")))
else:
return func(name)
@@ -1233,7 +1236,7 @@ class NumpyDocstring(GoogleDocstring):
line1, line2 = self._lines.get(0), self._lines.get(1)
return (not self._lines or
self._is_section_header() or
- ['', ''] == [line1, line2] or
+ (line1 == line2 == '') or
(self._is_in_section and
line1 and
not self._is_indented(line1, self._section_indent)))
@@ -1269,7 +1272,7 @@ class NumpyDocstring(GoogleDocstring):
func_name1, func_name2, :meth:`func_name`, func_name3
"""
- items = []
+ items: list[tuple[str, list[str], str | None]] = []
def parse_item_name(text: str) -> tuple[str, str | None]:
"""Match ':role:`name`' or 'name'"""
@@ -1286,10 +1289,12 @@ class NumpyDocstring(GoogleDocstring):
if not name:
return
name, role = parse_item_name(name)
- items.append((name, list(rest), role))
- del rest[:]
+ items.append((name, rest.copy(), role))
+ rest.clear()
- def translate(func, description, role):
+ def translate(
+ func: str, description: list[str], role: str | None,
+ ) -> tuple[str, list[str], str | None]:
translations = self._config.napoleon_type_aliases
if role is not None or not translations:
return func, description, role
@@ -1336,10 +1341,7 @@ class NumpyDocstring(GoogleDocstring):
return []
# apply type aliases
- items = [
- translate(func, description, role)
- for func, description, role in items
- ]
+ items = list(starmap(translate, items))
lines: list[str] = []
last_had_desc = True
diff --git a/sphinx/ext/todo.py b/sphinx/ext/todo.py
index e540e7e..1962328 100644
--- a/sphinx/ext/todo.py
+++ b/sphinx/ext/todo.py
@@ -7,7 +7,9 @@ with a backlink to the original location.
from __future__ import annotations
-from typing import TYPE_CHECKING, Any, cast
+import functools
+import operator
+from typing import TYPE_CHECKING, Any, ClassVar, cast
from docutils import nodes
from docutils.parsers.rst import directives
@@ -26,7 +28,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import OptionSpec
+ from sphinx.util.typing import ExtensionMetadata, OptionSpec
from sphinx.writers.html import HTML5Translator
from sphinx.writers.latex import LaTeXTranslator
@@ -51,7 +53,7 @@ class Todo(BaseAdmonition, SphinxDirective):
required_arguments = 0
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {
+ option_spec: ClassVar[OptionSpec] = {
'class': directives.class_option,
'name': directives.unchanged,
}
@@ -85,7 +87,7 @@ class TodoDomain(Domain):
def clear_doc(self, docname: str) -> None:
self.todos.pop(docname, None)
- def merge_domaindata(self, docnames: list[str], otherdata: dict) -> None:
+ def merge_domaindata(self, docnames: list[str], otherdata: dict[str, Any]) -> None:
for docname in docnames:
self.todos[docname] = otherdata['todos'][docname]
@@ -110,7 +112,7 @@ class TodoList(SphinxDirective):
required_arguments = 0
optional_arguments = 0
final_argument_whitespace = False
- option_spec: OptionSpec = {}
+ option_spec: ClassVar[OptionSpec] = {}
def run(self) -> list[Node]:
# Simply insert an empty todolist node which will be replaced later
@@ -129,7 +131,8 @@ class TodoListProcessor:
self.process(doctree, docname)
def process(self, doctree: nodes.document, docname: str) -> None:
- todos: list[todo_node] = sum(self.domain.todos.values(), [])
+ todos: list[todo_node] = functools.reduce(
+ operator.iadd, self.domain.todos.values(), [])
for node in list(doctree.findall(todolist)):
if not self.config.todo_include_todos:
node.parent.remove(node)
@@ -221,7 +224,7 @@ def latex_depart_todo_node(self: LaTeXTranslator, node: todo_node) -> None:
self.body.append('\\end{sphinxadmonition}\n')
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_event('todo-defined')
app.add_config_value('todo_include_todos', False, 'html')
app.add_config_value('todo_link_only', False, 'html')
diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py
index c5fcda5..39a08b6 100644
--- a/sphinx/ext/viewcode.py
+++ b/sphinx/ext/viewcode.py
@@ -2,6 +2,7 @@
from __future__ import annotations
+import operator
import posixpath
import traceback
from importlib import import_module
@@ -22,11 +23,12 @@ from sphinx.util.display import status_iterator
from sphinx.util.nodes import make_refnode
if TYPE_CHECKING:
- from collections.abc import Generator, Iterable
+ from collections.abc import Iterable, Iterator
from sphinx.application import Sphinx
from sphinx.builders import Builder
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -79,9 +81,7 @@ def is_supported_builder(builder: Builder) -> bool:
return False
if builder.name == 'singlehtml':
return False
- if builder.name.startswith('epub') and not builder.config.viewcode_enable_epub:
- return False
- return True
+ return not (builder.name.startswith('epub') and not builder.config.viewcode_enable_epub)
def doctree_read(app: Sphinx, doctree: Node) -> None:
@@ -185,6 +185,7 @@ def env_purge_doc(app: Sphinx, env: BuildEnvironment, docname: str) -> None:
class ViewcodeAnchorTransform(SphinxPostTransform):
"""Convert or remove viewcode_anchor nodes depends on builder."""
+
default_priority = 100
def run(self, **kwargs: Any) -> None:
@@ -239,7 +240,7 @@ def should_generate_module_page(app: Sphinx, modname: str) -> bool:
return True
-def collect_pages(app: Sphinx) -> Generator[tuple[str, dict[str, Any], str], None, None]:
+def collect_pages(app: Sphinx) -> Iterator[tuple[str, dict[str, Any], str]]:
env = app.builder.env
if not hasattr(env, '_viewcode_modules'):
return
@@ -254,7 +255,7 @@ def collect_pages(app: Sphinx) -> Generator[tuple[str, dict[str, Any], str], Non
sorted(env._viewcode_modules.items()),
__('highlighting module code... '), "blue",
len(env._viewcode_modules),
- app.verbosity, lambda x: x[0]):
+ app.verbosity, operator.itemgetter(0)):
if not entry:
continue
if not should_generate_module_page(app, modname):
@@ -340,11 +341,11 @@ def collect_pages(app: Sphinx) -> Generator[tuple[str, dict[str, Any], str], Non
yield (posixpath.join(OUTPUT_DIRNAME, 'index'), context, 'page.html')
-def setup(app: Sphinx) -> dict[str, Any]:
- app.add_config_value('viewcode_import', None, False)
- app.add_config_value('viewcode_enable_epub', False, False)
- app.add_config_value('viewcode_follow_imported_members', True, False)
- app.add_config_value('viewcode_line_numbers', False, 'env', (bool,))
+def setup(app: Sphinx) -> ExtensionMetadata:
+ app.add_config_value('viewcode_import', None, '')
+ app.add_config_value('viewcode_enable_epub', False, '')
+ app.add_config_value('viewcode_follow_imported_members', True, '')
+ app.add_config_value('viewcode_line_numbers', False, 'env', bool)
app.connect('doctree-read', doctree_read)
app.connect('env-merge-info', env_merge_info)
app.connect('env-purge-doc', env_purge_doc)
diff --git a/sphinx/extension.py b/sphinx/extension.py
index 78ef968..88b9d42 100644
--- a/sphinx/extension.py
+++ b/sphinx/extension.py
@@ -13,6 +13,7 @@ from sphinx.util import logging
if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -21,7 +22,7 @@ class Extension:
def __init__(self, name: str, module: Any, **kwargs: Any) -> None:
self.name = name
self.module = module
- self.metadata = kwargs
+ self.metadata: ExtensionMetadata = kwargs # type: ignore[assignment]
self.version = kwargs.pop('version', 'unknown version')
# The extension supports parallel read or not. The default value
@@ -50,8 +51,13 @@ def verify_needs_extensions(app: Sphinx, config: Config) -> None:
for extname, reqversion in config.needs_extensions.items():
extension = app.extensions.get(extname)
if extension is None:
- logger.warning(__('The %s extension is required by needs_extensions settings, '
- 'but it is not loaded.'), extname)
+ logger.warning(
+ __(
+ 'The %s extension is required by needs_extensions settings, '
+ 'but it is not loaded.'
+ ),
+ extname,
+ )
continue
fulfilled = True
@@ -66,13 +72,17 @@ def verify_needs_extensions(app: Sphinx, config: Config) -> None:
fulfilled = False
if not fulfilled:
- raise VersionRequirementError(__('This project needs the extension %s at least in '
- 'version %s and therefore cannot be built with '
- 'the loaded version (%s).') %
- (extname, reqversion, extension.version))
+ raise VersionRequirementError(
+ __(
+ 'This project needs the extension %s at least in '
+ 'version %s and therefore cannot be built with '
+ 'the loaded version (%s).'
+ )
+ % (extname, reqversion, extension.version)
+ )
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('config-inited', verify_needs_extensions, priority=800)
return {
diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py
index 7e0d94a..65a6dc3 100644
--- a/sphinx/highlighting.py
+++ b/sphinx/highlighting.py
@@ -42,9 +42,7 @@ lexer_classes: dict[str, type[Lexer] | partial[Lexer]] = {
}
-escape_hl_chars = {ord('\\'): '\\PYGZbs{}',
- ord('{'): '\\PYGZob{}',
- ord('}'): '\\PYGZcb{}'}
+escape_hl_chars = {ord('\\'): '\\PYGZbs{}', ord('{'): '\\PYGZob{}', ord('}'): '\\PYGZcb{}'}
# used if Pygments is available
# MEMO: no use of \protected here to avoid having to do hyperref extras,
@@ -57,7 +55,7 @@ escape_hl_chars = {ord('\\'): '\\PYGZbs{}',
# MEMO: the Pygments escapes with \char`\<char> syntax, if the document
# uses old OT1 font encoding, work correctly only in monospace font.
# MEMO: the Pygmentize output mark-up is always with a {} after.
-_LATEX_ADD_STYLES = r'''
+_LATEX_ADD_STYLES = r"""
% Sphinx redefinitions
% Originally to obtain a straight single quote via package textcomp, then
% to fix problems for the 5.0.0 inline code highlighting (captions!).
@@ -82,7 +80,7 @@ _LATEX_ADD_STYLES = r'''
% use \protected to allow syntax highlighting in captions
\protected\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+{\PYG@do{#2}}}
\makeatother
-'''
+"""
class PygmentsBridge:
@@ -91,8 +89,9 @@ class PygmentsBridge:
html_formatter = HtmlFormatter
latex_formatter = LatexFormatter
- def __init__(self, dest: str = 'html', stylename: str = 'sphinx',
- latex_engine: str | None = None) -> None:
+ def __init__(
+ self, dest: str = 'html', stylename: str = 'sphinx', latex_engine: str | None = None
+ ) -> None:
self.dest = dest
self.latex_engine = latex_engine
@@ -104,8 +103,8 @@ class PygmentsBridge:
self.formatter = self.latex_formatter
self.formatter_args['commandprefix'] = 'PYG'
- def get_style(self, stylename: str) -> Style:
- if stylename is None or stylename == 'sphinx':
+ def get_style(self, stylename: str) -> type[Style]:
+ if not stylename or stylename == 'sphinx':
return SphinxStyle
elif stylename == 'none':
return NoneStyle
@@ -119,8 +118,14 @@ class PygmentsBridge:
kwargs.update(self.formatter_args)
return self.formatter(**kwargs)
- def get_lexer(self, source: str, lang: str, opts: dict | None = None,
- force: bool = False, location: Any = None) -> Lexer:
+ def get_lexer(
+ self,
+ source: str,
+ lang: str,
+ opts: dict | None = None,
+ force: bool = False,
+ location: Any = None,
+ ) -> Lexer:
if not opts:
opts = {}
@@ -146,8 +151,9 @@ class PygmentsBridge:
else:
lexer = get_lexer_by_name(lang, **opts)
except ClassNotFound:
- logger.warning(__('Pygments lexer name %r is not known'), lang,
- location=location)
+ logger.warning(
+ __('Pygments lexer name %r is not known'), lang, location=location
+ )
lexer = lexer_classes['none'](**opts)
if not force:
@@ -155,8 +161,15 @@ class PygmentsBridge:
return lexer
- def highlight_block(self, source: str, lang: str, opts: dict | None = None,
- force: bool = False, location: Any = None, **kwargs: Any) -> str:
+ def highlight_block(
+ self,
+ source: str,
+ lang: str,
+ opts: dict | None = None,
+ force: bool = False,
+ location: Any = None,
+ **kwargs: Any,
+ ) -> str:
if not isinstance(source, str):
source = source.decode()
@@ -173,11 +186,17 @@ class PygmentsBridge:
lang = 'none' # automatic highlighting failed.
else:
logger.warning(
- __('Lexing literal_block %r as "%s" resulted in an error at token: %r. '
- 'Retrying in relaxed mode.'),
- source, lang, str(err),
- type='misc', subtype='highlighting_failure',
- location=location)
+ __(
+ 'Lexing literal_block %r as "%s" resulted in an error at token: %r. '
+ 'Retrying in relaxed mode.'
+ ),
+ source,
+ lang,
+ str(err),
+ type='misc',
+ subtype='highlighting_failure',
+ location=location,
+ )
if force:
lang = 'none'
else:
diff --git a/sphinx/io.py b/sphinx/io.py
index 4874fdf..459d250 100644
--- a/sphinx/io.py
+++ b/sphinx/io.py
@@ -1,4 +1,5 @@
"""Input/Output files"""
+
from __future__ import annotations
from typing import TYPE_CHECKING, Any
@@ -46,6 +47,7 @@ class SphinxBaseReader(standalone.Reader):
def __init__(self, *args: Any, **kwargs: Any) -> None:
from sphinx.application import Sphinx
+
if len(args) > 0 and isinstance(args[0], Sphinx):
self._app = args[0]
self._env = self._app.env
@@ -54,7 +56,7 @@ class SphinxBaseReader(standalone.Reader):
super().__init__(*args, **kwargs)
def setup(self, app: Sphinx) -> None:
- self._app = app # hold application object only for compatibility
+ self._app = app # hold application object only for compatibility
self._env = app.env
def get_transforms(self) -> list[type[Transform]]:
@@ -96,9 +98,9 @@ class SphinxStandaloneReader(SphinxBaseReader):
self.transforms = self.transforms + app.registry.get_transforms()
super().setup(app)
- def read(self, source: Input, parser: Parser, settings: Values) -> nodes.document:
+ def read(self, source: Input, parser: Parser, settings: Values) -> nodes.document: # type: ignore[type-arg]
self.source = source
- if not self.parser:
+ if not self.parser: # type: ignore[has-type]
self.parser = parser
self.settings = settings
self.input = self.read_source(settings.env)
@@ -128,9 +130,15 @@ class SphinxI18nReader(SphinxBaseReader):
super().setup(app)
self.transforms = self.transforms + app.registry.get_transforms()
- unused = [PreserveTranslatableMessages, Locale, RemoveTranslatableInline,
- AutoIndexUpgrader, SphinxDomains, DoctreeReadEvent,
- UIDTransform]
+ unused = [
+ PreserveTranslatableMessages,
+ Locale,
+ RemoveTranslatableInline,
+ AutoIndexUpgrader,
+ SphinxDomains,
+ DoctreeReadEvent,
+ UIDTransform,
+ ]
for transform in unused:
if transform in self.transforms:
self.transforms.remove(transform)
@@ -152,6 +160,7 @@ def SphinxDummySourceClass(source: Any, *args: Any, **kwargs: Any) -> Any:
class SphinxFileInput(FileInput):
"""A basic FileInput for Sphinx."""
+
def __init__(self, *args: Any, **kwargs: Any) -> None:
kwargs['error_handler'] = 'sphinx'
super().__init__(*args, **kwargs)
@@ -170,7 +179,7 @@ def create_publisher(app: Sphinx, filetype: str) -> Publisher:
# CommonMarkParser.
from docutils.parsers.rst import Parser as RSTParser
- parser.settings_spec = RSTParser.settings_spec
+ parser.settings_spec = RSTParser.settings_spec # type: ignore[misc]
pub = Publisher(
reader=reader,
@@ -180,7 +189,7 @@ def create_publisher(app: Sphinx, filetype: str) -> Publisher:
destination=NullOutput(),
)
# Propagate exceptions by default when used programmatically:
- defaults = {"traceback": True, **app.env.settings}
+ defaults = {'traceback': True, **app.env.settings}
# Set default settings
if docutils.__version_info__[:2] >= (0, 19):
pub.get_settings(**defaults)
diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py
index cfe92b0..63c5b19 100644
--- a/sphinx/jinja2glue.py
+++ b/sphinx/jinja2glue.py
@@ -8,17 +8,12 @@ from typing import TYPE_CHECKING, Any, Callable
from jinja2 import BaseLoader, FileSystemLoader, TemplateNotFound
from jinja2.sandbox import SandboxedEnvironment
-from jinja2.utils import open_if_exists
+from jinja2.utils import open_if_exists, pass_context
from sphinx.application import TemplateBridge
from sphinx.util import logging
from sphinx.util.osutil import mtimes_of_files
-try:
- from jinja2.utils import pass_context
-except ImportError:
- from jinja2 import contextfunction as pass_context
-
if TYPE_CHECKING:
from collections.abc import Iterator
@@ -60,7 +55,7 @@ def _todim(val: int | str) -> str:
def _slice_index(values: list, slices: int) -> Iterator[list]:
- seq = list(values)
+ seq = values.copy()
length = 0
for value in values:
length += 1 + len(value[1][1]) # count includes subitems
@@ -70,7 +65,7 @@ def _slice_index(values: list, slices: int) -> Iterator[list]:
count = 0
start = offset
if slices == slice_number + 1: # last column
- offset = len(seq) # noqa: SIM113
+ offset = len(seq) # NoQA: SIM113
else:
for value in values[offset:]:
count += 1 + len(value[1][1])
@@ -100,6 +95,7 @@ class idgen:
def __next__(self) -> int:
self.id += 1
return self.id
+
next = __next__ # Python 2/Jinja compatibility
@@ -138,6 +134,7 @@ class SphinxFileSystemLoader(FileSystemLoader):
return path.getmtime(filename) == mtime
except OSError:
return False
+
return contents, filename, uptodate
@@ -170,8 +167,9 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
# prepend explicit template paths
self.templatepathlen = len(builder.config.templates_path)
if builder.config.templates_path:
- cfg_templates_path = [path.join(builder.confdir, tp)
- for tp in builder.config.templates_path]
+ cfg_templates_path = [
+ path.join(builder.confdir, tp) for tp in builder.config.templates_path
+ ]
pathchain[0:0] = cfg_templates_path
loaderchain[0:0] = cfg_templates_path
@@ -183,8 +181,7 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
use_i18n = builder.app.translator is not None
extensions = ['jinja2.ext.i18n'] if use_i18n else []
- self.environment = SandboxedEnvironment(loader=self,
- extensions=extensions)
+ self.environment = SandboxedEnvironment(loader=self, extensions=extensions)
self.environment.filters['tobool'] = _tobool
self.environment.filters['toint'] = _toint
self.environment.filters['todim'] = _todim
@@ -194,7 +191,10 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
self.environment.globals['accesskey'] = pass_context(accesskey)
self.environment.globals['idgen'] = idgen
if use_i18n:
- self.environment.install_gettext_translations(builder.app.translator)
+ # ``install_gettext_translations`` is injected by the ``jinja2.ext.i18n`` extension
+ self.environment.install_gettext_translations( # type: ignore[attr-defined]
+ builder.app.translator
+ )
def render(self, template: str, context: dict) -> str: # type: ignore[override]
return self.environment.get_template(template).render(context)
@@ -211,11 +211,12 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
loaders = self.loaders
# exclamation mark starts search from theme
if template.startswith('!'):
- loaders = loaders[self.templatepathlen:]
+ loaders = loaders[self.templatepathlen :]
template = template[1:]
for loader in loaders:
try:
return loader.get_source(environment, template)
except TemplateNotFound:
pass
- raise TemplateNotFound(template)
+ msg = f'{template!r} not found in {self.environment.loader.pathchain}' # type: ignore[union-attr]
+ raise TemplateNotFound(msg)
diff --git a/sphinx/locale/__init__.py b/sphinx/locale/__init__.py
index 05e63b0..f464b4c 100644
--- a/sphinx/locale/__init__.py
+++ b/sphinx/locale/__init__.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import locale
+import sys
from gettext import NullTranslations, translation
from os import path
from typing import TYPE_CHECKING
@@ -17,6 +18,7 @@ class _TranslationProxy:
The proxy implementation attempts to be as complete as possible, so that
the lazy objects should mostly work as expected, for example for sorting.
"""
+
__slots__ = '_catalogue', '_namespace', '_message'
def __init__(self, catalogue: str, namespace: str, message: str) -> None:
@@ -50,8 +52,10 @@ class _TranslationProxy:
try:
return f'i{self.__str__()!r}'
except Exception:
- return (self.__class__.__name__
- + f'({self._catalogue}, {self._namespace}, {self._message})')
+ return (
+ self.__class__.__name__
+ + f'({self._catalogue}, {self._namespace}, {self._message})'
+ )
def __add__(self, other: str) -> str:
return self.__str__() + other
@@ -71,22 +75,22 @@ class _TranslationProxy:
def __rmul__(self, other: Any) -> str:
return other * self.__str__()
- def __hash__(self):
+ def __hash__(self) -> int:
return hash(self.__str__())
- def __eq__(self, other):
+ def __eq__(self, other: object) -> bool:
return self.__str__() == other
- def __lt__(self, string):
+ def __lt__(self, string: str) -> bool:
return self.__str__() < string
- def __contains__(self, char):
+ def __contains__(self, char: str) -> bool:
return char in self.__str__()
- def __len__(self):
+ def __len__(self) -> int:
return len(self.__str__())
- def __getitem__(self, index):
+ def __getitem__(self, index: int | slice) -> str:
return self.__str__()[index]
@@ -153,13 +157,15 @@ def init_console(
"""
if locale_dir is None:
locale_dir = _LOCALE_DIR
- try:
- # encoding is ignored
- language, _ = locale.getlocale(locale.LC_MESSAGES)
- except AttributeError:
- # LC_MESSAGES is not always defined. Fallback to the default language
- # in case it is not.
+ if sys.platform == 'win32':
language = None
+ else:
+ try:
+ # encoding is ignored
+ language, _ = locale.getlocale(locale.LC_MESSAGES)
+ except AttributeError:
+ # Fallback to the default language in case LC_MESSAGES is not defined.
+ language = None
return init([locale_dir], language, catalog, 'console')
@@ -196,10 +202,11 @@ def get_translation(catalog: str, namespace: str = 'general') -> Callable[[str],
.. versionadded:: 1.8
"""
+
def gettext(message: str) -> str:
if not is_translator_registered(catalog, namespace):
# not initialized yet
- return _TranslationProxy(catalog, namespace, message) # type: ignore[return-value] # noqa: E501
+ return _TranslationProxy(catalog, namespace, message) # type: ignore[return-value] # NoQA: E501
else:
translator = get_translator(catalog, namespace)
return translator.gettext(message)
@@ -219,13 +226,13 @@ __ = get_translation('sphinx', 'console')
# labels
admonitionlabels = {
'attention': _('Attention'),
- 'caution': _('Caution'),
- 'danger': _('Danger'),
- 'error': _('Error'),
- 'hint': _('Hint'),
+ 'caution': _('Caution'),
+ 'danger': _('Danger'),
+ 'error': _('Error'),
+ 'hint': _('Hint'),
'important': _('Important'),
- 'note': _('Note'),
- 'seealso': _('See also'),
- 'tip': _('Tip'),
- 'warning': _('Warning'),
+ 'note': _('Note'),
+ 'seealso': _('See also'),
+ 'tip': _('Tip'),
+ 'warning': _('Warning'),
}
diff --git a/sphinx/locale/ar/LC_MESSAGES/sphinx.mo b/sphinx/locale/ar/LC_MESSAGES/sphinx.mo
index 8e4caa2..fe533f2 100644
--- a/sphinx/locale/ar/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ar/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ar/LC_MESSAGES/sphinx.po b/sphinx/locale/ar/LC_MESSAGES/sphinx.po
index 51c7203..9595618 100644
--- a/sphinx/locale/ar/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ar/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Abdullah ahmed <Alhadab@hotmail.co.uk>, 2020\n"
"Language-Team: Arabic (http://app.transifex.com/sphinx-doc/sphinx-1/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
@@ -39,104 +39,104 @@ msgstr "لا يمكن ان يكون المجلد المصدر والمجلد اÙ
msgid "Running Sphinx v%s"
msgstr "تشغيل Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "يحتاج هذا المشروع على الاقل الى الاصدار %s من Sphinx وبالتالي لا يمكن بناءه باستخدام الاصدار الحالي"
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "تحميل الترجمات [ %s ]"
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "تم"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "غير متوÙرة للرسائل الاÙتراضية المدمجة"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "Ùشل: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "لم يتم اختيار نوع البناء، تم استخدام نوع البناء الاÙتراضي: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "نجح"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "انتهى مع وجود مشاكل"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "بناء %s، %sتحذير."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "بناء %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "مجلد الاعدادات لا يحتوي على مل٠conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "قسم %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "جدول %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r لتم يتم العثور عليه، لهذا تم تجاهلة"
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "حدث غير معروÙ: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "التصميم %r "
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr "بناء [mo]:"
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "بناء [%s]"
@@ -587,50 +629,50 @@ msgstr "بناء [%s]"
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "التحقق من التواÙÙ‚"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "تحديث البيئة:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "تجهيز المستندات"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "نسخ الصور..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "قراءة القوالب"
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "صÙحة الHTML موجودة ÙÙŠ %(outdir)s"
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "كتابة ملÙات إضاÙية"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "معالجة %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "ملÙات الXML موجودة ÙÙŠ %(outdir)s"
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "صÙحة الHTML موجودة ÙÙŠ %(outdir)s"
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "الÙهرس العام"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "الÙهرس"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "التالي"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "السابق"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "إنشاء الÙهرس"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "كتابة صÙحات إضاÙية "
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "نسخ الملÙات القابلة للتحميل للنسخ..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "غير قادر على نسخ الملÙات القابلة للتحميل %r : %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "غير قادر على نسخ المل٠الثابت %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "نسخ ملÙات إضاÙية"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "غير قادر على نسخ الم٠الإضاÙÙŠ %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "مل٠الشعار %r غير موجود"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "مل٠الايقونة %r غير موجود"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "الرجاء ادخال بعض النصوص"
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "أدخل إما 'نعم' أو'لا'"
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "أدخل امتداد الملÙ, مثلا '.rst' أو '.txt'"
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "اسم المشروع"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "اسم المؤلÙ(ون)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "نسخة المشروع"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "إصدار المشروع"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "لغة المشروع"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "امتداد مل٠المصدر"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "إنشاء Makefile ؟ (نعم / لا)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "إنشاء مل٠أوامر للويندوز؟ (نعم/لا)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "اسم المشروع"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "أسماء المؤلÙين"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "إنشاء Makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "إنشاء Batchfile ؟"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "عر٠متغير للقالب"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "مؤل٠القسم:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "كاتب الكود:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "المؤلÙ"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,433 +1930,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "متغير"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "نوع"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/changeset.py:23
+#: sphinx/domains/javascript.py:331
#, python-format
-msgid "New in version %s"
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "كائن"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
+msgstr ""
+
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:63
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
+#, python-format
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
#, python-format
-msgid "%s (C++ %s)"
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "كائن"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "متغير بيئة العمل"
+
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "متغير"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "نوع"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "متغيرات"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "متغير بيئة العمل"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "متغيرات"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "صÙحة البحث"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s ليس مجلد."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[المصدر]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[المستندات]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "مثال"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "أمثلة"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "ملاحظات"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "مراجع"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "تنبيه"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "احتياط"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "خطر"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "خطأ"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "تلميح"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "مهم"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "ملاحظة"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "شاهد أيضا"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "نصيحة"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "تحذير"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr "قائمة المحتويات"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "بحث"
@@ -3343,34 +3402,22 @@ msgstr "الموضوع التالي"
msgid "next chapter"
msgstr "الÙصل التالي"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "بحث"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "نتائج البحث"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "البحث السريع"
@@ -3407,20 +3454,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "نتائج البحث"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3441,30 +3498,30 @@ msgstr ""
msgid "Contents"
msgstr "المحتوى"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "Ùشل"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/bg/LC_MESSAGES/sphinx.mo b/sphinx/locale/bg/LC_MESSAGES/sphinx.mo
index 0740c16..41ac7db 100644
--- a/sphinx/locale/bg/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/bg/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/bg/LC_MESSAGES/sphinx.po b/sphinx/locale/bg/LC_MESSAGES/sphinx.po
index 1a201ea..b130ec5 100644
--- a/sphinx/locale/bg/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/bg/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (http://app.transifex.com/sphinx-doc/sphinx-1/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/bn/LC_MESSAGES/sphinx.mo b/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
index 53ddf4d..8d956d3 100644
--- a/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/bn/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/bn/LC_MESSAGES/sphinx.po b/sphinx/locale/bn/LC_MESSAGES/sphinx.po
index ea013f4..bbb50c8 100644
--- a/sphinx/locale/bn/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/bn/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FIRST AUTHOR <EMAIL@ADDRESS>, 2009\n"
"Language-Team: Bengali (http://app.transifex.com/sphinx-doc/sphinx-1/language/bn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: bn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "পাইথন উনà§à¦¨à§Ÿà¦¨ পরামরà§à¦¶; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "বিলà§à¦Ÿà¦‡à¦¨ সমূহ"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "মডিউল লেভেল"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(-"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "সাধারণ ইনডেকà§à¦¸"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "ইনডেকà§à¦¸"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "পরবরà§à¦¤à§€"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "পূরà§à¦¬à¦¬à¦°à§à¦¤à§€"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "ইনডেকà§à¦¸"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "রিলিজ"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "অনà§à¦šà§à¦›à§‡à¦¦ লেখক:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "মডিউল লেখক:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "লেখক:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,82 +1929,10 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦°"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "রিটারà§à¦¨à¦¸"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "রিটারà§à¦¨ টাইপ"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr ""
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr ""
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "ফাংশন"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr ""
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr ""
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "%s ভারà§à¦¸à¦¨à§‡ নতà§à¦¨"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1967,346 +1944,423 @@ msgstr "%s ভারà§à¦¸à¦¨à§‡ পরিবরà§à¦¤à¦¿à¦¤"
msgid "Deprecated since version %s"
msgstr "%s ভারà§à¦¸à¦¨ থেকে ডেপà§à¦°à¦¿à¦•à§‡à¦Ÿà§‡à¦¡"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "কà§à¦²à¦¾à¦¸"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (বিলà§à¦Ÿ-ইন ফাংশন)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s মেথড)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (কà§à¦²à¦¾à¦¸à§‡)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s à¦à§à¦¯à¦Ÿà§à¦°à¦¿à¦¬à¦¿à¦‰à¦Ÿ)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr ""
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "রিটারà§à¦¨à¦¸"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "রিটারà§à¦¨ টাইপ"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (মডিউল)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "ফাংশন"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "মেথড"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "কà§à¦²à¦¾à¦¸"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "ডাটা"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "à¦à§à¦¯à¦Ÿà§à¦°à¦¿à¦¬à¦¿à¦‰à¦Ÿ"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "মডিউল"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "রেইজেস"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr ""
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr ""
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr ""
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "পà§à¦¯à¦¾à¦°à¦¾à¦®à¦¿à¦Ÿà¦¾à¦°"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s মডিউলে)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s মডিউলে)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (বিলà§à¦Ÿ-ইন ভà§à¦¯à¦¾à¦°à¦¿à§Ÿà§‡à¦¬à¦²)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (বিলà§à¦Ÿ-ইন কà§à¦²à¦¾à¦¸)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (%s কà§à¦²à¦¾à¦¸à§‡)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s কà§à¦²à¦¾à¦¸ মেথড)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s সà§à¦Ÿà§à¦¯à¦¾à¦Ÿà¦¿à¦• মেথড)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "মডিউল সমূহ"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "ডেপà§à¦°à¦¿à¦•à§‡à¦Ÿà§‡à¦¡"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "à¦à¦•à§à¦¸à§‡à¦ªà¦¶à¦¨"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "কà§à¦²à¦¾à¦¸ মেথড"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "সà§à¦Ÿà§à¦¯à¦¾à¦Ÿà¦¿à¦• মেথড"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "রেইজেস"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "à¦à¦¨à¦­à¦¾à§Ÿà¦°à¦¨à¦®à§‡à¦¨à§à¦Ÿ ভà§à¦¯à¦¾à¦°à¦¿à§Ÿà§‡à¦¬à¦²; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "শবà§à¦¦à¦•à§‡à¦¾à¦·"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "বà§à¦¯à¦•à¦°à¦£ টোকেন"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "à¦à¦¨à¦­à¦¾à§Ÿà¦°à¦¨à¦®à§‡à¦¨à§à¦Ÿ ভà§à¦¯à¦¾à¦°à¦¿à§Ÿà§‡à¦¬à¦²"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "পà§à¦°à§‡à¦¾à¦—à§à¦°à¦¾à¦® অপশন"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "মডিউল ইনডেকà§à¦¸"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ পাতা"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "অসমাপà§à¦¤ কাজ"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "দৃষà§à¦Ÿà¦¿ আকরà§à¦·à¦£"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "সতরà§à¦•à§€à¦•à¦°à¦£"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "বিপজà§à¦œà¦¨à¦•"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "ভà§à¦² (à¦à¦°à¦°)"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "আভাস"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "গà§à¦°à§à¦¤à§à¦¬à¦ªà§‚রà§à¦£"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "নোট"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "আরও দেখà§à¦¨"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "পরামরà§à¦¶"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "সতরà§à¦•à¦¤à¦¾"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨"
@@ -3342,34 +3401,22 @@ msgstr "পরবরà§à¦¤à§€ টপিক"
msgid "next chapter"
msgstr "পরবরà§à¦¤à§€ অধà§à¦¯à¦¾à§Ÿ"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨ করার জনà§à¦¯ অনà§à¦—à§à¦°à¦¹à¦ªà§‚রà§à¦¬à¦• জাভাসà§à¦•à§à¦°à¦¿à¦ªà§à¦Ÿ \n সকà§à¦°à¦¿à§Ÿ করà§à¦¨à¥¤"
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "খà§à¦à¦œà§à¦¨"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° ফলাফল"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "দà§à¦°à§à¦¤ অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨"
@@ -3406,20 +3453,30 @@ msgstr "C API পরিবরà§à¦¤à¦¨"
msgid "Other changes"
msgstr "অনà§à¦¯à¦¾à¦¨à§à¦¯ পরিবরà§à¦¤à¦¨"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "অনà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§‡à¦° ফলাফল"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "পাদটীকা"
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[ছবি]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ca/LC_MESSAGES/sphinx.mo b/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
index 71f2999..7f15bee 100644
--- a/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ca/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ca/LC_MESSAGES/sphinx.po b/sphinx/locale/ca/LC_MESSAGES/sphinx.po
index 1e4764a..0b66ddd 100644
--- a/sphinx/locale/ca/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ca/LC_MESSAGES/sphinx.po
@@ -1,24 +1,24 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
# Adam Turner, 2023
-# Antoni Bella Pérez <antonibella5@yahoo.com>, 2023
+# Antoni Bella Pérez <antonibella5@yahoo.com>, 2023-2024
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009
# Pau Fernández <pau.fernandez@upc.edu>, 2009
msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
-"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>, 2023\n"
+"Last-Translator: Antoni Bella Pérez <antonibella5@yahoo.com>, 2023-2024\n"
"Language-Team: Catalan (http://app.transifex.com/sphinx-doc/sphinx-1/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -41,104 +41,104 @@ msgstr "El directori d'origen i el de destinació no poden ser idèntics"
msgid "Running Sphinx v%s"
msgstr "S'està executant Sphinx versió %s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Aquest projecte almenys necessita Sphinx versió %s i, per tant, no es pot crear amb aquesta versió."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "es crea el directori de sortida"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "mentre es configura l'extensió %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "«setup» tal com es defineix actualment a conf.py no és una crida de Python. Modifiqueu la seva definició per a convertir-la en una funció que es pugui cridar. Això és necessari perquè conf.py es comporti com a una extensió de Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "s'estan carregant les traduccions [%s]..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "fet"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "no està disponible per a missatges integrats"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "s'està carregant l'entorn preparat"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "ha fallat: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "No s'ha seleccionat cap constructor, s'usa el predeterminat: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "ha tingut èxit"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "ha acabat amb problemes"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "construcció %s, %s avís (amb els avisos tractats com a errors)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "construcció %s, %s avisos (amb els avisos tractats com a errors)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "construcció %s, %s avís."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "construcció %s, %s avisos."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "construcció %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "la classe del node %r ja està registrada, els seus visitants seran anul·lats"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "la directiva %r ja està registrada, s'anul·larà"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "el rol %r ja està registrat, s'anul·larà"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr "l'extensió %s no declara si és segur per a la lectura en paral·lel, suposant que no ho sigui, demaneu a l'autor de l'extensió que ho comprovi i faci que sigui explícit"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "l'extensió %s no és segura per a la lectura en paral·lel"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr "l'extensió %s no declara si és segur per a l'escriptura en paral·lel, suposant que no ho sigui, demaneu a l'autor de l'extensió que ho comprovi i faci que sigui explícit"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "l'extensió %s no és segura per a l'escriptura en paral·lel"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "s'està executant %s en sèrie"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "el directori de configuració no conté un fitxer conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "S'ha trobat un valor de configuració no vàlid: «language = None». Actualitzeu la vostra configuració a un codi d'idioma vàlid. Es torna «en» (anglès)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "no s'ha pogut substituir l'ajust de la configuració del diccionari %r, s'ignora (useu %r per a establir elements individuals)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "nombre no vàlid %r del valor de configuració %r, s'ignora"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "no s'ha pogut substituir l'ajust de la configuració %r amb tipus no compatibles, s'ignora"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "valor de configuració desconegut %r en substituir, s'ignora"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Aquest valor de configuració no existeix: %s"
+msgid "No such config value: %r"
+msgstr "Aquest valor de configuració no existeix: %r"
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "El valor de configuració %r ja està present"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr "no es pot emmagatzemar a la memòria cau un valor de configuració no seleccionable: %r"
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Hi ha un error de sintaxi en el fitxer de configuració: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "El fitxer de configuració (o un dels mòduls que s'importen) ha cridat «sys.exit()»"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,291 +235,328 @@ msgid ""
"%s"
msgstr "Hi ha un error programable en el fitxer de configuració:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr "Ha fallat en convertir %r en un conjunt o tupla"
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "El valor de configuració «source_suffix» espera una cadena, una llista de cadenes o un diccionari. Però s'ha donat «%r»."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Secció %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Taula %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Llistat %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "El valor de configuració «{name}» ha de ser un de {candidates}, però s'ha donat «{current}»."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "El valor de configuració «{name}» té el tipus «{current.__name__}», s'espera {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "El valor de configuració «{name}» té el tipus «{current.__name__}», el valor predeterminat és «{default.__name__}»."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "no s'ha trobat primary_domain %r, s'ignora."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Des de la versió 2.0, Sphinx usa «index» de manera predeterminada com a root_doc. Afegiu «root_doc = 'contents'» al vostre conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "L'esdeveniment %r ja està present"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nom desconegut de l'esdeveniment: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "El gestor %r per a l'esdeveniment %r ha retornat una excepció"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "L'extensió %s és requerida per la configuració de needs_extensions, però aquesta no està carregada."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Aquest projecte necessita l'extensió %s almenys a la versió %s i, per tant, no es pot construir amb la versió carregada (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "No es coneix el nom del lexer de pigments %r"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
-msgstr ""
+msgstr "L'anàlisi lèxica del literal_block %r com a «%s» ha resultat en un error en el testimoni: %r. S'està tornant a provar en el mode relaxat."
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "s'han trobat múltiples fitxers per al document «%s»: %r\nUseu %r per a la compilació."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr "S'ha ignorat el document il·legible %r."
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "La classe del constructor %s no té cap atribut «name»"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "El constructor %r ja existeix (al mòdul %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "El nom del constructor %s no està registrat o disponible a través del punt d'entrada"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "El nom del constructor %s no està registrat"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "el domini %s ja està registrat"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "el domini %s encara no està registrat"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "La directiva %r ja està registrada al domini %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "El rol %r ja està registrat al domini %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "L'índex %r ja està registrat al domini %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "L'object_type %r ja està registrat"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "El crossref_type %r ja està registrat"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r ja està registrat"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser per a %r ja està registrat"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "L'analitzador de fonts per a %s no registrat"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "El traductor per a %r ja existeix"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwargs per a add_node() haurà de ser una funció (visita, sortida) tupla: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r ja està registrat"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "la representació matemàtica %s ja està registrada"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "l'extensió %r ja es va fusionar amb Sphinx des de la versió %s. Aquesta extensió s'ignorarà."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Excepció original:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "No s'ha pogut importar l'extensió %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "l'extensió %r no té cap funció setup(). És realment un mòdul d'extensions de Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "L'extensió %s usada per aquest projecte almenys necessita Sphinx versió %s i, per tant, no es pot crear amb aquesta versió."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "l'extensió %r ha retornat un objecte no admès des de la seva funció setup(). No n'hauria de retornar cap o retornar un diccionari de metadades"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Propostes de millora a Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "número de PEP no vàlid %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "número de RFC no vàlid %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "el tema %r no té la configuració «theme»"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "el tema %r no té la configuració «inherit» (heretat)"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "no s'ha trobat cap tema anomenat %r, heretat per %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "configuració %s. %s no es produeix en cap de les configuracions de temes cercats"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "opció de tema no admesa, s'ha donat %r"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "el fitxer %r en el camí de temes no és un fitxer ZIP vàlid ni conté cap tema"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr "no s'ha trobat cap tema anomenat %r (manca theme.toml?)"
+
+#: sphinx/theming.py:259
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "no s'ha trobat cap tema anomenat %r (manca el theme.conf?)"
+msgid "The %r theme has circular inheritance"
+msgstr "El tema %r té una herència circular"
+
+#: sphinx/theming.py:262
+#, python-format
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr "El tema %r hereta des de %r, el qual no és un tema que estigui carregat. Els temes carregats són: %s"
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr "El tema %r té massa avantpassats"
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr "no s'ha trobat cap fitxer de configuració del tema a %r"
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr "el tema %r no té la taula «theme»."
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr "La taula del tema %r «[theme]» no és una taula"
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr "El tema %r ha de definir la configuració «theme.inherit»."
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr "La taula del tema %r «[options]» no és una taula"
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr "La configuració de «theme.pygments_style» ha de ser una taula. Consell: «%s»"
#: sphinx/builders/__init__.py:183
#, python-format
@@ -530,8 +572,8 @@ msgstr "no s'ha trobat una imatge adequada per al constructor %s: %s"
msgid "building [mo]: "
msgstr "s'estan construint [mo]:"
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "s'està escrivint la sortida..."
@@ -580,7 +622,7 @@ msgstr "%d fitxers font proporcionats a la línia d'ordres"
msgid "targets for %d source files that are out of date"
msgstr "els objectius per a %d fitxers font que estan desfasats"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "s'està construint [%s]: "
@@ -589,50 +631,50 @@ msgstr "s'està construint [%s]: "
msgid "looking for now-outdated files... "
msgstr "s'està cercant per fitxers sense actualitzar... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "s'han trobat %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "no se n'ha trobat cap"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "s'està preparant l'ambient"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "s'està comprovant la coherència"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "no hi ha cap objectiu desfasat."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "s'està actualitzant l'entorn: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s afegits, %s canviats, %s eliminats"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "s'estan llegint les fonts... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "els docname que s'escriuran: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "s'estan preparant els documents"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr "s'estan copiant els recursos"
@@ -641,36 +683,36 @@ msgstr "s'estan copiant els recursos"
msgid "duplicated ToC entry found: %s"
msgstr "s'ha trobat una entrada ToC duplicada: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "s'estan copiant les imatges... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "no s'ha pogut llegir el fitxer d'imatge %r: en el seu lloc, es copia"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "no s'ha pogut copiar el fitxer d'imatge %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "no s'ha pogut escriure el fitxer d'imatge %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "No s'ha trobat el Pillow: es copien els fitxers d'imatge"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "s'està escrivint un fitxer de tipus MIME..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "s'està escrivint el fitxer META-INF/container.xml..."
@@ -678,470 +720,470 @@ msgstr "s'està escrivint el fitxer META-INF/container.xml..."
msgid "writing content.opf file..."
msgstr "s'està escrivint el fitxer content.opf..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "tipus MIME desconegut per a %s, s'ignora"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "s'està escrivint el fitxer toc.ncx..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "s'està escrivint el fitxer %s..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "El fitxer de vista general es troba a %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "no hi ha canvis en la versió %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "s'està escrivint el fitxer de vista general..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Elements incorporats"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Nivell de mòdul"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "s'estan copiant els fitxers font..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "no s'ha pogut llegir %r per a la creació del registre de canvis"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "El constructor fictici no genera cap fitxer."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "El fitxer ePub es troba a %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "s'està escrivint el fitxer nav.xhtml..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "el valor de configuració «epub_language» (o «language») no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "el valor de configuració «epub_uid» haurà de ser un XML NAME per a EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "el valor de configuració «epub_title» (o «html_title») no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "el valor de configuració «epub_author» no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "el valor de configuració «epub_contributor» no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "el valor de configuració «epub_description» no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "el valor de configuració «epub_publisher» no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "el valor de configuració «epub_copyright» (o «copyright») no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "el valor de configuració «epub_identifier» no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "el valor de configuració «version» no pot estar buit per a EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "css_file no vàlid: %r, s'ignora"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Els catàlegs de missatges es troben a %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "objectius per a %d fitxers de plantilla"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "s'estan llegint les plantilles... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "s'estan escrivint els catàlegs de missatges... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Cerqueu qualsevol error a la sortida anterior o en el fitxer %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "enllaç trencat: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "Ha fallat en compilar expressions regulars a linkcheck_allowed_redirects: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Les pàgines del manual es troben a %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "no s'ha trobat el valor de configuració «man_pages»: no s'escriuran les pàgines del manual"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "s'està escrivint"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "El valor de configuració «man_pages» fa referència a un document %s desconegut"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "La pàgina HTML es troba a %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "s'està muntant un únic document"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "s'estan escrivint els fitxers addicionals"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Els fitxers de Texinfo es troben a %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nExecuteu l'ordre «make» en aquest directori per a executar-les mitjançant\nde makeinfo (useu l'ordre «make info» per a fer-ho automàticament)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "no s'ha trobat el valor de configuració «texinfo_documents»: no s'escriurà cap document"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "El valor de configuració «texinfo_documents» fa referència a un document %s desconegut"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "s'està processant %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "s'estan resolent les referències..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (a "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "s'estan copiant els fitxers de suport de Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "error en escriure el fitxer Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Els fitxers de text es troben a %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "error en escriure al fitxer %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Els fitxers en XML es troben a %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Els fitxers en pseudo XML es troben a %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "el fitxer d'informació de la compilació està trencat: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Les pàgines en HTML es troben a %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Ha fallat en llegir el fitxer d'informació de la construcció: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%-d %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ãndex general"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "índex"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "següent"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "anterior"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "s'estan generant els índexs"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "s'estan escrivint les pàgines addicionals"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "s'estan copiant els fitxers que es poden baixar... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "no s'ha pogut copiar el fitxer que es podia baixar %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "Ha fallat en copiar un fitxer a html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "s'estan copiant els fitxers estàtics"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "no s'ha pogut copiar el fitxer estàtic %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "s'estan copiant els fitxers addicionals"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "no s'ha pogut copiar el fitxer addicional %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Ha fallat en escriure el fitxer d'informació de la construcció: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "no s'ha pogut carregar l'índex de cerca, i no es construiran tots els documents: l'índex estarà incomplet."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "la pàgina %s coincideix amb dos patrons a html_sidebars: %r i %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "s'ha produït un error d'Unicode en representar la pàgina %s. Assegureu-vos que tots els valors de configuració que contenen contingut que no és ASCII són cadenes Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "S'ha produït un error en representar la pàgina %s.\nMotiu: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "s'està bolcant l'inventari d'objectes"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "s'està bolcant l'índex de cerca a %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "js_file no vàlid: %r, s'ignora"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "S'han enregistrat molts math_renderer. Però no s'ha seleccionat math_renderer."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "S'ha donat un math_renderer %r desconegut."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "l'entrada html_extra_path %r no existeix"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "l'entrada html_extra_path %r es col·loca dins del directori de sortida"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "l'entrada html_static_path %r no existeix"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "l'entrada html_static_path %r es col·loca dins del directori de sortida"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "el fitxer de logotip %r no existeix"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "el fitxer icona de web %r no existeix"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr "HTML 4 ja no és compatible amb Sphinx. (s'ha detectat «html4_writer=true» a les opcions de configuració)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s documentació"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Els fitxers en LaTeX es troben a %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nExecuteu l'ordre «make» en aquest directori per a executar-les\nmitjançant (pdf)latex (useu l'ordre «make latexpdf» per a fer-ho\nautomàticament)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "no s'ha trobat el valor de configuració «latex_documents»: no s'escriurà cap document"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "El valor de configuració «latex_documents» fa referència a un document %s desconegut"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Ãndex"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Versió"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "no es coneix l'opció de Babel per a l'idioma %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "s'estan copiant els fitxers de suport de TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "s'estan copiant els fitxers de suport de TeX..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "s'estan copiant els fitxers addicionals"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Clau de configuració desconeguda: latex_elements[%r], s'ignora."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Opció desconeguda de tema: latex_theme_options[%r], s'ignora."
@@ -1156,15 +1198,15 @@ msgstr "%r no té la configuració «theme»"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r no té la configuració «%s»"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr "Ha fallat en obtenir el docname!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr "Ha fallat en obtenir un docname per a l'origen {source!r}!"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr "No s'ha trobat cap nota a peu de pàgina per al node de referència %r donat"
@@ -1223,8 +1265,8 @@ msgstr "Es pot presentar un informe d'error en el seguidor <https://github.com/s
msgid "job number should be a positive number"
msgstr "el número de treball hauria de ser un nombre positiu"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "Per a més informació, visiteu <https://www.sphinx-doc.org/>."
@@ -1256,257 +1298,264 @@ msgid "path to output directory"
msgstr "camí cap al directori de sortida"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "una llista de fitxers específics que s'han de reconstruir. S'ignorarà si s'especifica -a"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr "(opcional) una llista de fitxers específics que s'han de reconstruir. S'ignorarà si s'especifica «--write-all»"
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "opcions generals"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "constructor que s'usarà (predeterminat: html)"
+msgid "builder to use (default: 'html')"
+msgstr "constructor que s'usarà (predeterminat: «html»)"
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr "executa en paral·lel amb N processos, quan sigui possible. «auto» uxa el nombre de nuclis de la CPU"
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "escriu tots els fitxers (predeterminat: només escriu els fitxers nous i els que han canviat)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "no usar un entorn desat, llegeix sempre tots els fitxers"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "camí per a l'entorn en la memòria cau i els fitxers doctree (predeterminat: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "construeix en paral·lel amb N processos quan sigui possible (el valor especial «auto» estableix N al recompte de CPU)"
+msgid "path options"
+msgstr "opcions de camí"
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "camí on es troba el fitxer de configuració (conf.py) (predeterminat: igual que el SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr "directori per als fitxers doctree i d'entorn (predeterminat: OUTPUT_DIR/.doctrees)"
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "no usar cap fitxer de configuració, només les opcions -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr "directori per al fitxer de configuració (conf.py) (predeterminat: SOURCE_DIR)"
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr "no usa cap fitxer de configuració, només usa la configuració de les opcions de «-D»"
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "superposa una configuració en el fitxer de configuració"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "passa un valor a les plantilles HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "defineix l'etiqueta: inclou blocs «only» amb TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "Mode exhaustiu, adverteix sobre totes les referències que manquen"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr "mode exigent: avisa de totes les referències que manquen"
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "opcions de sortida de la consola"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "augmenta la loquacitat (es pot repetir)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "sense sortida a la sortida estàndard, només avisos a la sortida d'error estàndard"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "sense sortida, ni tan sols els avisos"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "emet una sortida amb colors (predeterminada: detecció automàtica)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "no emetre una sortida amb colors (predeterminada: detecció automàtica)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr "opcions de control d'avís"
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "escriviu els avisos (i errors) al fitxer indicat"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "converteix els avisos en errors"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "amb -w, se seguirà endavant quan es rebin avisos"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr "amb «--fail-on-warning», se segueix endavant quan es reben avisos"
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "mostra la traça completa en excepció"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "executa Pdb en excepció"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "no es pot combinar l'opció -a i els noms de fitxer"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "no s'ha pogut obrir el fitxer d'avisos %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
-msgstr "l'argument de l'opció -D haurà d'estar en la forma «nom=valor»"
+msgstr "l'argument de l'opció «-D» haurà d'estar en la forma «nom=valor»"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "l'argument de l'opció -A haurà d'estar en la forma «nom=valor»"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "insereix automàticament les docstring des dels mòduls"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "prova automàticament els fragments de codi en els blocs doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "enllaç entre la documentació de Sphinx de projectes diferents"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "escriu les entrades «todo» que es poden mostrar o ocultar durant la construcció"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "comprovacions per a la cobertura de la documentació"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "inclou expressions matemàtiques, mostrades com a imatges PNG o SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "inclou expressions matemàtiques, representades en el navegador per MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "inclusió condicional de contingut basat en els valors de la configuració"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "inclou els enllaços cap al codi font dels objectes documentats en Python"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "crea un fitxer .nojekyll per a publicar el document a les pàgines de GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Si us plau, introduïu un nom de camí vàlid."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Si us plau, introduïu algun text."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Si us plau, introduïu un dels %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Si us plau, introduïu qualsevol de «y» o «n»."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Si us plau, introduïu un sufix de fitxer, p. ex., «.rst» o «.txt»."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Us donem la benvinguda a la utilitat d'inici ràpid de Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Introduïu els valors per a les configuracions següents (només premeu «Retorn»\nper a acceptar un valor predeterminat, si se'n dona un entre parèntesis)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Camí arrel seleccionat: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Introduïu el camí arrel per a la documentació."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Camí arrel per a la documentació"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Error: ja existeix un fitxer conf.py en el camí arrel seleccionat."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "«sphinx-quickstart» no sobreescriurà els projectes de Sphinx existents."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Introduïu un camí arrel nou (o premeu «Retorn» per a sortir)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Teniu dues opcions per a col·locar el directori de construcció per a la\nsortida de Sphinx. O useu un directori «_build» dins del camí arrel,\no els directoris separats «source» i «build» dins del camí arrel."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Separa els directoris «source» i «build» (s/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Dins del directori arrel, es crearan dos directoris més: «_templates» per a\nles plantilles HTML personalitzades i «_static» per als fulls d'estil\npersonalitzats i altres fitxers estàtics. Podeu introduir un altre prefix\n(com «.») per a substituir el guió baix."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Prefix de nom per als directoris «templates» i «static»"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "El nom del projecte apareixerà en diversos llocs de la documentació construïda."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Nom del projecte"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Noms de l'autoria"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx té la noció d'una «versió» i un «llançament» per al programari.\nCada versió pot tenir múltiples versions. Per exemple, per a Python,\nla versió és una cosa semblant a 2.5 o 3.0, mentre que el llançament és\ncom 2.5.1 o 3.0a1. Si no necessiteu aquesta doble estructura, senzillament\nestabliu ambdues amb el mateix valor."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Versió del projecte"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Llançament del projecte"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Si els documents s'han d'escriure en un idioma que no sigui l'anglès,\npodeu seleccionar un idioma aquí per al vostre codi d'idioma.\nA continuació, Sphinx traduirà el text que es genera en aquest idioma.\n\nPer a obtenir una llista dels codis admesos, vegeu\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Idioma del projecte"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "El sufix del nom del fitxer per als fitxers d'origen. Normalment, aquest és\n«.txt» o «.rst». Només els fitxers amb aquest sufix es consideraran documents."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Sufix del fitxer font"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Un document és especial perquè es considera el node superior de l'«arbre de\ncontingut», és a dir, és l'arrel de l'estructura jeràrquica dels documents.\nNormalment, es tracta de l'«index», però si el document «index» és una\nplantilla personalitzada, també podreu establir-la a un altre nom de fitxer."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Nom del document mestre (sense sufix)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Error: el fitxer mestre %s ja es troba en el camí arrel seleccionat."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "«sphinx-quickstart» no sobreescriurà el fitxer existent."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Introduïu un nom de fitxer nou o canvieu-ne el nom i premeu «Retorn»"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Indiqueu quines de les extensions següents de Sphinx haurien d'estar habilitades:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Nota: «imgmath» i «mathjax» no es poden habilitar alhora. «imgmath» ha estat desseleccionat."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Es pot generar un fitxer Makefile i un fitxer d'ordres de Windows,\nde manera que només haureu d'executar, p. ex., «make html»\nen lloc d'invocar directament «sphinx-build»."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Voleu crear el Makefile? (s/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Voleu crear el fitxer d'ordres de Windows? (s/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "S'està creant el fitxer %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "El fitxer %s ja existeix, se salta."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Finalitzat: s'ha creat una estructura inicial del directori."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Ara heu de completar el fitxer mestre %s i crear altres fitxers font de documentació. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Useu el Makefile per a construir els documents, com segueix:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Useu l'ordre «sphinx-build» per a construir els documents, com segueix:\n sphinx-build -b constructor %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "on «constructor» és un dels constructors admesos, p. ex., html, latex o linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nGenereu els fitxers necessaris per a un projecte Sphinx.\n\n«sphinx-quickstart» és una eina interactiva que fa algunes preguntes sobre el\nprojecte i després genera un directori complet de documentació i un\nexemple del fitxer Makefile per a ser usat amb l'ordre «sphinx-build».\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "mode silenciós"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "arrel del projecte"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Opcions de l'estructura"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "Si s'especifica, se separarà el codi font i els directoris de compilació"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "Si s'especifica, es crearà el directori de construcció a dins del directori d'origen"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "substitució per a punts a _templates, etc."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Opcions bàsiques del projecte"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "nom del projecte"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "noms de l'autoria"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "versió del projecte"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "llançament del projecte"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "idioma del document"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "sufix del fitxer font"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "nom del document mestre"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "usa epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Opcions de l'extensió"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "habilita l'extensió %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "habilita les extensions arbitràries"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Creació dels fitxers Makefile i de processament per lots"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "es crea el Makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "no es crea el Makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "es crea el fitxer de processament per lots"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "no es crea el fitxer de processament per lots"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "usa el mode make per a Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "no usis el mode make per a Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Plantilles de projecte"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "directori de plantilles per als fitxers de plantilla"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "defineix una variable de plantilla"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "s'especifica «quiet», però no s'especifica cap «project» o «author»."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Error: el camí especificat no és un directori o ja hi ha els fitxers de Sphinx."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "«sphinx-quickstart» només generarà dins d'un directori buit. Especifiqueu un camí arrel nou."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Variable no vàlida de plantilla: %s"
@@ -1828,47 +1877,47 @@ msgstr "No podeu usar «lineno-match» amb un conjunt desarticulat de «líniesÂ
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Línia específica %r: No hi ha cap línia llançada des del fitxer inclòs %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "El patró global toctree %r no coincideix amb cap document"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "el toctree conté una referència cap al document exclòs %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "el toctree conté una referència cap al document %r, el qual no existeix"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "s'ha trobat una entrada duplicada en el toctree: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor de la secció:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor del mòdul: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor del codi: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr "... el contingut dels reconeixements no és una llista"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr "... el contingut de l'historial no és una llista"
@@ -1883,82 +1932,10 @@ msgstr "«:file:» l'opció per a la directiva «csv-table» ara reconeix un cam
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Declaració de C duplicada, també definida a %s:%s.\nLa declaració és «.. c:%s:: %s»."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Paràmetres"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "Valors retornats"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Retorna"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tipus de retorn"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membre"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variable"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funció"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "estructura"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "unió"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enumera"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "numerador"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipus"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "paràmetre de la funció"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Novetat de la versió %s"
+msgid "Added in version %s"
+msgstr "Afegit a la versió %s"
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "Canviat a la versió %s"
msgid "Deprecated since version %s"
msgstr "Obsolet des de la versió %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr "S'ha eliminat a la versió %s"
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "citació duplicada %s, una altra instància a %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "No es fa referència a la citació [%s]."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Declaració de C** duplicada, també definida a %s:%s.\nLa declaració és «.. cpp:%s:: %s»."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Paràmetres de la plantilla"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Llançaments"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "classe"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "concepte"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "paràmetre de la plantilla"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (funció interna)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (mètode %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (classe)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variable global o constant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atribut %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Arguments"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Llançaments"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Retorna"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipus de retorn"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (mòdul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funció"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "mètode"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "classe"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dades"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "mòdul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "descripció %s duplicada de %s, una altra %s a %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "etiqueta duplicada de l'equació %s, una altra instància a %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "math_eqref_format no vàlid: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Llença"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (opció de la directiva)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "opció_de_la_directiva"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rol"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "descripció duplicada del %s %s, una altra instància a %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Declaració de C duplicada, també definida a %s:%s.\nLa declaració és «.. c:%s:: %s»."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Paràmetres"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Valors retornats"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membre"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variable"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "estructura"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "unió"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enumera"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "numerador"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipus"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "paràmetre de la funció"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Paràmetres de la plantilla"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Declaració de C** duplicada, també definida a %s:%s.\nLa declaració és «.. cpp:%s:: %s»."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concepte"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "paràmetre de la plantilla"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (al mòdul %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (al mòdul %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variable interna)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (classe interna)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (classe a %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (mètode de classe %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (mètode estàtic %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (propietat %s)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Ãndex de mòduls en Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "mòduls"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Obsolet"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "excepció"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "mètode de classe"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "mètode estàtic"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "propietat"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr "descripció de l'objecte duplicat de %s, una altra instància a %s, ús «:no-index:» per a un d'ells"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "s'ha trobat més d'un objectiu per a la referència creuada %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (obsolet)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directiva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (opció de la directiva)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rol)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directiva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "opció_de_la_directiva"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rol"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variables"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "descripció duplicada del %s %s, una altra instància a %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Llença"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variable d'entorn; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Descripció de l'opció amb format incorrecte %r, s'ha de veure com «opt», «-opt args», «--opt args», «/opt args» o «+opt args»"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "opció de la línia d'ordres %s"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "opció de la línia d'ordres"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "el terme del glossari ha d'estar precedit per una línia buida"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "els termes del glossari no han d'estar separats per línies buides"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "el glossari sembla estar mal formatat, verifiqueu el sagnat"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "terme del glossari"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "gramàtica simbòlica"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "etiqueta de referència"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variable d'entorn"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opció del programa"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "document"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Ãndex de mòduls"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Pàgina de cerca"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "etiqueta duplicada %s, una altra instància a %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "descripció %s duplicada del %s, una altra instància a %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "«numfig» està desactivat. :numref: s'ignora."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "Ha fallat en crear una referència creuada. No s'assigna cap número: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "l'enllaç no té cap subtítol: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "numfig_format no vàlid: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "numfig_format no vàlid: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "etiqueta sense definir: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "Ha fallat en crear una referència creuada. No es troba un títol o subtítol: %r"
@@ -2326,35 +2380,35 @@ msgstr "configuració modificada"
msgid "extensions changed"
msgstr "extensions modificades"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "la versió de l'entorn de compilació no és actual"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "el directori d'origen ha estat modificat"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Aquest entorn és incompatible amb el constructor seleccionat, trieu un altre directori doctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Ha fallat en escanejar els documents a %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "El domini %r no està registrat"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "el document no està inclòs en cap toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "S'ha trobat un toctree autoreferenciat. S'ignora."
@@ -2378,39 +2432,39 @@ msgstr "tipus d'entrada %r amb un índex desconegut"
msgid "Symbols"
msgstr "Símbols"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "s'han detectat referències circulars del toctree, s'ignora: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "el toctree conté una referència cap al document %r, el qual no conté un títol: no es generarà cap enllaç"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "el toctree conté una referència cap a un document no inclòs %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "el fitxer d'imatge no es pot llegir: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "el fitxer d'imatge %s no es pot llegir: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "el fitxer de baixada no es pot llegir: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s ja té assignats números de secció (toctree amb numeració imbricada?)"
@@ -2420,7 +2474,7 @@ msgstr "%s ja té assignats números de secció (toctree amb numeració imbricad
msgid "Would create file %s."
msgstr "S'hauria de crear el fitxer %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nMireu recursivament a <MODULE_PATH> per als mòduls i paquets de Python\ni creeu un fitxer reST amb les directives «automodule» per paquet en el <OUTPUT_PATH>.\n\nEls <EXCLUDE_PATTERN> poden ser fitxers i/o patrons de directori que seran\nexclosos de la generació.\n\nNota: De manera predeterminada, aquest script no sobreescriurà els fitxers que ja s'han creat."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "camí cap al mòdul que es documenta"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "fitxer d'estil fnmatch i/o patrons de directori que s'exclouran de la generació"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "directori per a col·locar tota la sortida"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "profunditat màxima dels submòduls que es mostraran a la TOC (predeterminada: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "sobreescriu els fitxers existents"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "seguir els enllaços simbòlics. Potent quan es combina amb el paquet collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "executa l'script sense crear els fitxers"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "posa la documentació per a cada mòdul a la seva pròpia pàgina"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "inclou «_private» en els mòduls"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "nom de fitxer de la taula de contingut (predeterminat: mòduls)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "no crea un fitxer de taula de contingut"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "no crea capçaleres per als paquets del mòdul/paquet (p. ex., quan les cadenes de documentació ja les contenen)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "posa la documentació del mòdul abans de la documentació del submòdul"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interpreta els camins dels mòduls segons l'especificació d'espais de noms implícits al PEP-0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "sufix del fitxer (predeterminat: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "genera un projecte complet amb «sphinx-quickstart»"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
-msgstr "afegeix module_path a sys.path, s'usa quan s'indica el paràmetre --full"
+msgstr "afegeix module_path a sys.path, s'usa quan s'indica el paràmetre «--full»"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "nom del projecte (predeterminat: nom del mòdul arrel)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
-msgstr "autoria del projecte, s'usa quan s'indica el paràmetre --full"
+msgstr "autoria del projecte, s'usa quan s'indica el paràmetre «--full»"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
-msgstr "versió del projecte, s'usa quan s'indica el paràmetre --full"
+msgstr "versió del projecte, s'usa quan s'indica el paràmetre «--full»"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
-msgstr "llançament del projecte, s'usa quan s'indica el paràmetre --full"
+msgstr "llançament del projecte, s'usa quan s'indica el paràmetre «--full», predeterminat a «--doc-version»"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "opcions de l'extensió"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s no és cap directori."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "la secció «%s» s'etiqueta com a «%s»"
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "expressions regulars no vàlides %r a %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Proves de cobertura en les fonts acabades, mireu el resultat a %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "expressions regulars no vàlides %r a coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "API de C sense documentar: %s [ %s] en el fitxer %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "el mòdul %s no s'ha pogut importar: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "funció de Python sense documentar: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "classe de Python sense documentar: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "mètode de Python sense documentar: %s :: %s :: %s"
@@ -2598,24 +2652,24 @@ msgstr "«%s» no és una opció pyversion vàlida"
msgid "invalid TestCode type"
msgstr "tipus de TestCode no vàlid"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Proves de doctests en les fonts acabades, mireu el resultat a %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "no hi ha codi/sortida en el bloc %s a %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "s'ignora el codi doctest no vàlid: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "==================== durades de lectura més lentes ====================="
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "l'enllaç codificat %r podria substituir-se per un enllaç extern (en el seu lloc intenteu usar %r)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "La directiva del Graphviz no pot tenir tant el contingut com un argument del nom de fitxer"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "El fitxer extern %r del Graphviz no s'ha trobat ni es pot llegir"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "S'està ignorant la directiva «graphviz» sense contingut."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr "S'ha d'establir el camí de l'executable «graphviz_dot»! %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "l'ordre «dot» %r no s'ha pogut executar (necessària per a la sortida del Graphviz), comproveu la configuració de «graphviz_dot»"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr "«dot» ha sortit amb un error:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr "«dot» no ha produït un fitxer de sortida:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format haurà de ser un de «png» o «svg», però és %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "codi del «dot» %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[gràfica: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[gràfica]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr "No es pot executar l'ordre de conversió d'imatges %r. «sphinx.ext.imgconverter» requereix de manera predeterminada ImageMagick. Assegureu-vos que està instal·lat o configureu l'opció «image_converter» a una ordre de conversió personalitzada.\n\nTraça: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr "«convert» ha sortit amb un error:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "l'ordre «convert» %r no s'ha pogut executar, comproveu la configuració d'«image_converter»"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "l'ordre de LaTeX %r no s'ha pogut executar (necessària per a la visualització matemàtica), comproveu la configuració d'«imgmath_latex»"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s l'ordre de %r no s'ha pogut executar (necessària per a la visualització matemàtica), comproveu la configuració d'«imgmath_%s»"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "visualització de latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "latex inclòs %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr "Enllaça amb aquesta equació"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "l'inventari intersphinx s'ha mogut: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "s'està carregant l'inventari intersphinx des de %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "s'han trobat alguns problemes amb alguns dels inventaris, però tenien alternatives funcionals:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "s'ha fallat en arribar a cap dels inventaris amb els problemes següents:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(a %s versió %s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(a %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr "no es troba l'inventari per a la referència creuada externa: %r"
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "no es troba l'inventari per a la referència creuada externa: %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr "no es troba l'inventari per a la referència creuada externa: %r"
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "no es troba el rol per a la referència creuada externa: %s"
+msgid "domain for external cross-reference not found: %r"
+msgstr "no es troba el domini per a la referència creuada externa: %r"
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "%s externa: no es troba la destinació de la referència %s: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "l'identificador %r d'intersphinx no és una cadena. S'ignora"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "Ha fallat en llegir intersphinx_mapping[%s], s'ignora: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[font]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Tasca pendent"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "S'ha trobat una entrada TODO: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<entrada original>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(L'<<original entry>> es troba a %s, línia %d)."
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "entrada original"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "s'està ressaltant el codi del mòdul... "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documents]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Codi del mòdul"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Codi font per a %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Vista general: codi del mòdul"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Tots els mòduls per als quals hi ha codi</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "valor no vàlid per a l'opció de l'ordre de membre: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "valor no vàlid per a l'opció des de la documentació de classes: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "signatura no vàlida per a auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "error mentre es donava format als arguments per a %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: ha fallat en determinar %s. %s (%r) que s'ha de documentar, s'ha plantejat l'excepció següent:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr "es desconeix quin és el mòdul que s'importarà per al document automàtic %r (proveu de col·locar una directiva «module» o «currentmodule» en el document o doneu-li un nom explícit al mòdul)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "S'ha detectat un objecte simulat: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "error mentre es donava format a la signatura per a %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "«::» en el nom de l'«automodule» no té sentit"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "arguments de signatura o anotació de retorn indicats per a «automodule» %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ ha de ser una llista de cadenes, no %r (en el mòdul %s) -s'ignora __all__-"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "manca l'atribut esmentat a l'opció «:members:»: mòdul %s, atribut %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "Ha fallat en obtenir una signatura de funció per a %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "Ha fallat en obtenir un constructor de funció per a %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Bases: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "manca l'atribut %s a l'objecte %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "àlies de %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "àlies de TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "Ha fallat en obtenir una signatura de mètode per a %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "S'han trobat __slots__ no vàlids a %s. S'ignora."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "Ha fallat en analitzar un valor d'argument predeterminat per a %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "Ha fallat en actualitzar la signatura per a %r: no es troba el paràmetre: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "Ha fallat en analitzar type_comment per a %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "referències autosummary excloses del document %r. S'ignora."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: no s'ha trobat el fitxer stub %r. Verifiqueu la vostra configuració autosummary_generate."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "Un resum automàtic amb subtítols requereix l'opció «:toctree:». S'ignora."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,26 +3055,26 @@ msgid ""
"%s"
msgstr "autosummary: ha fallat en importar %s.\nPossibles pistes:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "ha fallat en analitzar el nom %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "ha fallat en importar l'objecte %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: no s'ha trobat el fitxer: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary genera els fitxers .rst internament. Però el vostre source_suffix no en conté. S'omet."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr "«autosummary» genera internament els fitxers «.rst». Però el vostre source_suffix no conté cap «.rst». S'omet."
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr "documenta exactament els membres en l'atribut __all__ del mòdul. (predeterminat: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Arguments de paraules clau"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Exemple"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Exemples"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Notes"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Altres paràmetres"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "Rebudes"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Referències"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Avisos"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Rendiments"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "conjunt de valors no vàlid (manca el claudàtor de tancament): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "conjunt de valors no vàlid (manca el claudàtor d'obertura): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "Cadena incorrecta literal (manquen les cometes de tancament): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "Cadena incorrecta literal (manquen les cometes d'obertura): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Atenció"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Compte"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Perill"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Error"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Suggeriment"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Important"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Nota"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Vegeu també"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Truc"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Avís"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr "Taula de continguts"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Cerca"
@@ -3345,34 +3404,22 @@ msgstr "Tema següent"
msgid "next chapter"
msgstr "capítol següent"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Activa JavaScript per a usar la funcionalitat\n de cerca."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Cercar múltiples paraules només mostrarà les coincidències\n que continguin totes les paraules."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "cerca"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Resultats de la cerca"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "La vostra cerca no ha coincidit amb cap document. Assegureu-vos que s'escriuen correctament totes les paraules i que heu seleccionat prou categories."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Cerca ràpida"
@@ -3409,20 +3456,30 @@ msgstr "Canvis a l'API de C"
msgid "Other changes"
msgstr "Altres canvis"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Resultats de la cerca"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "La vostra cerca no ha coincidit amb cap document. Assegureu-vos que s'escriuen correctament totes les paraules i que heu seleccionat prou categories."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "Cerca acabada, s'han trobat ${resultCount} pàgines que coincideixen amb la consulta de cerca."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "S'està cercant"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "S'està preparant la cerca..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", a "
@@ -3443,30 +3500,30 @@ msgstr "Expandeix la barra lateral"
msgid "Contents"
msgstr "Contingut"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr "no s'ha pogut calcular el progrés de la traducció!"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr "No hi ha cap element traduït!"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "S'ha trobat un índex basat en 4 columnes. Pot ser un error de les extensions que utilitzeu: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "La nota al peu [%s] no té una referència."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "La nota al peu [núm.] no té una referència."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr "referències incoherents en el missatge traduït. Original: {0}, traduït: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "referències incoherents de citació en el missatge traduït. Original: {0}, traduït: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr "%s:%s no es troba la destinació de la referència: %s"
msgid "%r reference target not found: %s"
msgstr "%r no es troba la destinació de la referència: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "No s'ha pogut recuperar la imatge remota: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "No s'ha pogut recuperar la imatge remota: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Format d'imatge desconegut: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "caràcters font no codificables, substituint per «?»: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "s'omet"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "ha fallat"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "Problema en el domini %s: se suposa que el camp usa el rol «%s», però no es troba en el domini."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "directiva o nom de rol desconegut: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "tipus de node desconegut: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "error de lectura: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "error d'escriptura: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr "locale_dir %s no existeix"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Format de data no vàlid. Citeu la cadena amb cometes senzilles si voleu generar-la directament: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr "%r està en desús per a les entrades d'índex (des de l'entrada %r). En el seu lloc useu «pair: %s»."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "el toctree conté una referència cap al fitxer %r que no existeix"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "excepció mentre només s'avaluava l'expressió directiva: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "no s'ha trobat el rol predeterminat %s"
@@ -3617,27 +3674,27 @@ msgstr "Qualsevol ID no assignat per al node %s"
msgid "Link to this term"
msgstr "Enllaça amb aquest terme"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr "Enllaça amb aquesta capçalera"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr "Enllaça amb aquesta taula"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr "Enllaça amb aquest codi"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr "Enllaça amb aquesta imatge"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr "Enllaça amb aquest toctree"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "No s'ha pogut obtenir la mida de la imatge. S'ignora l'opció «:scale:»."
@@ -3654,13 +3711,13 @@ msgstr ":maxdepth: massa gran, s'ignora."
msgid "document title is not a single Text node"
msgstr "el títol del document no és només un node de text"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "el node del títol no s'ha trobat en la secció, tema, taula, advertiment o nota al marge"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Notes al peu"
@@ -3679,20 +3736,20 @@ msgstr "la unitat de dimensió %s no és vàlida. S'ignora."
msgid "unknown index entry type %s found"
msgstr "s'ha trobat el tipus d'entrada %s amb un índex desconegut"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[imatge: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[imatge]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "el subtítol no es troba dins d'una figura."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "tipus de node sense implementar: %r"
diff --git a/sphinx/locale/cak/LC_MESSAGES/sphinx.mo b/sphinx/locale/cak/LC_MESSAGES/sphinx.mo
index 0adb8c6..708a4e1 100644
--- a/sphinx/locale/cak/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/cak/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/cak/LC_MESSAGES/sphinx.po b/sphinx/locale/cak/LC_MESSAGES/sphinx.po
index 503a89b..ba6e6ef 100644
--- a/sphinx/locale/cak/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/cak/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Julien Malard <julien.malard@mail.mcgill.ca>, 2019\n"
"Language-Team: Kaqchikel (http://app.transifex.com/sphinx-doc/sphinx-1/language/cak/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: cak\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "xk'isïk"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "sachoj: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Ruwachib'äl %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Kik'ajtz'ïk %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "tajin nutz'ib'aj"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(chupam"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Konojel cholwuj"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "cholwuj"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "jun chïk"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "chi rij kan"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Cholwuj"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Ütz apetïk pa rokisanem runuk'ik Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Rub'i' samäj"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Kib'i' ajtz'ib'anel(a')"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Rujalwäch samäj"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Ruch'ab'äl samaj"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Jalajöj"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "retal jalöj"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
+msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/changeset.py:23
+#: sphinx/domains/javascript.py:331
#, python-format
-msgid "New in version %s"
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "Ruwäch"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
+msgstr ""
+
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "Ruwäch"
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Jalajöj"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "retal jalöj"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Retal jalöj"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr ""
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Retal jalöj"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "wuj"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(chupam %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Chi tiqib'ana'"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(Ri <<original entry>> k'o chupam %s, pa juch' %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Tz'etb'äl"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Tz'etb'äl"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Jalajöj chïk"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Sachoj"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Tatz'u chuqa'"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3342,34 +3401,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3406,20 +3453,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", pa"
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "rusachoj rusik'inïk: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "rusachoj rutz'ib'axïk: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[wachib'äl: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[wachib'äl]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.mo b/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
index 84585aa..ab15ff4 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/cs/LC_MESSAGES/sphinx.po b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
index ae63f85..562d028 100644
--- a/sphinx/locale/cs/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/cs/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Vilibald W. <vilibald.wanca@gmail.com>, 2014-2015\n"
"Language-Team: Czech (http://app.transifex.com/sphinx-doc/sphinx-1/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Obr. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabulka %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Výpis %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Vestavěné funkce"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Úroveň modulu"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (v "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%m.%Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Obecný rejstřík"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "rejstřík"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "další"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "předchozí"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Dokumentace pro %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Rejstřík"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Vydání"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor sekce: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor modulu: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor kódu:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,82 +1930,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametry"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Vrací"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Typ návratové hodnoty"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "Älen"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "proměnná"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkce"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "typ"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nové ve verzi %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "Změněno ve verzi %s"
msgid "Deprecated since version %s"
msgstr "Zastaralé od verze %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Vyvolá"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "třída"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (vestavěná funkce)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (metoda %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (třída)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globální proměnná nebo konstanta)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atribut %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumenty"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Vyvolá"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Vrací"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Typ návratové hodnoty"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkce"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metoda"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "třída"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Proměnné"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Vyvolá"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "role"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametry"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "Älen"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "proměnná"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "typ"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (v modulu %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (v modulu %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (vestavěná proměnná)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (vestavěná třída)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (třída v %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (třídní metoda %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (statická metoda %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Rejstřík modulů Pythonu"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduly"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Zastaralé"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "výjimka"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "třídní metoda"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statická metoda"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (zastaralé)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktiva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (role)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktiva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Proměnné"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Vyvolá"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "proměnná prostředí; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "termín v glosáři"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "token gramatiky"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "referenÄní návÄ›stí"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "proměnná prostředí"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "volba programu"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Rejstřík modulů"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Vyhledávací stránka"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr "Symboly"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graf: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graf]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(v %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[zdroj]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "původní záznam"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumentace]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Kód modulu"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Zdrojový kód pro %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Přehled: kód modulu"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Všechny moduly s dostupným kódem</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Výstraha"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Upozornění"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "NebezpeÄí"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Chyba"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Rada"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Důležité"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Poznámka"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Viz také"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Varování"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Vyhledávání"
@@ -3343,34 +3402,22 @@ msgstr "Další téma"
msgid "next chapter"
msgstr "další kapitola"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Pro podporu vyhledávání aktivujte JavaScript."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "hledat"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Výsledky vyhledávání"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Vyhledávání nenalezlo žádný odpovídající dokument. Ujistěte se, že jste všechna slova zapsal/a správně a že jste vybral/a dostatek kategorií."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Rychlé vyhledávání"
@@ -3407,20 +3454,30 @@ msgstr "Změny API"
msgid "Other changes"
msgstr "Ostatní změny"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Výsledky vyhledávání"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Vyhledávání nenalezlo žádný odpovídající dokument. Ujistěte se, že jste všechna slova zapsal/a správně a že jste vybral/a dostatek kategorií."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Probíhá vyhledání"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Vyhledávání se připravuje..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", v "
@@ -3441,30 +3498,30 @@ msgstr "Rozbalit boÄní liÅ¡tu"
msgid "Contents"
msgstr "Obsah"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Poznámky pod Äarou"
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[obrázek: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[obrázek]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/cy/LC_MESSAGES/sphinx.mo b/sphinx/locale/cy/LC_MESSAGES/sphinx.mo
index 343e8b0..1bfcdd3 100644
--- a/sphinx/locale/cy/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/cy/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/cy/LC_MESSAGES/sphinx.po b/sphinx/locale/cy/LC_MESSAGES/sphinx.po
index 4b9cc94..d4ef801 100644
--- a/sphinx/locale/cy/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/cy/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Geraint Palmer <palmer.geraint@googlemail.com>, 2016\n"
"Language-Team: Welsh (http://app.transifex.com/sphinx-doc/sphinx-1/language/cy/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: cy\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Ffig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabl %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listing %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Lefel modiwl"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (yn "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Indecs cyffredinol"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indecs"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "nesaf"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "blaenorol"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Dogfennaeth %s %s "
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indecs"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Rhyddhad"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Awdur yr adran:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Awdur y fodiwl:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Awdur y cod:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Awdur:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,433 +1930,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
+msgstr "Wedi newid yn fersiwn %s"
+
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
+msgstr "Dibrisiwyd ers fersiwn %s"
+
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Paramedrau"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
+msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "aelod"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
+msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr "%s (newidyn byd-eang neu cysonyn)"
+
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "ffwythiant"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
+msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "ffwythiant"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
-msgstr "Newydd yn fersiwn %s"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
-msgstr "Wedi newid yn fersiwn %s"
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr "modiwl"
-#: sphinx/domains/changeset.py:25
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "Deprecated since version %s"
-msgstr "Dibrisiwyd ers fersiwn %s"
+msgid "duplicate %s description of %s, other %s in %s"
+msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/math.py:63
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:213
#, python-format
-msgid "%s (C++ %s)"
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (built-in function)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (%s method)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:167
-#, python-format
-msgid "%s() (class)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Paramedrau"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
-msgstr "%s (newidyn byd-eang neu cysonyn)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "aelod"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
-msgstr "modiwl"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Indecs Modiwlau"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Tudalen Chwilio"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr "Symbolau"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graff: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graff]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(yn %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[ffynhonnell]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "eitem wreiddiol"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Cod y modiwl"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Cod ffynhonnell ar gyfer %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Trosolwg: cod y modiwl"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Holl fodiwlau lle mae'r cod ar gael</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Sylw"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Gofal"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Perygl"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Gwall"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Awgrym"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Pwysig"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Nodyn"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Gweler hefyd"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Awgrym"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Rhybudd"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Chwilio"
@@ -3343,34 +3402,22 @@ msgstr "Pwnc nesaf"
msgid "next chapter"
msgstr "pennod nesaf"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Trwoch JavaScript ymlaen i alluogi'r chwilio."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "chwilio"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Canlyniadau chwilio"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Nid yw eich chwiliad yn cyfateb unrhyw ddogfennau. Gwnewch yn siŵr fod pob gair wedi'i sillafu'n gywir, ac eich bod wedi dewis digon o gategorïau."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Chwilio cyflym"
@@ -3407,20 +3454,30 @@ msgstr "Newidiadau i'r C-API"
msgid "Other changes"
msgstr "Newidiadau arall"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Canlyniadau chwilio"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Nid yw eich chwiliad yn cyfateb unrhyw ddogfennau. Gwnewch yn siŵr fod pob gair wedi'i sillafu'n gywir, ac eich bod wedi dewis digon o gategorïau."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Yn chwilio"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Paratoi chwilio..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", yn "
@@ -3441,30 +3498,30 @@ msgstr "Ehangu'r bar ochr"
msgid "Contents"
msgstr "Cynnwys"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Troednodiadau"
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[delwedd: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[delwedd]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/da/LC_MESSAGES/sphinx.mo b/sphinx/locale/da/LC_MESSAGES/sphinx.mo
index 55497d6..613650f 100644
--- a/sphinx/locale/da/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/da/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/da/LC_MESSAGES/sphinx.po b/sphinx/locale/da/LC_MESSAGES/sphinx.po
index 68cfd89..3fbfa41 100644
--- a/sphinx/locale/da/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/da/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Komiya Takeshi <i.tkomiya@gmail.com>, 2021\n"
"Language-Team: Danish (http://app.transifex.com/sphinx-doc/sphinx-1/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -41,104 +41,104 @@ msgstr "Kildemappe og destinationsmappe kan ikke være identiske"
msgid "Running Sphinx v%s"
msgstr "Kører Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Dette projekt kræver mindst Sphinx v%s og kan derfor ikke bygges med denne version."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "indlæser oversættelser [%s] ..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "færdig"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "ikke tilgængelig for indbyggede beskeder"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "fejlede: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "lykkedes"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "færdig med problemer"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "kompilering %s, %s advarsel."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "kompilering %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "konfigurationsmappe indeholder ikke en conf.py-fil (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Ingen sådan konfigurationsværdi: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Konfigurationsværdien %r er allerede til stede"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,290 +235,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "figur %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "tabel %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Kildekode %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r blev ikke fundet, ignorerer."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Ukendt hændelsesnavn: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domænet %s er allerede registreret"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "Rollen %r er allerede registreret til domæne %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser for %r er allerede registreret"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Kunne ikke importere udvidelse %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Udvidelsen %s brugt af dette projekt kræver mindst Sphinx v%s; den kan derfor ikke bygges med denne version."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -530,8 +572,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -580,7 +622,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -589,50 +631,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "læser kilder ..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "forbereder dokumenter"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -641,36 +683,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -678,470 +720,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Indbyggede"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modulniveau"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "konfigurationsværdien »epub_contributor« bør ikke være tom for EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "ugyldig css_file: %r, ignoreret"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Beskedkatalogerne er i %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "læser skabeloner ..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "skriver beskedkataloger ..."
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML-siden er i %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (i "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML-siderne er i %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d. %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Generelt indeks"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indeks"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "næste"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "forrige"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "kan ikke kopiere statisk fil %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "udgyldig js_file: %r, ignoreret"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon-filen %r findes ikke"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentation"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indeks"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Udgave"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1156,15 +1198,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1223,8 +1265,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1256,7 +1298,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1264,249 +1308,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Indtast venligst noget tekst."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Indtast venligst enten »y« eller »n«."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Indtast venligt et filsuffiks, f.eks. ».rst« eller ».txt«"
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Filen %s findes allerede, udelader."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "opret ikke makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "skabelonmappe for skabelonfiler"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1828,47 +1877,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Afsnitsforfatter: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Modulforfatter: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Kodeforfatter: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Forfatter: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1883,82 +1932,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametre"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Returnerer"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Returtype"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "medlem"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabel"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funktion"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "optæl"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "optælling"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "type"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Ny i version %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "Ændret i version %s"
msgid "Deprecated since version %s"
msgstr "Forældet siden version %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:82
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Template-parametre"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Kaster"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasse"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "koncept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (indbygget funktion)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (metode i %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasse)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (global variabel eller konstant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (attribut i %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Parametre"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Kaster"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Returnerer"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Returtype"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funktion"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metode"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasse"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variable"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktiv)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Rejser"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rolle)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktiv"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rolle"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametre"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "medlem"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabel"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "optæl"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "optælling"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "type"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Template-parametre"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "koncept"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (i modulet %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (i modulet %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (indbygget variabel)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (indbygget klasse)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasse i %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (klassemetode i %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (statisk metode i %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python-modulindeks"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduler"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Forældet"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "undtagelse"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klassemetode"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statisk metode"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (forældet)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktiv)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rolle)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktiv"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rolle"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variable"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Rejser"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "miljøvariabel; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "begreb i ordliste"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammatisk element"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "referenceetiket"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "miljøvariabel"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programtilvalg"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokument"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modulindeks"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Søgeside"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2326,35 +2380,35 @@ msgstr ""
msgid "extensions changed"
msgstr "udvidelser ændret"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "kildemappe er ændret"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2378,39 +2432,39 @@ msgstr ""
msgid "Symbols"
msgstr "Symboler"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2420,7 +2474,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "overskriv eksisterende filer"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s er ikke en mappe"
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2598,24 +2652,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graf: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graf]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(i %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[kilde]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<oprindeligt punkt>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(Det <<oprindelige punkt>> befinder sig i %s, linje %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "oprindeligt punkt"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dok]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modulkode"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Kildekode for %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Oversigt: modulkode"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Alle moduler, der er kode tilgængelig for</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,25 +3055,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Nøgleordsargumenter"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Eksempler"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Andre parametre"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Referencer"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Vær opmærksom"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Forsigtig"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Fare"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Fejl"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Fif"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Vigtigt"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Bemærk"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Se også"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Advarsel"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Søg"
@@ -3345,34 +3404,22 @@ msgstr "Næste emne"
msgid "next chapter"
msgstr "næste kapitel"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Aktivér venligst JavaScript for at aktivere\n søgefunktionalitet."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Bemærk: Hvis du søger efter flere ord, vises kun resultater der indeholder alle ordene."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "søg"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Søgeresultater"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Din søgning matchede ikke nogen dokumenter. Sikr dig at alle ord er stavet korrekt og at du har valgt nok kategorier."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Hurtig søgning"
@@ -3409,20 +3456,30 @@ msgstr "Ændringer i C-API"
msgid "Other changes"
msgstr "Andre ændringer"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Søgeresultater"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Din søgning matchede ikke nogen dokumenter. Sikr dig at alle ord er stavet korrekt og at du har valgt nok kategorier."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Søger"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Forbereder søgning..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", i"
@@ -3443,30 +3500,30 @@ msgstr "Udfold sidebjælke"
msgid "Contents"
msgstr "Indhold"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3617,27 +3674,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3654,13 +3711,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Fodnoter"
@@ -3679,20 +3736,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[billede: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[billede]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.mo b/sphinx/locale/de/LC_MESSAGES/sphinx.mo
index e06ab48..5b9cb88 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/de/LC_MESSAGES/sphinx.po b/sphinx/locale/de/LC_MESSAGES/sphinx.po
index 5909ab3..2782028 100644
--- a/sphinx/locale/de/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/de/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Jean-François B. <jfbu@free.fr>, 2018\n"
"Language-Team: German (http://app.transifex.com/sphinx-doc/sphinx-1/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -41,104 +41,104 @@ msgstr "Quellverzeichnis und Zielverzeichnis können nicht identisch sein"
msgid "Running Sphinx v%s"
msgstr "Sphinx v%s in Verwendung"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Dieses Projekt benötigt Version %s oder später und kann daher nicht gebaut werden."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "Lade Übersetzungen [%s]…"
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "erledigt"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "nicht verfügbar für vordefinierte Nachrichten"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "Fehlgeschlagen: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Kein builder ausgewählt, verwende 'html' per default"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "abgeschlossen"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "mit Problemen beendet"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr "Die Erweiterung %s gibt nicht an ob paralleles Datenlesen fehlerfrei möglich ist, es wird daher nicht davon ausgegangen - bitte kontaktiere den Erweiterungsautor zur Überprüfung und Angabe"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr "Die Erweiterung %s gibt nicht an ob paralleles Datenschreiben fehlerfrei möglich ist, es wird daher nicht davon ausgegangen - bitte kontaktiere den Erweiterungsautor zur Überprüfung und Angabe"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "Konfigurationsverzeichnis enthält keine conf.py Datei (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "Ungültige Nummer %r for Konfiguration %r, wird ignoriert"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Keine solche Konfigurationseinstellung: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Konfigurationswert %r bereits gesetzt"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,290 +235,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Abschnitt %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Abb. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tab. %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Quellcode %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r nicht gefunden, daher ignoriert."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Event %r bereits verfügbar"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Unbekannter Event name: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments Lexer Name %r ist unbekannt"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Ursprüngliche Ausnahme:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -530,8 +572,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -580,7 +622,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -589,50 +631,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -641,36 +683,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -678,470 +720,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Builtins"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modulebene"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (in "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%m.%Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Stichwortverzeichnis"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "Index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "weiter"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "zurück"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s Dokumentation"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Stichwortverzeichnis"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Release"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1156,15 +1198,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1223,8 +1265,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1256,7 +1298,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1264,249 +1308,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1828,47 +1877,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor des Abschnitts: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor des Moduls: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor des Quellcode: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1883,82 +1932,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s-%s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parameter"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Rückgabe"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Rückgabetyp"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "Member"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "Variable"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "Funktion"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "Makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "Aufzählung"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "Enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "Typ"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Neu in Version %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "Geändert in Version %s"
msgid "Deprecated since version %s"
msgstr "Veraltet ab Version %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:82
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Template Parameter"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Wirft"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "Klasse"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (Standard-Funktion)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (Methode von %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (Klasse)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globale Variable oder Konstante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (Attribut von %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Parameter"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Wirft"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Rückgabe"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Rückgabetyp"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (Modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "Funktion"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "Methode"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "Klasse"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "Wert"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "Attribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "Modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variablen"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (Direktive)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Verursacht"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (Rolle)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "Direktive"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "Rolle"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parameter"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "Member"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "Variable"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "Makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "Aufzählung"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "Enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "Typ"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Template Parameter"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (im Modul %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (in Modul %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (Standard-Variable)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (Builtin-Klasse)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (Klasse in %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (Klassenmethode von %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (statische Methode von %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python-Modulindex"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "Module"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Veraltet"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "Exception"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "Klassenmethode"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statische Methode"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (veraltet)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (Direktive)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (Rolle)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "Direktive"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "Rolle"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variablen"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Verursacht"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "Umgebungsvariable; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "Glossareintrag"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "Grammatik-Token"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "Referenz-Label"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "Umgebungsvariable"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "Programmoption"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modulindex"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Suche"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2326,35 +2380,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2378,39 +2432,39 @@ msgstr ""
msgid "Symbols"
msgstr "Sonderzeichen"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2420,7 +2474,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2598,24 +2652,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[Diagramm: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[Diagramm]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(in %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[Quellcode]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Zu tun"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<ursprüngliche Eintrag>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(Der <<ursprüngliche Eintrag>> steht in %s, Zeile %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "ursprüngliche Eintrag"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[Doku]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modul-Quellcode"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Quellcode für %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Ãœberblick: Modul-Quellcode"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Alle Module, für die Quellcode verfügbar ist</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,25 +3055,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Achtung"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Vorsicht"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Gefahr"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Fehler"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Hinweis"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Wichtig"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Bemerkung"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Siehe auch"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tipp"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Warnung"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr "Inhaltsverzeichnis"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Suche"
@@ -3345,34 +3404,22 @@ msgstr "Nächstes Thema"
msgid "next chapter"
msgstr "nächstes Kapitel"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Bitte aktivieren Sie JavaScript, wenn Sie die Suchfunktion nutzen wollen."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "suchen"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Suchergebnisse"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Ihre Suche ergab keine Treffer. Bitte stellen Sie sicher, dass alle Wörter richtig geschrieben sind und genügend Kategorien ausgewählt sind."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Schnellsuche"
@@ -3409,20 +3456,30 @@ msgstr "C API-Änderungen"
msgid "Other changes"
msgstr "Andere Änderungen"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Suchergebnisse"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Ihre Suche ergab keine Treffer. Bitte stellen Sie sicher, dass alle Wörter richtig geschrieben sind und genügend Kategorien ausgewählt sind."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Suchen"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Suche wird vorbereitet..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", in "
@@ -3443,30 +3500,30 @@ msgstr "Seitenleiste ausklappen"
msgid "Contents"
msgstr "Inhalt"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3617,27 +3674,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3654,13 +3711,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Fußnoten"
@@ -3679,20 +3736,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[Bild: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[Bild]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo b/sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo
index c6e42fd..14c3e25 100644
--- a/sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/de_DE/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/de_DE/LC_MESSAGES/sphinx.po b/sphinx/locale/de_DE/LC_MESSAGES/sphinx.po
index a9c7b14..b105edb 100644
--- a/sphinx/locale/de_DE/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/de_DE/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Germany) (http://app.transifex.com/sphinx-doc/sphinx-1/language/de_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/el/LC_MESSAGES/sphinx.mo b/sphinx/locale/el/LC_MESSAGES/sphinx.mo
index 97120ed..465cda1 100644
--- a/sphinx/locale/el/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/el/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/el/LC_MESSAGES/sphinx.po b/sphinx/locale/el/LC_MESSAGES/sphinx.po
index 584579a..bed9e88 100644
--- a/sphinx/locale/el/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/el/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -10,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Komiya Takeshi <i.tkomiya@gmail.com>, 2021\n"
"Language-Team: Greek (http://app.transifex.com/sphinx-doc/sphinx-1/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -40,104 +40,104 @@ msgstr "Ο κατάλογος πηγής και ο κατάλογος Ï€ÏοοÏ
msgid "Running Sphinx v%s"
msgstr "Εκτέλεση Sphinx έκδοση %s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Αυτό το έÏγο απαιτεί Sphinx έκδοσης τουλάχιστον %s και επομένως δεν είναι δυνατή η μεταγλωτισση με αυτή την έκδοση."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "δημιουÏγία καταλόγου εξόδου"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "κατά τον καθοÏισμό της επέκτασης %s"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "η 'παÏαμετÏοποίηση' σÏμφωνα με τον Ï„Ïέχοντα οÏισμό στο conf.py δεν αποτελεί καλέσιμο. ΠαÏακαλείσθε να Ï„Ïοποποιήσετε τον οÏισμό ώστε να το κάνετε μία καλέσιμη συνάÏτηση. Αυτό απαιτείται Ï€Ïοκειμένου το conf.py να συμπεÏιφέÏεται ως μία επέκταση Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "φόÏτωση μεταφÏάσεων [%s]..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "ολοκλήÏωση"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "δεν είναι διαθέσιμο για εσωτεÏικά μηνÏματα"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "φόÏτωση πακτωμένου πεÏιβάλλοντος"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "αποτυχία: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Δεν επιλέχθηκε μεταγλωττιστής, θα χÏησιμοποιηθεί ο Ï€Ïοεπιλεγμένος: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "επιτυχία"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "ολοκλήÏωση με Ï€Ïοβλήματα"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "μεταγλώττιση %s, %s Ï€Ïοειδοποίηση"
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "μεταγλώττιση %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "η κλάση κόμβου %r έχει ήδη καταχωÏηθεί, οι επισκέπτες της θα υπεÏσκελιστοÏν"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "η οδηγία %r έει ήδη καταχωÏηθεί, θα υπεÏσκελιστεί"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "ο Ïόλος %r έχει ήδη καταχωÏηθεί, θα υπεÏσκελιστεί"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -145,12 +145,12 @@ msgid ""
"explicit"
msgstr "η επέκταση %s δεν καθοÏίζει αν είναι ασφαλής η παÏάλληλη ανάγνωση, υποθέτοντας ότι δεν είναι - παÏακαλείσθε να ζητήσετε από το δημιουÏγό της επέκτασης να το ελέγχει και να το κάνει σαφές"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -158,70 +158,75 @@ msgid ""
"explicit"
msgstr "η επέκταση %s δεν καθοÏίζει αν είναι ασφαλής η παÏάλληλη ανάγνωση, υποθέτοντας ότι δεν είναι - παÏακαλείσθε να ζητήσετε το δημιουÏγό της επέκτασης να το ελέγξει και να το κάνει σαφές"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "εκτέλεση σειÏιακής %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "ο κατάλογος παÏαμετÏοποίησης δεν πεÏιλαμβάνει κανένα αÏχείο conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "δεν είναι δυνατή η υπεÏσκέλιση της ÏÏθμισης παÏαμετÏοποίησης καταλόγου %r, θα αγνοηθεί (χÏησιμοποιήστε το %r για να καθοÏίσετε τα επιμέÏους στοιχεία)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "ανέγκυÏος αÏιθμός %r για τιμή παÏαμετÏοποίησης %r, θα αγνοηθεί"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "δεν είναι δυνατή η υπεÏσκέλιση της ÏÏθμισης παÏαμετÏοποίησης %r με Ï„Ïπο ο οποίος δεν υποστηÏίζεται, θα αγνοηθεί"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "άγνωστη τιμή παÏαμετÏοποίσης %r στην υπεÏσκέλιση, θα αγνοηθεί"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Δεν υπάÏχει τέτοια τιμή παÏαμετÏοποίησης: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Η τιμή παÏαμετÏοποίησης %r υφίσταται ήδη."
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "ΥπάÏχει ένα συντακτικό λάθος στο αÏχείο παÏαμετÏοποίησής σας: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Το αÏχείο παÏαμετÏοποίησης (ή ένα από τα στοιχεία που εισάγει) κάλεσε την sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -229,291 +234,328 @@ msgid ""
"%s"
msgstr "ΥπάÏχει ένα Ï€ÏογÏαμματιστικό λάθος στο αÏχείο παÏαμετÏοποίησής σας:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "Η τιμή παÏαμτετÏοποίησης 'source_suffix' αναμένει στοιχειοσειÏά, στοιχειοσειÏά καταλόγου, ή λεξικό. Αλλά παÏαδόθηκε %r."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Τομέας %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Εικ. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Πίνακας %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Λίστα %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "Η τιμή παÏαμετÏοποίησης '{name}' Ï€Ïέπει να λαμβάνει μία από τις {candidates} αλλά εκχωÏήθηκε η '{current}'."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "Η τιμή παÏαμετÏοποίησης '{name]' έχει Ï„Ïπο '[current__name__}'; αναμενόμενη {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "Η τιμή παÏαμετÏοποίησης '{name}' έχει Ï„Ïπο '{current__name__}', αÏχικοποίηση σε '{default__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "το primary_domain %r δεν βÏέθηκε, θα αγνοηθεί."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Το συμβάν %r υπάÏχει ήδη"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Άγνωστο όνομα συμβάντος: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "Η επέκταση %s απαιτείται από τις Ïυθμίσεις needs_extensions, αλλά δεν είναι φοÏτωμένη."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Το έÏγο χÏειάζεται την επέκταση %s τουλάχιστον στην έκδοση %s και επομένως δεν είναι δυνατή η μεταγλώττιση με τη φοÏτωμένη έκδοση (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Το όνομα %r δεν είναι γνωστό"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Η κλάση μεταγλώττισης %s δεν έχει χαÏακτηÏιστικό \"name\" "
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Ο μεταγλωττιστής %r υφίσταται ήδη (στο δομοστοιχείο %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Το όνομα μεταγλωττιστή %s δεν είναι καταχωÏημένο ή διαθέσιμο δια μέσου του σημείου εισαγωγής"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Το όνομα μεταγλωττιστή %sδεν είναι καταχοÏημένο"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "ο τομέας %s είναι ήδη καταχωÏημένος"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "ο τομέας %s δεν έχει καταχωÏηθεί ακόμη"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "Η οδηγία %r είναι ήδη καταχωÏημένη στον τομέα %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "Ο Ïόλος %r είναι ήδη καταχωÏημένος στον τομέα %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "Ο δείκτης %r είναι ήδη καταχωÏημένος στον τομέα %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "Το object_type %r είναι ήδη καταχωÏημένο"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "Το crossref_type %r είναι ήδη καταχωÏημένο"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "το source_suffix %r είναι ήδη καταχωÏημένο"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "το source_parser για το %r είναι ήδη καταχωÏημένο"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Ο αναλυτής πηγής για το %s δεν είναι καταχωÏημένος"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Ο μεταφÏαστής για το %r υφίσταται ήδη"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "το kwargs για το add_node() Ï€Ïέπει να είναι μία (visit, depart) συνάÏτηση πλειάδας: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "το enumerable_node %r είναι ήδη καταχωÏημένο"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "η επέκταση %r συγχωνεÏθηκε ήδη με το Sphinx από την έκδοση %s; η επέκταση αυτή θα αγνοηθεί."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "ΑÏχική εξαίÏεση:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Δεν ήταν δυνατή η εισαγωγή της επέκτασης %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "η επέκταση %r δεν έχει συνάÏτηση setup(); αποτελεί δομοστοιχείο επέκτασης του Sphinx;"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Η επέκταση %s η οποία χÏησιμοποιείται από αυτό το έÏγο απαιτεί Sphinx έκδοσης τουλάχιστον %s: επομένως δεν είναι δυνατή η μεταγλώττιση με αυτή την έκδοση."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "η επέκταση %r επιστÏέφει ένα μη υποστηÏιζόμενο αντικείμενο από τη συνάÏτησή της setup(): θα έπÏεπε να επιστÏέφει None ή έναν κατάλογο μεταδεδομένων"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "το θέμα %r δεν έχει ÏÏθμιση \"theme\""
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "το θέμα %r δεν έχει ÏÏθμιση \"inherit\""
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "δεν βÏέθηκε θέμα με το όνομα %r, το οποίο κληÏονομήθηκε από το %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "η ÏÏθμιση %s.%s δεν εμφανίζεται από τις παÏαμετÏοποιήσεις θέματος που αναζητήθηκαν"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "δόθηκε μη υποστηÏιζόμενη επιλογή θέματος %r"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "το αÏχείο %r στο μονοπάτι θέματος δεν αποτελεί ένα έγκυÏο zipfile ή δεν πεÏιλαμβάνει ένα θέμα"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "δεν βÏέθηκε θέμα με όνομα %r (απουσιάζει το theme.conf;)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -529,8 +571,8 @@ msgstr "δεν βÏέθηκε μία κατάλληλη εικόνα για το
msgid "building [mo]: "
msgstr "μεταγλώττιση [mo]:"
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "εγγÏαφή εξόδου..."
@@ -579,7 +621,7 @@ msgstr "τα αÏχεία πηγής %d που δόθηκαν στη γÏαμμÎ
msgid "targets for %d source files that are out of date"
msgstr "στόχοι για τα αÏχεία πηγής %d τα οποία είναι ξεπεÏασμένα"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "μεταγλώττιση [%s]:"
@@ -588,50 +630,50 @@ msgstr "μεταγλώττιση [%s]:"
msgid "looking for now-outdated files... "
msgstr "αναζήτηση για νεοξεπεÏασμένα αÏχεία..."
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "βÏέθηκε %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "δεν βÏέθηκε κανένα"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "ΠεÏιβάλλον μετατÏοπής αντικειμένων Python σε Ïοή bytes"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "έλεγχος συνοχής"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "κανένας στόχος δεν είναι ξεπεÏασμένος."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "αναβάθμιση πεÏιβάλλοντος:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s Ï€Ïοστέθηκε, %s άλλαξε, %s απομακÏÏνθηκε"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "ανάγνωση πηγών..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "docname Ï€Ïος εγγÏαφή: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "Ï€Ïοετοιμασία κειμένων"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -640,36 +682,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "βÏέθηκε διπλότυπη εγγÏαφή ToC: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "αντιγÏαφή εικόνων..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "δεν είναι δυνατή η ανάγωνση αÏχείου εικόνας %r: αντί Î±Ï…Ï„Î¿Ï Î¸Î± αντιγÏαφεί"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "δεν είναι δυνατή η αντιγÏαφή αÏχείου εικόνας %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "δεν είναι δυνατή η εγγÏαφή αÏχείου %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Το pillow δεν βÏέθηκε - αντιγÏαφή αÏχείων εικόνας"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -677,470 +719,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "άγνωστο mimetype για %s, θα ανγοηθεί"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "εγγÏαφή %s αÏχείου..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Το αÏχείο επισκόπησης είναι σε %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "καμία αλλαγή στην έκδοση %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "εγγÏαφή αÏχείου σÏνοψης"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Ενσωματωμένες λειτουÏγίες"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Επίπεδο μονάδας λειτουÏγίας"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "αντιγÏαφή αÏχείων πηγής..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "δεν ήταν δυνατή η ανάγνωση %r για τη δημιουÏγία changelog"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "Ο Ï€ÏοσωÏινός μεταγλωττιστής δεν δημιουÏγεί αÏχεία."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "Το αÏχείο ePub βÏίσκεται σε %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_language\" (ή \"language\") δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_uid\" Ï€Ïέπει να είναι XML NAME για EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_title\" (ή \"html_title\") δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_author\" δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_contributor\" δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_description\" δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_publisher\" δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_copyright\" (ή \"copyright\") δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"epub_identifier\" δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "η τιμή παÏαμετÏοποίησης \"version\" δεν Ï€Ïέπει να είναι κενή για EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "ανέγκυÏο css_file: %r, θα αγνοηθεί"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Οι κατάλογοι των μηνυμάτων είναι στο %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "στόχοι για %d Ï€Ïότυπα αÏχεία"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "ανάγνωση Ï€ÏοτÏπων..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "εγγÏαφή καταλόγων μηνÏματος..."
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Αναζητήστε οποιαδήποτε λάθη στο παÏαπάνω αποτέλεσμα ή σε %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "λανθασμένος σÏνδεσμος: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Οι σελίδες manual βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "δεν βÏέθηκε τιμή παÏαμετÏοποίησης \"man_pages\"; δεν θα καταγÏαφοÏν manual pages"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "εγγÏαφή"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "η τιμή παÏαμετÏοποίησης \"man_pages\" κάνει αναφοÏά το άγνωστο κείμενο %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Η σελίδα HTML είναι στο %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "συναÏμολόγηση Î±Ï€Î»Î¿Ï ÎºÎµÎ¹Î¼Î­Î½Î¿Ï…"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "εγγÏαφή επιπÏόσθετων αÏχείων"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Τα αÏχεία Texinfo βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nΕκτελέστε 'make' σε αυτό τον κατάλογο για να εκτελέσετε αυτά μέσω του makeinfo\n(χÏησιμοποιήστε το 'make info' εδώ για να το κάνετε αυτόματα)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "δεν βÏέθηκε τιμή \"texinfo_documents\": δεν θα γίνει εγγÏαφή κανενός κειμένου"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "η τιμή παÏαμετÏοποίησης \"texninfo_documents\" αναφέÏεται σε άγνωστο κείμενο %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "επεξεÏγασία %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "επίλυση αναφοÏών..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (σε "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "αντιγÏαφή αÏχείων υποστήÏιξης Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "σφάλμα κατά την εγγÏαφή του αÏχείου Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Τα αÏχεία κειένου βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "σφάλμα καταγÏαφής αÏχείου %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Τα αÏχεία XML βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Τα αÏχεία XML βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "το αÏχείο πληÏοφοÏιών μεταγλώττισης είναι κατεστÏαμμένο: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Οι σελίδες HTML βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Αδυναμία ανάγνωσης αÏχείου πληÏοφοÏιών μεταγλώττισης: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %B %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "ΚεντÏικό ΕυÏετήÏιοο"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "ευÏετήÏιο"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "επόμενο"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "Ï€ÏοηγοÏμενο"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "αντιγÏαφή αÏχείων μεταφόÏτωσης..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "δεν είναι δυνατή η αντιγÏαφή του μεταφοÏτωμένου αÏχείου %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "δεν είναι δυνατή η αντιγÏαφή ÏƒÏ„Î±Ï„Î¹ÎºÎ¿Ï Î±Ïχείου %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "δεν είναι δυνατή η αντιγÏαφή του επιπλέον αÏχείου %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Αδυναμία εγγÏαφής του αÏχείου πληÏοφοÏιών μεταγλώττισης: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "ο κατάλογος εÏÏεσης δεν ήταν δυνατό να φοÏτωθεί, αλλά δε θα μεταγλωττιστοÏν όλα τα έγγÏαφα: ο κατάλογος δε θα είναι πλήÏης."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "η σελιδα %s ταιÏιάζει δÏο σχέδια στo html_sidebars: %r and %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "ένα σφάλμα Unicode παÏουσιάστηκε κατά τη δημιουÏγία της σελίδας %s. ΠαÏακαλείστε να επιβεβαιώσετε ότι όλες οι τιμές παÏαμετÏοποίησης οι οποίες πεÏιλαμβάνουν μη-ASCII πεÏιεχόμενο είναι στοιχειοσειÏές Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Ένα σφάλμα συνέβη κατά τη σÏνθεση της σελίδας %s.\n\nΑιτία %r "
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "ανέγκυÏο js_file: %r, θα αγνοηθεί"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Πολλά math_renderers έχουν καταγÏαφεί. Αλλά δεν έχει επιλεγεί κανένα math_renderer."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "Δόθηκε άγνωστο math_renderer %r."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "Η εγγÏαφή html_extra_path %r δεν υπάÏχει"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "η εγγÏαφή html_static_path %r δεν υπάÏχει"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "το αÏχείο logo %r δεν υπάÏχει"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "το αÏχείο favicon %r δεν υπάÏχει"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "ΤεκμηÏίωση του %s - %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Τα αÏχεία LaTeX βÏίσκονται σε %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nΕκτελέστε 'make' σε αυτό τον κατάλογο για να εκτελέσετε αυτά μέσω του (pdf)latex\n(χÏησιμοποιήστε το 'make latexpdf' εδώ για να το κάνετε αυτόματα)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "δεν βÏέθηκε τιμή παÏαμετÏοποίησης \"latex_documents\": δεν θα Ï€Ïαγματοποιηθεί εγγÏαφή για κανένα κείμενο"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "η τιμή παÏαμετÏοποίησης \"latex_documents\" κάνει αναφοÏά το άγνωστο κείμενο %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "ΕυÏετήÏιο"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Δημοσίευση"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "καμία γνωστή επιλογή Babel για τη γλώσσα %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "αντιγÏαφή αÏχείων υποστήÏιξης TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "αντιγÏαφή αÏχείων υποστήÏιξης TeX..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "αντιγÏαφή επιπÏόσθετων αÏχείων"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1155,15 +1197,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1222,8 +1264,8 @@ msgstr "Μία αναφοÏά σφάλματος μποÏεί να υποβληÎ
msgid "job number should be a positive number"
msgstr "ο αÏιθμός εÏγασίας θα Ï€Ïέπει να είναι θετικός αÏιθμός"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1255,257 +1297,264 @@ msgid "path to output directory"
msgstr "μονοπάτι στον κατάλογο εξόδου"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "μία λίστα με συγκεκÏιμένα αÏχεία να επαναμεταγλωττιστοÏν. Θα αγνοηθεί αν δοθεί το -a"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "γενικές επιλογές"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "μεταγλωττιστής για χÏήση (Ï€Ïοεπιλογή: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "εγγÏαφή όλων των αÏχείων (Ï€Ïοεπιλογή: εγγÏαφή μόνο νέων και αλλαγμένων αÏχείων)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "μην χÏησιμοποιείτε ένα αποθηκευμένο πεÏιβάλλον, πάντα να διαβάζετε όλα τα αÏχεία"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "μονοπάτι για το αποθηκευμένο πεÏιβάλλον και τα αÏχεία doctree (Ï€Ïοεπιλογή: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "παÏάλληλος μεταγλωττισμός με ΠδιεÏγασίες όπου είναι δυνατό (ιδιαίτεÏη τιμή \"auto\" θα οÏίσει Πστο cpu-count)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "το μονοπάτι όπου βÏίσκεται το αÏχείο παÏαμετÏοποίησης (conf.py) (Ï€Ïοεπιλογή: το ίδιο όπως το SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "να μη χÏησιμοποιηθεί κανένα αÏχείο παÏαμετÏοποίησης, μόνο επιλογές -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "παÏάκαμψη ÏÏθμισης στο αÏχείο παÏαμετÏοποίησης"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "μεταφοÏά τιμής στα Ï€Ïότυπα HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "οÏίστε ετικέτα: συμπεÏιλάβατε \"only\" τμήματα με TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "Ο Ï„Ïόπος nit-picky, Ï€Ïοειδοποιεί για όλες τις αναφοÏές που απουσιάζουν"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "επιλογές εξόδου κονσόλας"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "αυξήστε τον βεÏμπαλισμό (μποÏεί να επαναληφθεί)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "καμία έξοδος στο stdout, μόνο Ï€Ïοειδοποιήσεις στο stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "κανένα αποτέλεσμα οÏτε Ï€Ïοειδοποιήσεις"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "να γίνεται εκπομπή χÏωματιστής εξόδου (Ï€Ïοεπιλογή: auto-detect)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "να μην παÏουσιάζεται έγχÏωμο αποτέλεσμα (Ï€Ïοεπιλογή: αυτόματη αναγνώÏιση)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "Ï€Ïοειδοποιήσεις εγγÏαφής (και σφάλματα) στο δοθέν αÏχείο"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "μετατÏοπή Ï€Ïοειδοποιήσεων σε σφάλματα"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "απεικόνιση πλήÏους ιστοÏÎ¹ÎºÎ¿Ï ÏƒÎµ πεÏίπτωση εξαίÏεσης"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "εκτέλεση Pdb σε πεÏίπτωση εξαίÏεσης"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "δεν γίνεται συνδιασμός της επιλογής -a και των ονομάτων αÏχείων"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "δεν είναι δυνατό το άνοιγμα του αÏχείου Ï€Ïοειδοποίησης %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "Το ÏŒÏισμα -D Ï€Ïέπει να είναι της μοÏφής όνομα=τιμέ"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "Το ÏŒÏισμα -Α Ï€Ïέπει να είναι της μοÏφής όνομα=τιμή"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "αυτόματη εισαγωγή docstrings από τα δομοστοιχεία"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "αυτόματα κομμάτια Î´Î¿ÎºÎ¹Î¼Î±ÏƒÏ„Î¹ÎºÎ¿Ï ÎºÏŽÎ´Î¹ÎºÎ± σε τμήματα doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "σÏνδεσμος Î¼ÎµÏ„Î±Î¾Ï Ï„ÎµÎºÎ¼Î·Ïίωσης Sphinx διαφόÏων έÏγων"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "γÏάψτε εγγÏαφές \"todo\" οι οποίες μποÏοÏν αν εμφανίζονται ή να αποκÏÏπτονται κατά τη μεταγλώττιση"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "αναζήτηση για κάλυψη βιβλιογÏαφίας"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "να συμπεÏιληφθεί το math, απεικονισμένο ως εικόνες PNG η SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "να συμπεÏιληφθεί το math, απεικονισμένο στο φυλλομετÏηÏή απο το MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "υποθετική εισαγωγή πεÏιεχομένου βασισμένη στις τιμές παÏαμετÏοποίησης"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "να συμπεÏιληφθοÏν σÏνδεσμοι στον πηγαίο κώδικα των τεκμηÏιωμένων αντικειμένων Python"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "δημιουÏγία αÏχείου .nojekyll για έκδοση του εγγÏάφου στις σελίδες GitHub "
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "ΠαÏακαλείστε να εισάγετε ένα έγκυÏο όνομα μονοπατιοÏ."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "ΠαÏακαλείστε να εισάγετε κάποιο κείμενο."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "ΠαÏακαλείστε να εισάγετε ένα από τα %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "ΠαÏακαλείστε να εισάγετε είτε 'y' είτε 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "ΠαÏακαλείστε να εισάγετε μία επέκταση αÏχείου, Ï€.χ. '.rst' ή '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Καλώς ήÏθατε στο εÏγαλείο γÏήγοÏης εκκίνησης Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Ριζικό μονοπάτι για την τεκμηÏίωση"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Σφάλμα: ένα υπάÏχον conf.py έχει βÏεθεί στοn επιλεγμένο Ïιζικό κατάλογο."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "το sphinx-quickstart δεν θα αντικαταστήσει υπάÏχοντα έÏγα Sphinx."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "ΠαÏακαλείστε να εισάγετε ένα νέο Ïιζικό μονοπάτι (ή απλά πιέστε το Enter για έξοδο)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "ΞεχωÏιστοί κατάλογοι για πηγή και μεταγλώττιση (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "ΠÏόθεμα ονόματος για Ï€Ïότυπα και στατικοÏÏ‚ καταλόγους"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Όνομα έÏγου"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Όνομα(τα) συγγÏαφέα"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1514,15 +1563,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Έκδοση έÏγου"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "ΚυκλοφοÏία έÏγου"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1532,21 +1581,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Γλώσσα έÏγου"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Επέκταση αÏχείου πηγής"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1554,91 +1603,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Όνομα του κυÏίους σας εγγÏάφου (χωÏίς επέκταση)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Σφάλμα: το κÏÏιο αÏχείο %s έχει ήδη βÏεθεί στο επιλεγμένο Ïιζικό κατάλογο."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "το sphinx-quickstart δεν θα αντικαταστήσει υπάÏχοντα αÏχεία."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "ΠαÏακαλείσθε να εισάγετε ένα νέο όνομα αÏχείου, ή να μεταονομάσετε το υπάÏχον αÏχείο και να πιέσετε το Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Υποδείξτε ποιά απο τις ακόλουθες επεκτάσεις Sphinx Ï€Ïέπει να ενεÏγοποιηθοÏν:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Σημείωση: τα imgmath και mathjax δεν είναι δυνατό να ενεÏγοποιηθοÏν ταυτόχÏονα. Το imgmath έχει αποεπιλεγθεί. "
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "ΔημιουÏγία Makefile; (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "ΔημιουÏγία αÏχείου εντολών Windows; (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "ΔημιουÏγία αÏχείου %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Το αÏχείο %s υπάÏχει ήδη, παÏαλείπεται."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "ΟλοκλήÏωση: μία αÏχική δομή καταλόγου δημιουÏγήθηκε."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1648,135 +1697,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nΔημιουÏγία απαιτοÏμενων αÏχείων για ένα έÏγο Sphinx.\n\nΤο sphinx-quickstart είναι ένα διαδÏαστικό εÏγαλείο το οποίο κάνει κάποιες εÏωτήσεις για το δικό σας \nέÏγο και μετά δημιουÏγεί έναν πλήÏη κατάλογο τεκμηÏίωσης και δείγμα \nMakefile για να χÏησιμοποιηθεί με το sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "ήσυχος Ï„Ïόπος"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Επιλογές δομής"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "αν οÏίζεται, θα ξεχωÏίσουν οι κατάλογοι πηγής και μεταγλώττισης"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "αντικατάσταση για τελεία σε _templates κλπ."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Βασικές επιλογές έÏγου"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "όνομα έÏγου"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "ονόματα συγγÏαφέων"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "έκδοση του έÏγου"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "δημοσίευση του έÏγου"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "γλώσσα εγγÏάφου"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "επέκταση αÏχείου πηγής"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "κÏÏιο όνομα εγγÏάφου"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "χÏηση epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Επιλογές επέκτασης"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "ενεÏγοποίηση της επέκτασης %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "ενεÏγοποίηση αυθαίÏετων επεκτάσεων"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "ΔημιουÏγία Makefile και Batchfile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "δημιουÏγία makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "να μη δημιουÏγηθεί makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "δημιουÏγία batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "να μη δημιουÏγηθεί batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "χÏησιμοποιήστε το make-mode για το Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "μην χÏησιμοποιείτε make-mode για Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "ΠÏοτυποποίηση έÏγου"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "Ï€Ïότυπος κατάλογος για Ï€Ïότυπα αÏχεία"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "οÏίστε μία τιμή Ï€ÏοτÏπου"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "καθοÏίστηκε το \"quiet\", αλλά δεν καθοÏίστηκε είτε το \"project\" είτε το \"author\"."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Σφάλμα: το καθοÏισθέν μονοπάτι δεν είναι κατάλογος, ή τα αÏχεία sphinx υπάÏχουν ήδη."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "Το sphinx-quickstart δημιουÏγεί μόνο εντός ενός ÎºÎµÎ½Î¿Ï ÎºÎ±Ï„Î±Î»ÏŒÎ³Î¿Ï…. ΠαÏακαλείσθε να καθοÏίσετε ένα νέο Ïιζικό μονοπάτι."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "ΑνέγκυÏη μεταβλητή Ï€ÏοτÏπου: %s"
@@ -1827,47 +1876,47 @@ msgstr "Δεν είναι δυνατή η χÏήση \"leneno-match\" με ένÎ
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "ΠÏοσδιοÏισμός γÏαμμής %r: δεν ελήφθησαν γÏαμμές από το συμπεÏιληφθέν αÏχείο %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "Το toctree πεÏιλαμβάνει αναφοÏά στο αποκλεισμένο κείμενο %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "το toctree πεÏιλαμβάνει αναφοÏά στο μη υπαÏκτό έγγÏαφο %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Συντάκτης τμήματος: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Συντάκτης μονάδας: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Συντάκτης κώδικα: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Συντάκτης: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1882,82 +1931,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "ΠαÏάμετÏοι"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "ΕπιστÏέφει"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "ΕπιστÏεφόμενος Ï„Ïπος"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "μέλος"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "μεταβλητή"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "συνάÏτηση"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "μακÏοεντολή"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "ένωση"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "Ï„Ïπος"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Îέο στην έκδοση %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1969,346 +1946,423 @@ msgstr "Άλλαξε στην έκδοση %s"
msgid "Deprecated since version %s"
msgstr "ΑποσÏÏθηκε στην έκδοση %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "διπλότυπη ετικέτα %s, άλλη εμφάνιση στο %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Η παÏαπομπή [%s] δεν αναφέÏεται."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "ΠαÏάμετÏοι ΠÏοτÏπου"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "ΠÏοκαλεί"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "κλάση"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "έννοια"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (ενσωματωμένη συνάÏτηση)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (μέθοδος της %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (κλάση)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (καθολική μεταβλητή ή σταθεÏά)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (ιδιότητα της %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "ΠαÏάμετÏοι"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "ΠÏοκαλεί"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "ΕπιστÏέφει"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "ΕπιστÏεφόμενος Ï„Ïπος"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (μονάδα)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "συνάÏτηση"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "μέθοδος"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "κλάση"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "δεδομένα"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "ιδιότητα"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "μονάδα"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "διπλότυπη ετικέτα της εξίσωσης %s, άλλη εμφάνιση στο %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "ΑνέγκυÏο math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Μεταβλητές"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (οδηγία)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "ΠÏοκαλεί"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (Ïόλος)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "οδηγία"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "Ïόλος"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "ΠαÏάμετÏοι"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "μέλος"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "μεταβλητή"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "μακÏοεντολή"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "ένωση"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "Ï„Ïπος"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "ΠαÏάμετÏοι ΠÏοτÏπου"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "έννοια"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (στη μονάδα %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (στη μονάδα %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (ενσωματωμένη μεταβλητή)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (ενσωματωμένη κλάση)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (κλάση σε %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (μέθοδος κλάσης της %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (στατική μέθοδος της %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "ΕυÏετήÏιο Μονάδων της Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "μονάδες"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "ΑποσÏÏθηκε"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "εξαίÏεση"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "μέθοδος της κλάσης"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "στατική μέθοδος"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "πεÏισσότεÏοι από έναν στόχοι βÏέθηκα για την παÏαπομπή %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (αποσÏÏθηκε)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (οδηγία)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (Ïόλος)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "οδηγία"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "Ïόλος"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Μεταβλητές"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "ΠÏοκαλεί"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "μεταβλητή πεÏιβάλλοντος; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Λανθασμένη πεÏιγÏαφή επιλογής %r, θα Ï€Ïέπει να μοιάζει με \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" ή \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "γλωσσάÏι"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "γÏαμματική ένδειξη"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "ετικέτα αναφοÏάς"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "μεταβλητή πεÏιβάλλοντος"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "επιλογή Ï€ÏογÏάμματος"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "έγγÏαφο"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "ΕυÏετήÏιο μονάδων"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Σελίδα αναζήτησης"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "διπλότυπη ετικέτα %s, άλλη εμφάνιση στο %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "το numfig έχει απενεÏγοποιηθεί. Το :numref: θα ανγοηθεί."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "ο σÏνδεσμος δεν έχει λεζάντα: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "ανέγκυÏο numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "ανέγκυÏο numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2325,35 +2379,35 @@ msgstr "η παÏαμετÏοποίηση άλλαξε"
msgid "extensions changed"
msgstr "αλλαγμένες επεκτάσεις"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "η έκδοση του πεÏιβάλλοντος μεταλώττισης δεν είναι η Ï„Ïέχουσα"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "ο πηγαίος κατάλογος έχει αλλάξει"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Το πεÏιβάλλον δεν είναι συμβατό με τον επιλεγμένο μεταγλωττιστή, παÏακαλείστε να επιλέξετε ένα διαφοÏετικό κατάλογο toctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Αδυναμία σάÏωσης εγγÏάφων σε %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Ο τομέας %r δεν είναι καταχωÏημένος"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "το έγγÏαφο δεν συμπεÏιλαμβάνεται σε κανένα toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "Î’Ïέθηκε αυτοαναφεÏόμενο toctree. Θα αγνοηθεί."
@@ -2377,39 +2431,39 @@ msgstr "άγνωστος Ï„Ïπος εγγÏαφής ευÏετηÏίου %r"
msgid "Symbols"
msgstr "ΣÏμβολα"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "αναγνωÏίστηκαν κυκλικές αναφοÏές toctree, θα αγνοηθοÏν: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "το toctree πεÏιλαμβάνει αναφοÏά στο έγγÏαφο %r η οποία δεν έχει τίτλο: δεν θα δημιουÏγηθεί σÏνδεσμος"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "το αÏχείο εικόνας δεν είναι αναγνώσιμο: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "το αÏχείο εικόνας %s δεν είναι αναγνώσιμο: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "το μεταφοÏτωμένο αÏχείο δεν είναι αναγνώσιμο: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "στο %s έχουν ήδη ανατεθεί αÏιθμοί τομέα (εμφωλιασμένο αÏιθμημένο toctree;)"
@@ -2419,7 +2473,7 @@ msgstr "στο %s έχουν ήδη ανατεθεί αÏιθμοί τομέα (
msgid "Would create file %s."
msgstr "Θα δημιουÏγοÏσε το αÏχείο %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2431,149 +2485,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nΑναζητήστε αναδÏομικα σε <MODULE_PATH>για δομοστοιχεία Python και πακέτα και δημιουÏγήστε \nένα αÏχείο reST με οδηγίες automodule για κάθε πακέτο στο <OUTPUT_PATH>.\n\nΤα <EXCLUDE_PATTERN>μποÏεί να αποτελοÏν αÏχεία ή/και σχέδια καταλόγων τα οποία θα \nεκτελεστοÏν κατά τη δημιουÏγία.\n\nΣημείωση: από Ï€Ïοεπιλογή αυτό το σενάÏιο δεν θα αντικαταστήσει τα ήδη δημιουÏγημένα αÏχεία."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "μονοπάτι για το δομοστοιχείο για το έγγÏαφο"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "αÏχεία fnmatch-style και/ή υποδείγματα καταλόγου που θα εξαιÏεθοÏν από τη δημιουÏγία"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "κατάλογο για τοποθέτηση όλων των Ï€Ïοϊόντων"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "μέγιστο βάθος από υποδομοστοιχεία για απεικόνιση στο TOC (Ï€Ïοεπιλογή: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "αντικατάσταση υπάÏχοντων αÏχείων"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "ακολουθία συμβολικών συνδέσμων. ΙσχυÏÏŒ όταν συνδυάζεται με το collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "εκτελέστε το σενάÏιο χωÏίς τη δημιουÏγία αÏχείων"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "τοποθετήστε βιβλιογÏαφία για κάθε δομοστοιχείο στη δικής της σελίδα"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "να συμπεÏιληφθοÏν τα δομοστοιχεία \"_private\""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "όνομα αÏχείου του πίνακα πεÏιεχομένων (Ï€Ïοεπιλογή: δομοστοιχεία)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "να μη δημιουÏγηθεί αÏχείο με πίνακα πεÏιεχομένων"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "μη δημιουÏγείτε κεφαλίδες για πακέτα δομοστοιχείων/πακέτων (Ï€.χ. όταν τα docstrings τα πεÏιλαμβάνουν ήδη)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "τοποθέτηση βιβλιογÏαφίας δομοστοιχείου Ï€Ïιν από την βιβλιογÏαφία υπόδομοστοιχείου"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "εÏμηνεία μονοπατιών δομοστοιχείων σÏμφωνα με την Ï€ÏοδιαγÏαφή POP-0420 αυτονόητων namespaces"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "επέκταση αÏχείου (Ï€Ïοεπιλογή: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "δημιουÏγία ενός πλήÏους έÏγου με το sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "η Ï€Ïοσθήκη του module_path στο sys.path, χÏησιμοποιείται όταν δίδεται το --full"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "όνομα έÏγου (Ï€Ïοεπιλογή: όνομα ÏÎ¹Î¶Î¹ÎºÎ¿Ï Î´Î¿Î¼Î¿ÏƒÏ„Î¿Î¹Ï‡ÎµÎ¯Î¿Ï…)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "συγγÏαφέας(εις) έÏγου, χÏησιμοποιείται όταν δίδεται το --full"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "έκδοση έÏγου, χÏησιμοποιείται όταν δίνεται το --full"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "έκδοση έÏγου, χÏησιμοποιείται όταν δίδεται το --full, Ï€Ïοεπιλογή σε --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "επιλογές επέκτασης"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "το %s δεν είναι κατάλογος."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "ανέγκυÏο regex %r σε %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Η δοκιμή της κάλυψης στις πηγές ολοκληÏώθηκε, δείτε τα αποτελέσματα στο %(outdir)s python.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "ανέγκυÏο regex %r στο coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "το δομοστοιχείο %s δεν ήταν δυνατό να εισαχθεί: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2597,24 +2651,24 @@ msgstr "'%s' δεν αποτελεί μία έγκυÏη επιλογή για p
msgid "invalid TestCode type"
msgstr "ανέγκυÏος Ï„Ïπος TestCode"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "ΟλοκληÏώθηκε η δοκιμή των doctests στις πηγές, δείτε τα αποτελέσματα σε %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "δεν υπάÏχει κώδικας/αποτέλεσμα στο τμήμα %s στο %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "Ο ανέγκυÏος κώδικας doctest θα αγνοηθεί: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2625,32 +2679,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Η οδηγία Graphviz δεν είναι δυνατό να πεÏιλαμβάνει και πεÏιεχόμενο και ένα ÏŒÏισμα ονόματος αÏχείου"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Το εξωτεÏικό αÏχείο Graphviz %r δεν βÏέθηκε ή απέτυχε η ανάγνωσή του"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Η οδηγία χωÏίς πεÏιεχόμενο \"graphviz\" θα αγνοηθεί."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "η εντολή dot %r δεν είναι δυνατό να εκτελεστεί (απαιτείται για αποτέλεσμα graphviz), ελέγξτε τη ÏÏθμιση graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2660,7 +2714,7 @@ msgid ""
"%r"
msgstr "το dot ολοκλήÏωσε με σφάλμα:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2670,27 +2724,27 @@ msgid ""
"%r"
msgstr "το dot δεν παÏήγαγε κανένα αÏχείο εξόδου:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "Το graphviz_output_format Ï€Ïέπει να είναι ένα από τα 'png', 'svg', αλλά είναι %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "κωδικός dot %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[γÏάφημα: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[γÏάφημα]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2698,7 +2752,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2708,173 +2762,178 @@ msgid ""
"%r"
msgstr "η μετατÏοπή ολοκλήÏωσε με σφάλμα:[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "Η εντολή LaTex %r δεν είναι δυνατό να εκτελεστεί (απαιτείται για απεικόνιση μαθηματικών), ελέγξτε τη ÏÏθμιση imgmath_latex"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s η εντολή %r δεν είναι δυνατό να εκτελεστεί (απαιτείται για μαθηματική απεικόνιση), ελέγξτε τη ÏÏθμιση imgmath_%s"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "απεικόνιση latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "σε σειÏά latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "το απόθεμα intersphinx έχει μεταφεÏθεί: %s->%s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "φότωση του αποθέματος intersphinx από %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "παÏουσιάστηκαν κάποια ζητήματα με μεÏικά απο τα αποθέματα, αλλά υπήÏξαν λειτουÏγικές εναλλακτικές:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "αδυναμία Ï€Ïοσέγγισης οποιασδήποτε αποθήκης με τα ακόλουθα ζητήματα:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(στη %s έκδοση %s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(στο %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "το αναγνωÏιστικό intersphinx %r δεν είναι στοιχειοσειÏά. Θα αγνοηθεί"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[πηγή]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "ΕκκÏεμότητα"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "βÏέθηκε εγγÏαφή TODO:%s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(Το <<original entry>> βÏίσκεται στο %s, γÏαμή %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "αÏχική εγγÏαφή"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "επισήμανση κώδικα δομοστοιχείου..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[τεκμηÏίωση]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Κώδικας μονάδας"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Πηγαίος κώδικας για το %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Επισκόπηση: κώδικας της μονάδας"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Όλες οι μονάδες για τις οποίες υπάÏχει διαθέσιμος κώδικας</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "ανέγκυÏη υπογÏαφή για αυτόματο %s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "σφάλμα κατά τη μοÏφοποίηση των οÏισμάτων για %s:%s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2882,112 +2941,112 @@ msgid ""
"explicit module name)"
msgstr "δεν γνωÏίζω ποιο δομοστοιχείο να εισάγω για αυτόματη τεκμηÏίωση %r (Ï€Ïοσπαθήστε να τοποθετήσετε μία οδηγία \"module\" ή \"currentmodule\" στο έγγÏαφο, ή να δώσετε ένα σαφές όνομα δομοστοιχείου)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" στο όνομα automodule δεν βγάζει νόημα"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "οÏίσματα υπογÏαφής ή επιστÏοφή σημείωσης η οποία δόθηκε για το automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ Ï€Ïέπει να είναι λίστα στοιχειοσειÏάς, όχι %r (στο δομοστοιχείο %s) -- θα αγνοηθεί το __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Βάσεις: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "απουσιάζει το χαÏακτηÏιστικό %s στο αντικείμενο %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2995,26 +3054,26 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "αδυναμία ανάλυσης ονόματος %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "αδυναμία εισαγωγής αντικειμένου %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "Το autosummary δημιουÏγεί αÏχεία .rst εσωτεÏικά. Αλλά το δικό σας source_suffix δεν πεÏιλαμβάνει .rst. Θα παÏαλειφθεί."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3087,99 +3146,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "ΟÏίσματα λέξης-κλειδί"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "ΠαÏάδειγμα"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "ΠαÏαδείγματα"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Σημειώσεις"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Άλλες παÏάμετÏοι"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "ΑναφοÏές"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "ΠÏοειδοποιήσεις"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Αποδόσεις"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "ΠÏοσοχή"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "ΠÏοσοχή"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Κίνδυνος"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Σφάλμα"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Συμβουλή"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Σημαντικό"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Σημείωση"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Δείτε επίσης"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "ΠÏακτική συμβουλή"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "ΠÏοειδοποίηση"
@@ -3211,7 +3270,7 @@ msgid "Table of Contents"
msgstr "Πίνακας πεÏιεχομένων"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Αναζήτηση"
@@ -3344,34 +3403,22 @@ msgstr "Επόμενο θέμα"
msgid "next chapter"
msgstr "επόμενο κεφάλαιο"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "ΠαÏακαλώ, ενεÏγοποιήστε τη JavaScript για να είναι δυνατή η λειτουÏγία\n αναζήτησης."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "αναζήτηση"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Αποτελέσματα Αναζήτησης"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Η αναζήτησή σας δεν ταυτοποιήθηκε με κανένα κείμενο. ΠαÏακαλώ, επιβεβαιώστε ότι όλες οι λέξεις έχουν τη σωστή οÏθογÏαφία και ότι έχετε επιλέξεις αÏκετές κατηγοÏίες."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "ΣÏντομη αναζήτηση"
@@ -3408,20 +3455,30 @@ msgstr "Αλλαγές στο API της C"
msgid "Other changes"
msgstr "Άλλες αλλαγές"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Αποτελέσματα Αναζήτησης"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Η αναζήτησή σας δεν ταυτοποιήθηκε με κανένα κείμενο. ΠαÏακαλώ, επιβεβαιώστε ότι όλες οι λέξεις έχουν τη σωστή οÏθογÏαφία και ότι έχετε επιλέξεις αÏκετές κατηγοÏίες."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Εκτελείται η αναζήτηση"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "ΠÏοετοιμασία αναζήτησης..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", στο "
@@ -3442,30 +3499,30 @@ msgstr "Άνοιγμα πλαϊνής μπάÏας"
msgid "Contents"
msgstr "ΠεÏιεχόμενα"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "βÏέθηκε ευÏετήÏιο βασιζόμενο σε 4 στήλες. ΜποÏεί να αποτελεί σφάλμα της επέκτασης που χÏησιμοποιείτε: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Δεν υπάÏχει αναφοÏά για την υποσημείωση [%s]."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Η υποσημείωση [#] δεν αναφέÏεται."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3477,13 +3534,13 @@ msgid ""
"{1}"
msgstr "ασυνεπείς αναφοÏές στα μεταφÏασμένα μηνÏματα. αÏχικό: {0}, μεταφÏασμένο: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "ασυνεπείς αναφοÏές παÏαπομπής στο μεταφÏασμένο μήνυμα. αÏχικό: {0}, μεταφÏασμένο: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3510,90 +3567,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "Δεν ήταν δυνατή η λήψη απομακÏυσμένης εικόνας: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "Δεν ήταν δυνατή η λήψη απομακÏυσμένης εικόνας: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Άγνωστος Ï„Ïπος αÏχείου: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "μη κωδικοποιήσιμοι χαÏακτήÏες πηγής, θα αντικατασταθοÏν με \"?\": %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "παÏάβλεψη"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "αποτυχία"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "άγνωστος Ï„Ïπος κόμβου: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "σφάλμα ανάγνωσης: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "καταγÏαφή λάθους: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "ΑνέγκυÏος Ï„Ïπος ημεÏομηνίας. Τοποθετείστε στη στοιχειοσειÏά μονά εισαγωγικά εάν θέλετε να το εξάγετε απευθείας: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "το toctree πεÏιλαμβάνει αναφοÏά σε άγνωστο αÏχείο %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "εξαίÏεση κατά την αξιολόγηση μόνο της έκφÏασης οδηγίας: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "ο Ï€Ïοεπιλεγμένος Ïόλος %s δεν βÏέθηκε"
@@ -3616,27 +3673,27 @@ msgstr "Κανένα ID δεν έχει ανατεθεί στο κόμβο %s"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "Δεν ήταν δυνατή η λήψη του μεγέθους της εικόνας. Η επιλογή :scale: θα αγνοηθεί."
@@ -3653,13 +3710,13 @@ msgstr "Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ :maxdepth:, θα αγνοηθεί."
msgid "document title is not a single Text node"
msgstr "ο τίτλος του εγγÏάφου δεν είναι μονός κόμβος κειμένου"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "ο ανακαλυφθέν τίτλος κόμβος δεν βÏίσκεται σε τομέα, θέμα, πίνακα, Ï€Ïοειδοποίηση ή πλαϊνή μπάÏα"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Σημειώσεις υποσέλιδου"
@@ -3678,20 +3735,20 @@ msgstr "η μονάδα διάστασης %s δεν είναι έγκυÏη. Θ
msgid "unknown index entry type %s found"
msgstr "βÏέθηκε άγνωστος Ï„Ïπος εγγÏαφής ευÏετηÏίου %s"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[εικόνα: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[εικόνα]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "η λεζάντα δεν βÏίσκεται εντός μίας εικόνας."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "μη υλοποιημένος Ï„Ïπος κόμβου: %r"
diff --git a/sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo b/sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo
index 6ac726b..3241b32 100644
--- a/sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/en_DE/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/en_DE/LC_MESSAGES/sphinx.po b/sphinx/locale/en_DE/LC_MESSAGES/sphinx.po
index 74dd1c4..e56ba7b 100644
--- a/sphinx/locale/en_DE/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/en_DE/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Germany) (http://app.transifex.com/sphinx-doc/sphinx-1/language/en_DE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: en_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo b/sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo
index 2c153d4..3dcf4c2 100644
--- a/sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/en_FR/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/en_FR/LC_MESSAGES/sphinx.po b/sphinx/locale/en_FR/LC_MESSAGES/sphinx.po
index e13ab81..4a0b32a 100644
--- a/sphinx/locale/en_FR/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/en_FR/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (France) (http://app.transifex.com/sphinx-doc/sphinx-1/language/en_FR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: en_FR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo b/sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo
index b7dd186..bc40a08 100644
--- a/sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/en_GB/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/en_GB/LC_MESSAGES/sphinx.po b/sphinx/locale/en_GB/LC_MESSAGES/sphinx.po
index 6dd6136..032185a 100644
--- a/sphinx/locale/en_GB/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/en_GB/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Adam Turner, 2022-2023\n"
"Language-Team: English (United Kingdom) (http://app.transifex.com/sphinx-doc/sphinx-1/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -38,104 +38,104 @@ msgstr "Source directory and destination directory cannot be identical"
msgid "Running Sphinx v%s"
msgstr "Running Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "This project needs at least Sphinx v%s and therefore cannot be built with this version."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "making output directory"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "while setting up extension %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' as currently defined in conf.py isn't a Python callable. Please modify its definition to make it a callable function. This is needed for conf.py to behave as a Sphinx extension."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "loading translations [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "done"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "not available for built-in messages"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "loading pickled environment"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "failed: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "No builder selected, using default: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "succeeded"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "finished with problems"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "build %s, %s warning (with warnings treated as errors)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "build %s, %s warnings (with warnings treated as errors)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "build %s, %s warning."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "build %s, %s warnings."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "build %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "node class %r is already registered, its visitors will be overridden"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "directive %r is already registered, it will be overridden"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "role %r is already registered, it will be overridden"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr "the %s extension does not declare if it is safe for parallel reading, assuming it isn't - please ask the extension author to check and make it explicit"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "the %s extension is not safe for parallel reading"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr "the %s extension does not declare if it is safe for parallel writing, assuming it isn't - please ask the extension author to check and make it explicit"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "the %s extension is not safe for parallel writing"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "doing serial %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "config directory doesn't contain a conf.py file (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "Invalid configuration value found: 'language = None'. Update your configuration to a valid language code. Falling back to 'en' (English)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "cannot override dictionary config setting %r, ignoring (use %r to set individual elements)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "invalid number %r for config value %r, ignoring"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "cannot override config setting %r with unsupported type, ignoring"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "unknown config value %r in override, ignoring"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "No such config value: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Config value %r already present"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "There is a syntax error in your configuration file: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "The configuration file (or one of the modules it imports) called sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,291 +232,328 @@ msgid ""
"%s"
msgstr "There is a programmable error in your configuration file:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "The config value `source_suffix' expects a string, list of strings, or dictionary. But `%r' is given."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Section %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Table %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listing %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "The config value `{name}` has to be a one of {candidates}, but `{current}` is given."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "The config value `{name}' has type `{current.__name__}'; expected {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "The config value `{name}' has type `{current.__name__}', defaults to `{default.__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r not found, ignored."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add \"root_doc = 'contents'\" to your conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Event %r already present"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Unknown event name: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "Handler %r for event %r threw an exception"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "The %s extension is required by needs_extensions settings, but it is not loaded."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "This project needs the extension %s at least in version %s and therefore cannot be built with the loaded version (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments lexer name %r is not known"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "multiple files found for the document \"%s\": %r\nUse %r for the build."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Builder class %s has no \"name\" attribute"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Builder %r already exists (in module %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Builder name %s not registered or available through entry point"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Builder name %s not registered"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domain %s already registered"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domain %s not yet registered"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "The %r directive is already registered to domain %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "The %r role is already registered to domain %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "The %r index is already registered to domain %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "The %r object_type is already registered"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "The %r crossref_type is already registered"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r is already registered"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser for %r is already registered"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Source parser for %s not registered"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Translator for %r already exists"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r already registered"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "maths renderer %s is already registered"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "the extension %r was already merged with Sphinx since version %s; this extension is ignored."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Original exception:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Could not import extension %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "extension %r has no setup() function; is it really a Sphinx extension module?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "The %s extension used by this project needs at least Sphinx v%s; it therefore cannot be built with this version."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "extension %r returned an unsupported object from its setup() function; it should return None or a metadata dictionary"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "invalid PEP number %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "invalid RFC number %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "theme %r doesn't have \"theme\" setting"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "theme %r doesn't have \"inherit\" setting"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "no theme named %r found, inherited by %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "setting %s.%s occurs in none of the searched theme configs"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "unsupported theme option %r given"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "file %r on theme path is not a valid zipfile or contains no theme"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
+#, python-format
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -527,8 +569,8 @@ msgstr "a suitable image for %s builder not found: %s"
msgid "building [mo]: "
msgstr "building [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "writing output... "
@@ -577,7 +619,7 @@ msgstr "%d source files given on command line"
msgid "targets for %d source files that are out of date"
msgstr "targets for %d source files that are out of date"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "building [%s]: "
@@ -586,50 +628,50 @@ msgstr "building [%s]: "
msgid "looking for now-outdated files... "
msgstr "looking for now-outdated files... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d found"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "none found"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "pickling environment"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "checking consistency"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "no targets are out of date."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "updating environment: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s added, %s changed, %s removed"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "reading sources... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "docnames to write: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "preparing documents"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr "copying assets"
@@ -638,36 +680,36 @@ msgstr "copying assets"
msgid "duplicated ToC entry found: %s"
msgstr "duplicated ToC entry found: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "copying images... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "cannot read image file %r: copying it instead"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "cannot copy image file %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "cannot write image file %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow not found - copying image files"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "writing mimetype file..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "writing META-INF/container.xml file..."
@@ -675,470 +717,470 @@ msgstr "writing META-INF/container.xml file..."
msgid "writing content.opf file..."
msgstr "writing content.opf file..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "unknown mimetype for %s, ignoring"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "writing toc.ncx file..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "writing %s file..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "The overview file is in %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "no changes in version %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "writing summary file..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Builtins"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Module level"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "copying source files..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "could not read %r for changelog creation"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "The dummy builder generates no files."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "The ePub file is in %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "writing nav.xhtml file..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "conf value \"epub_uid\" should be XML NAME for EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "conf value \"epub_author\" should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "conf value \"epub_contributor\" should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "conf value \"epub_description\" should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "conf value \"epub_publisher\" should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "conf value \"epub_identifier\" should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "conf value \"version\" should not be empty for EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "invalid css_file: %r, ignored"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "The message catalogues are in %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "targets for %d template files"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "reading templates... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "writing message catalogues... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Look for any errors in the above output or in %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "broken link: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "The manual pages are in %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "no \"man_pages\" config value found; no manual pages will be written"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "writing"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" config value references unknown document %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "The HTML page is in %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "assembling single document"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "writing additional files"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "The Texinfo files are in %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nRun 'make' in that directory to run these through makeinfo\n(use 'make info' here to do that automatically)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "no \"texinfo_documents\" config value found; no documents will be written"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "\"texinfo_documents\" config value references unknown document %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "processing %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "resolving references..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (in "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "copying Texinfo support files"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "error writing file Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "The text files are in %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "error writing file %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "The XML files are in %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "The pseudo-XML files are in %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "build info file is broken: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "The HTML pages are in %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Failed to read build info file: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "General Index"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "next"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "previous"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "generating indices"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "writing additional pages"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "copying downloadable files... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "cannot copy downloadable file %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "Failed to copy a file in html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "copying static files"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "cannot copy static file %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "copying extra files"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "cannot copy extra file %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Failed to write build info file: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "search index couldn't be loaded, but not all documents will be built: the index will be incomplete."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "page %s matches two patterns in html_sidebars: %r and %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "a Unicode error occurred when rendering the page %s. Please make sure all config values that contain non-ASCII content are Unicode strings."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "An error happened in rendering the page %s.\nReason: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "dumping object inventory"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "dumping search index in %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "invalid js_file: %r, ignored"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Many math_renderers are registered. But no math_renderer is selected."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "Unknown math_renderer %r is given."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path entry %r does not exist"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path entry %r is placed inside outdir"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path entry %r does not exist"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path entry %r is placed inside outdir"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "logo file %r does not exist"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon file %r does not exist"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr "HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in configuration options)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s documentation"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "The LaTeX files are in %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nRun 'make' in that directory to run these through (pdf)latex\n(use `make latexpdf' here to do that automatically)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "no \"latex_documents\" config value found; no documents will be written"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "\"latex_documents\" config value references unknown document %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Release"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "no Babel option known for language %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "copying TeX support files"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "copying TeX support files..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "copying additional files"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Unknown configure key: latex_elements[%r], ignored."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Unknown theme option: latex_theme_options[%r], ignored."
@@ -1153,15 +1195,15 @@ msgstr "%r doesn't have \"theme\" setting"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r doesn't have \"%s\" setting"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr "Failed to get a docname!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr "Failed to get a docname for source {source!r}!"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr "No footnote was found for given reference node %r"
@@ -1220,8 +1262,8 @@ msgstr "A bug report can be filed in the tracker at <https://github.com/sphinx-d
msgid "job number should be a positive number"
msgstr "job number should be a positive number"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "For more information, visit <https://www.sphinx-doc.org/>."
@@ -1253,257 +1295,264 @@ msgid "path to output directory"
msgstr "path to output directory"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "general options"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "write all files (default: only write new and changed files)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "don't use a saved environment, always read all files"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "path for the cached environment and doctree files (default: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "build in parallel with N processes where possible (special value \"auto\" will set N to cpu-count)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "path where configuration file (conf.py) is located (default: same as SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "override a setting in configuration file"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "pass a value into HTML templates"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "define tag: include \"only\" blocks with TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "nit-picky mode, warn about all missing references"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "console output options"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "increase verbosity (can be repeated)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "no output on stdout, just warnings on stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "no output at all, not even warnings"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "do emit colored output (default: auto-detect)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "do not emit coloured output (default: auto-detect)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "write warnings (and errors) to given file"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "turn warnings into errors"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "show full traceback on exception"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "run Pdb on exception"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "cannot combine -a option and filenames"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "cannot open warning file %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D option argument must be in the form name=value"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A option argument must be in the form name=value"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "automatically insert docstrings from modules"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "automatically test code snippets in doctest blocks"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "link between Sphinx documentation of different projects"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "write \"todo\" entries that can be shown or hidden on build"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "checks for documentation coverage"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "include maths, rendered as PNG or SVG images"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "include maths, rendered in the browser by MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "conditional inclusion of content based on config values"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "include links to the source code of documented Python objects"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "create .nojekyll file to publish the document on GitHub pages"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Please enter a valid path name."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Please enter some text."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Please enter one of %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Please enter either 'y' or 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Please enter a file suffix, e.g. '.rst' or '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Welcome to the Sphinx %s quickstart utility."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Please enter values for the following settings (just press Enter to\naccept a default value, if one is given in brackets)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Selected root path: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Enter the root path for documentation."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Root path for the documentation"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Error: an existing conf.py has been found in the selected root path."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart will not overwrite existing Sphinx projects."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Please enter a new root path (or just Enter to exit)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "You have two options for placing the build directory for Sphinx output.\nEither, you use a directory \"_build\" within the root path, or you separate\n\"source\" and \"build\" directories within the root path."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Separate source and build directories (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Inside the root directory, two more directories will be created; \"_templates\"\nfor custom HTML templates and \"_static\" for custom stylesheets and other static\nfiles. You can enter another prefix (such as \".\") to replace the underscore."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Name prefix for templates and static dir"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "The project name will occur in several places in the built documentation."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Project name"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Author name(s)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx has the notion of a \"version\" and a \"release\" for the\nsoftware. Each version can have multiple releases. For example, for\nPython the version is something like 2.5 or 3.0, while the release is\nsomething like 2.5.1 or 3.0a1. If you don't need this dual structure,\njust set both to the same value."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Project version"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Project release"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "If the documents are to be written in a language other than English,\nyou can select a language here by its language code. Sphinx will then\ntranslate text that it generates into that language.\n\nFor a list of supported codes, see\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Project language"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "The file name suffix for source files. Commonly, this is either \".txt\"\nor \".rst\". Only files with this suffix are considered documents."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Source file suffix"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "One document is special in that it is considered the top node of the\n\"contents tree\", that is, it is the root of the hierarchical structure\nof the documents. Normally, this is \"index\", but if your \"index\"\ndocument is a custom template, you can also set this to another filename."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Name of your master document (without suffix)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Error: the master file %s has already been found in the selected root path."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart will not overwrite the existing file."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Please enter a new file name, or rename the existing file and press Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Indicate which of the following Sphinx extensions should be enabled:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Note: imgmath and mathjax cannot be enabled at the same time. imgmath has been deselected."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "A Makefile and a Windows command file can be generated for you so that you\nonly have to run e.g. `make html' instead of invoking sphinx-build\ndirectly."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Create Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Create Windows command file? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Creating file %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "File %s already exists, skipping."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Finished: An initial directory structure has been created."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "You should now populate your master file %s and create other documentation\nsource files. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Use the Makefile to build the docs, like so:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Use the sphinx-build command to build the docs, like so:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "where \"builder\" is one of the supported builders, e.g. html, latex or linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nGenerate required files for a Sphinx project.\n\nsphinx-quickstart is an interactive tool that asks some questions about your\nproject and then generates a complete documentation directory and sample\nMakefile to be used with sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "quiet mode"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "project root"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Structure options"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "if specified, separate source and build dirs"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "if specified, create build dir under source dir"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "replacement for dot in _templates etc."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Project basic options"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "project name"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "author names"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "version of project"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "release of project"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "document language"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "source file suffix"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "master document name"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "use epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Extension options"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "enable %s extension"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "enable arbitrary extensions"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefile and Batchfile creation"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "create makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "do not create makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "create batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "do not create batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "use make-mode for Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "do not use make-mode for Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Project templating"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "template directory for template files"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "define a template variable"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Error: specified path is not a directory, or sphinx files already exist."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart only generate into a empty directory. Please specify a new root path."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Invalid template variable: %s"
@@ -1825,47 +1874,47 @@ msgstr "Cannot use \"lineno-match\" with a disjoint set of \"lines\""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Line spec %r: no lines pulled from include file %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "toctree glob pattern %r didn't match any documents"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree contains reference to excluded document %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree contains reference to nonexisting document %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "duplicated entry found in toctree: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Section author: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Module author: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Code author: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Author: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ".. acks content is not a list"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ".. hlist content is not a list"
@@ -1880,82 +1929,10 @@ msgstr "\":file:\" option for csv-table directive now recognises an absolute pat
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Duplicate C declaration, also defined at %s:%s.\nDeclaration is '.. c:%s:: %s'."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parameters"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "Return values"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Returns"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Return type"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "member"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variable"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "function"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "struct"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "union"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "type"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "function parameter"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "New in version %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1967,346 +1944,423 @@ msgstr "Changed in version %s"
msgid "Deprecated since version %s"
msgstr "Deprecated since version %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "duplicate citation %s, other instance in %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Citation [%s] is not referenced."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Duplicate C++ declaration, also defined at %s:%s.\nDeclaration is '.. cpp:%s:: %s'."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Template Parameters"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Throws"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "class"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "concept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "template parameter"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (built-in function)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s method)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (class)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (global variable or constant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attribute)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Arguments"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Throws"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Returns"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Return type"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (module)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "function"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "method"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "class"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribute"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "module"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "duplicate %s description of %s, other %s in %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "duplicate label of equation %s, other instance in %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "Invalid math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directive)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Raises"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (directive option)"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directive"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "directive-option"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "role"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "duplicate description of %s %s, other instance in %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Duplicate C declaration, also defined at %s:%s.\nDeclaration is '.. c:%s:: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parameters"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Return values"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "member"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variable"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "struct"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "union"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "type"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "function parameter"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Template Parameters"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Duplicate C++ declaration, also defined at %s:%s.\nDeclaration is '.. cpp:%s:: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concept"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "template parameter"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (in module %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (in module %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (built-in variable)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (built-in class)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (class in %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s class method)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s static method)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (%s property)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python Module Index"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modules"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Deprecated"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "exception"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "class method"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "static method"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "property"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "more than one target found for cross-reference %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (deprecated)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directive)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (directive option)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (role)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directive"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "directive-option"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variables"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Raises"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "environment variable; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Malformed option description %r, should look like \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" or \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s command line option"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "command line option"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "glossary term must be preceded by empty line"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "glossary terms must not be separated by empty lines"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "glossary seems to be misformatted, check indentation"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "glossary term"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammar token"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "reference label"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "environment variable"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programme option"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "document"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Module Index"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Search Page"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "duplicate label %s, other instance in %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "duplicate %s description of %s, other instance in %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig is disabled. :numref: is ignored."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "Failed to create a cross reference. Any number is not assigned: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "the link has no caption: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "invalid numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "invalid numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "undefined label: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "Failed to create a cross reference. A title or caption not found: %r"
@@ -2323,35 +2377,35 @@ msgstr "config changed"
msgid "extensions changed"
msgstr "extensions changed"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "build environment version not current"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "source directory has changed"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "This environment is incompatible with the selected builder, please choose another doctree directory."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Failed to scan documents in %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Domain %r is not registered"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "document isn't included in any toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "self referenced toctree found. Ignored."
@@ -2375,39 +2429,39 @@ msgstr "unknown index entry type %r"
msgid "Symbols"
msgstr "Symbols"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "circular toctree references detected, ignoring: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree contains reference to document %r that doesn't have a title: no link will be generated"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "toctree contains reference to non-included document %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "image file not readable: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "image file %s not readable: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "download file not readable: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s is already assigned section numbers (nested numbered toctree?)"
@@ -2417,7 +2471,7 @@ msgstr "%s is already assigned section numbers (nested numbered toctree?)"
msgid "Would create file %s."
msgstr "Would create file %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nLook recursively in <MODULE_PATH> for Python modules and packages and create\none reST file with automodule directives per package in the <OUTPUT_PATH>.\n\nThe <EXCLUDE_PATTERN>s can be file and/or directory patterns that will be\nexcluded from generation.\n\nNote: By default this script will not overwrite already created files."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "path to module to document"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "fnmatch-style file and/or directory patterns to exclude from generation"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "directory to place all output"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "maximum depth of submodules to show in the TOC (default: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "overwrite existing files"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "follow symbolic links. Powerful when combined with collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "run the script without creating files"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "put documentation for each module on its own page"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "include \"_private\" modules"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "filename of table of contents (default: modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "don't create a table of contents file"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "don't create headings for the module/package packages (e.g. when the docstrings already contain them)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "put module documentation before submodule documentation"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interpret module paths according to PEP-0420 implicit namespaces specification"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "file suffix (default: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "generate a full project with sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "append module_path to sys.path, used when --full is given"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "project name (default: root module name)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "project author(s), used when --full is given"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "project version, used when --full is given"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "project release, used when --full is given, defaults to --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "extension options"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s is not a directory."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "section \"%s\" gets labeled as \"%s\""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "invalid regex %r in %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Testing of coverage in the sources finished, look at the results in %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "invalid regex %r in coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "undocumented c api: %s [%s] in file %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "module %s could not be imported: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "undocumented python function: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "undocumented python class: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "undocumented python method: %s :: %s :: %s"
@@ -2595,24 +2649,24 @@ msgstr "'%s' is not a valid pyversion option"
msgid "invalid TestCode type"
msgstr "invalid TestCode type"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Testing of doctests in the sources finished, look at the results in %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "no code/output in %s block at %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "ignoring invalid doctest code: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== slowest reading durations ======================="
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "hardcoded link %r could be replaced by an extlink (try using %r instead)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz directive cannot have both content and a filename argument"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "External Graphviz file %r not found or reading it failed"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ignoring \"graphviz\" directive without content."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot command %r cannot be run (needed for graphviz output), check the graphviz_dot setting"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr "dot exited with error:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr "dot did not produce an output file:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format must be one of 'png', 'svg', but is %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "dot code %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graph: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graph]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr "Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n\nTraceback: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr "convert exited with error:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "convert command %r cannot be run, check the image_converter setting"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "LaTeX command %r cannot be run (needed for maths display), check the imgmath_latex setting"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s command %r cannot be run (needed for maths display), check the imgmath_%s setting"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "display latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "inline latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "intersphinx inventory has moved: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "loading intersphinx inventory from %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "encountered some issues with some of the inventories, but they had working alternatives:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "failed to reach any of the inventories with the following issues:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(in %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(in %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "external %s:%s reference target not found: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "intersphinx identifier %r is not string. Ignored"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "Failed to read intersphinx_mapping[%s], ignored: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[source]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "TODO entry found: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(The <<original entry>> is located in %s, line %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "original entry"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "highlighting module code... "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Module code"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Source code for %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Overview: module code"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>All modules for which code is available</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "invalid value for member-order option: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "invalid value for class-doc-from option: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "invalid signature for auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "error while formatting arguments for %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr "don't know which module to import for autodocumenting %r (try placing a \"module\" or \"currentmodule\" directive in the document, or giving an explicit module name)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "A mocked object is detected: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "error while formatting signature for %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" in automodule name doesn't make sense"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "signature arguments or return annotation given for automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ should be a list of strings, not %r (in module %s) -- ignoring __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "missing attribute mentioned in :members: option: module %s, attribute %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "Failed to get a function signature for %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "Failed to get a constructor signature for %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Bases: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "missing attribute %s in object %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "alias of %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "alias of TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "Failed to get a method signature for %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "Invalid __slots__ found on %s. Ignored."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "Failed to parse a default argument value for %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "Failed to update signature for %r: parameter not found: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "Failed to parse type_comment for %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "autosummary references excluded document %r. Ignored."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: stub file not found %r. Check your autosummary_generate setting."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "A captioned autosummary requires :toctree: option. ignored."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,26 +3052,26 @@ msgid ""
"%s"
msgstr "autosummary: failed to import %s.\nPossible hints:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "failed to parse name %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "failed to import object %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: file not found: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary generats .rst files internally. But your source_suffix does not contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr "document exactly the members in module __all__ attribute. (default: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Keyword Arguments"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Example"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Examples"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Notes"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Other Parameters"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "Receives"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "References"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Warns"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Yields"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "invalid value set (missing closing brace): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "invalid value set (missing opening brace): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "malformed string literal (missing closing quote): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "malformed string literal (missing opening quote): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Attention"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Caution"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Danger"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Error"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Hint"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Important"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Note"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "See also"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Warning"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr "Table of Contents"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Search"
@@ -3342,34 +3401,22 @@ msgstr "Next topic"
msgid "next chapter"
msgstr "next chapter"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Please activate JavaScript to enable the search\n functionality."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Searching for multiple words only shows matches that contain\n all words."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "search"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Search Results"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Quick search"
@@ -3406,20 +3453,30 @@ msgstr "C API changes"
msgid "Other changes"
msgstr "Other changes"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Search Results"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "Search finished, found ${resultCount} page(s) matching the search query."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Searching"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Preparing search..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", in "
@@ -3440,30 +3497,30 @@ msgstr "Expand sidebar"
msgid "Contents"
msgstr "Contents"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "4 column based index found. It might be a bug of extensions you use: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Footnote [%s] is not referenced."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Footnote [#] is not referenced."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr "inconsistent references in translated message. original: {0}, translated: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "inconsistent citation references in translated message. original: {0}, translated: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr "%s:%s reference target not found: %s"
msgid "%r reference target not found: %s"
msgstr "%r reference target not found: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "Could not fetch remote image: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "Could not fetch remote image: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Unknown image format: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "undecodable source characters, replacing with \"?\": %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "skipped"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "failed"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "Problem in %s domain: field is supposed to use role '%s', but that role is not in the domain."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "unknown directive or role name: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "unknown node type: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "reading error: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "writing error: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Invalid date format. Quote the string by single quote if you want to output it directly: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr "%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctree contains ref to nonexisting file %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "exception while evaluating only directive expression: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "default role %s not found"
@@ -3614,27 +3671,27 @@ msgstr "Any IDs not assigned for %s node"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "Could not obtain image size. :scale: option is ignored."
@@ -3651,13 +3708,13 @@ msgstr "too large :maxdepth:, ignored."
msgid "document title is not a single Text node"
msgstr "document title is not a single Text node"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "encountered title node not in section, topic, table, admonition or sidebar"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Footnotes"
@@ -3676,20 +3733,20 @@ msgstr "dimension unit %s is invalid. Ignored."
msgid "unknown index entry type %s found"
msgstr "unknown index entry type %s found"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[image: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[image]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "caption not inside a figure."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "unimplemented node type: %r"
diff --git a/sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo b/sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo
index d2a9903..4ec313b 100644
--- a/sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/en_HK/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/en_HK/LC_MESSAGES/sphinx.po b/sphinx/locale/en_HK/LC_MESSAGES/sphinx.po
index bb9316f..bd446cb 100644
--- a/sphinx/locale/en_HK/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/en_HK/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (Hong Kong) (http://app.transifex.com/sphinx-doc/sphinx-1/language/en_HK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: en_HK\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/eo/LC_MESSAGES/sphinx.mo b/sphinx/locale/eo/LC_MESSAGES/sphinx.mo
index 3d9b26a..32270d2 100644
--- a/sphinx/locale/eo/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/eo/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/eo/LC_MESSAGES/sphinx.po b/sphinx/locale/eo/LC_MESSAGES/sphinx.po
index 0d33621..df3cb60 100644
--- a/sphinx/locale/eo/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/eo/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Tatsuro YOKOTA <hidaruma@outlook.jp>, 2021\n"
"Language-Team: Esperanto (http://app.transifex.com/sphinx-doc/sphinx-1/language/eo/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:331 sphinx/theming.py:377
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Indico universala"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indico"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "sekva"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "antaÅ­a"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentaro"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "AÅ­toro:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,433 +1930,438 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametroj"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membro"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
+msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcio"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
+msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "nomaĵo"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
+msgstr "%s() (klaso)"
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipo"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/changeset.py:23
+#: sphinx/domains/javascript.py:331
#, python-format
-msgid "New in version %s"
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcio"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klaso"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
+msgstr "datenoj"
+
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr "atributo"
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klaso"
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
-msgstr "%s() (klaso)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametroj"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membro"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "nomaĵo"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
-msgstr "datenoj"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
-msgstr "atributo"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipo"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "escepto"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr "Simboloj"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Avertoj"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Eraro"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Averto"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3343,34 +3402,22 @@ msgstr "Sekva temo"
msgid "next chapter"
msgstr "sekvo ĉapitro"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "serĉu"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3407,20 +3454,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3441,30 +3498,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.mo b/sphinx/locale/es/LC_MESSAGES/sphinx.mo
index 59eba65..53d7b2c 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/es/LC_MESSAGES/sphinx.po b/sphinx/locale/es/LC_MESSAGES/sphinx.po
index 350c41d..83d7dda 100644
--- a/sphinx/locale/es/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/es/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -16,14 +16,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Adam Turner, 2023\n"
"Language-Team: Spanish (http://app.transifex.com/sphinx-doc/sphinx-1/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -46,104 +46,104 @@ msgstr "Directorio fuente y directorio destino no pueden ser idénticos"
msgid "Running Sphinx v%s"
msgstr "Ejecutando Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Este proyecto necesita al menos Sphinx v%s y por lo tanto no se puede construir con esta versión."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "creando directorio de salida"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "mientras configura la extensión %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' como se define actualmente en el archivo conf.py no es un Python invocable. Por favor, modifique su definición para que sea una función invocable. Esto es necesario para que el archivo conf.py se comporte como una extensión de Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "cargando traducciones [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "hecho"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "no disponible para mensajes incorporados"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "cargando el ambiente pickled"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "fallo: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Ningún constructor seleccionado, utilizando el valor predeterminado: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "éxitoso"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "finalizo con problemas"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "compilación %s, %sadvertencia (con advertencias tratadas como errores)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "compilación %s, %s advertencias (con advertencias tratadas como errores)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "construir %s, %s advertencia."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "compilación %s, %s advertencias."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "construir %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "la clase de nodo %r ya está registrada, sus visitantes serán reemplazados"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "la directiva %r ya está registrada, esa se reemplazará"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "el rol %r ya está registrado, ese se reemplazará"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -151,12 +151,12 @@ msgid ""
"explicit"
msgstr "la extensión de %s no declara si es seguro para la lectura en paralelo, asumiendo que no es - consulte con el autor de la extensión para comprobar y hacer explícito"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "la extensión %s no es segura para lectura paralela"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -164,70 +164,75 @@ msgid ""
"explicit"
msgstr "la extensión %s no declara si es seguro para la escritura paralela, suponiendo que no lo sea - solicite al autor de la extensión que lo verifique y haga explicito"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "la extensión %s no es segura para escritura paralela"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "realizando serialmente %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "directorio de configuración no contiene un archivo conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "Se encontró un valor de configuración no válido: 'language = None'. Actualice su configuración a un código de idioma válido. Volviendo a definir 'en' (Inglés)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "no se puede reemplazar el ajuste de la configuración del diccionario %r, haciendo caso omiso (utilice %r para definir elementos individuales)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "número no válido %r de valor de configuración %r, haciendo caso omiso"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "no se puede reemplazar los ajustes de configuración %r con tipo no compatible, haciendo caso omiso"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "valor de configuración desconocido %r en anulación, ignorando"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "No hay tal valor de configuración: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Valor de configuración %r ya presente"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Hay un error de sintaxis en su archivo de configuración: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "El archivo de configuración (o uno de los módulos que importa) invocó sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -235,291 +240,328 @@ msgid ""
"%s"
msgstr "Hay un error programable en su archivo de configuración:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "El valor de configuración `source_suffix' espera una cadena de caracteres, una lista de cadena de caracteres o un diccionario. Pero `%r' es dado."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Sección %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Figura %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabla %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Lista %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "El valor de configuración `{name}` tiene que ser uno de {candidates}, pero fue dado `{current}`."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "El valor de configuración `{name}' tiene tipo `{current.__name__}'; esperado {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "El valor de configuración `{name}' tiene el tipo `{current.__name__}', el valor predeterminado es `{default.__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r no fue encontrado, se ignora."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Desde v2.0, Sphinx usa \"index\" como root_doc por defecto. Agregue \"root_doc = 'contents'\" a su archivo conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Evento %r ya presente"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nombre de evento desconocido: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "Manipulador %r para el evento %r lanzó una excepción"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "La extensión %s es requerida por la configuración de needs_extensions, pero esta no es cargada."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Este proyecto necesita la extensión %s por lo menos en la versión %s y por lo tanto no puede ser construido con la versión cargada (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "El nombre del lexer de pigmentos %r se desconoce"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "varios archivos encontrados para el documento \"%s\": %r\nUse %r para la compilación."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Constructor clase %s no tiene ningún atributo \"name\""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Constructor %r ya existe (en el módulo %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Nombre de constructor %s no registrados o disponibles a través del punto de entrada"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Nombre de constructor %s no registrado"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "dominio %s ya esta registrado"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "dominio %s no esta registrado"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "La directiva %r ya fue registrada en el dominio %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "El rol %r ya fue registrado en el dominio %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "El índice %r ya fue registrado en el dominio %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "El %r object_type ya está registrado"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "El %r crossref_type ya está registrado"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r ya está registrado"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser para %r ya está registrado"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Analizador de fuentes para %s no registrado"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Traductor para %r ya existe"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwargs para la función add_node() debe ser una tupla de función (visitar, salir): %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r ya esta registrado"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "el renderizador matemático %s ya está registrado"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "la extensión %r ya se fusionó con Sphinx desde la versión %s; esta extensión se omite."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Excepción original:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "No puede importar la extensión %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "extensión %r no tiene ninguna función setup(); ¿es realmente un módulo de extensión de Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "La extensión %s utilizada por este proyecto necesita al menos la versión de Sphinx v%s; por lo tanto no puede ser construido con esta versión."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "extensión %r devuelve un objeto no soportado de su función setup(); debe devolver un diccionario de metadatos o ninguno"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "número de PEP inválido %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "número RFC inválido %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "tema %r no tiene configuraciones de \"tema\""
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "tema %r no tiene configuraciones de \"heredar\""
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "no encontrado ningún tema llamado %r, heredado por %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "configuración de %s.%s se produce en ninguna de las configuraciones de tema buscado"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "opción de tema no soportada %r fue dada"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "archivo %r o ruta del tema no es un archivo zip válido o no contiene ningún tema"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "sin tema llamado %r encontrado (¿falta el archivo theme.conf?)"
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
+#, python-format
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -535,8 +577,8 @@ msgstr "una imagen adecuada para %s constructor no encontrado: %s"
msgid "building [mo]: "
msgstr "compilando [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "escribiendo salida... "
@@ -585,7 +627,7 @@ msgstr "%d archivos fuente dados en la línea de comandos"
msgid "targets for %d source files that are out of date"
msgstr "los objetivos para %d los archivos fuentes que estan desactualizados"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "compilando [%s]: "
@@ -594,50 +636,50 @@ msgstr "compilando [%s]: "
msgid "looking for now-outdated files... "
msgstr "buscando por archivos no actualizados... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d encontrado"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "no encontrado"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "preparando ambiente"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "verificando consistencia"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "no hay archivos objetivo desactualizados."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "actualizando ambiente: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%sañadido, %s cambiado, %s removido"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "leyendo fuentes... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "docnames para escribir: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "preparando documentos"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -646,36 +688,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "entrada de tabla de contenido duplicada encontrada: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "copiando imágenes... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "no puede leer el archivo de imagen %r: en su lugar, lo copia"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "no se puede copiar archivo de imagen %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "no se puede escribir archivo de imagen %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow no encontrada - copiando archivos de imágenes"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "escribiendo el archivo mimetype..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "escribiendo el archivo META-INF/container.xml..."
@@ -683,470 +725,470 @@ msgstr "escribiendo el archivo META-INF/container.xml..."
msgid "writing content.opf file..."
msgstr "escribiendo el archivo content.opf..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "mimetype desconocido para %s, ignorando"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "escribiendo el archivo toc.ncx..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "escribiendo archivo %s..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "El archivo de resumen está en %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "no hay cambios en versión %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "escribiendo archivo de resumen..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Funciones incorporadas"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Nivel de módulo"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "copiando archivos fuente..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "no se pudo leer %r for para la creación del registro de cambios"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "El constructor ficticio no genera archivos."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "El archivo ePub está en %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "escribiendo el archivo nav.xhtml..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_language\" (o \"language\") no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "el valor de configuración \"epub_uid\" debe ser XML NAME para EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_title\" (or \"html_title\") no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_author\" no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_contributor\" no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_description\" no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_publisher\" no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_copyright\" (or \"copyright\") no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "el valor de configuración \"epub_identifier\" no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "el valor de configuración \"version\" no debe estar vacío para EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "css_file inválido: %r, ignorado"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Los catálogos de mensajes están en %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "objetivos para los archivos de plantillas %d"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "leyendo plantillas... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "escribiendo catálogos de mensajes... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Busque cualquier error en la salida anterior o en el archivo %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "enlace roto: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "Error al compilar expresiones regulares en linkcheck_allowed_redirects: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Las páginas del manual están en %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "no se encontró el valor de configuración \"man_pages\"; no se escribirán las páginas del manual"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "escribiendo"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "El valor de configuración \"man_pages\" hace referencia a un documento desconocido %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Página HTML está en %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "ensamblando documento sencillo"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "escribiendo archivos adicionales"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Los archivos Texinfo están en %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nEjecute el comando 'make' en ese directorio para ejecutarlos a través de makeinfo\n(usa el comando 'make info' aquí para hacer esto automáticamente)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "no se encontró el valor de configuración \"texinfo_documents\"; no se escribirán documentos"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "El valor de configuración \"texinfo_documents\" hace referencia a un documento desconocido %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "procesando %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "resolviendo referencias..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (en "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "copiando archivos de soporte Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "error escribiendo archivo Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Los archivos de texto están en %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "error escribiendo archivo %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Los archivos XML están en %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Los archivos pseudo-XML están en %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "el archivo de información de compilación está roto: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Las páginas HTML están en %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Error al leer la información de compilación del fichero: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d de %B de %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ãndice General"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "índice"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "siguiente"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "anterior"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "generando índices"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "escribiendo páginas adicionales"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "copiando archivos descargables... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "no se puede copiar archivo descargable %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "Error al copiar un archivo en html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "copiar archivos estáticos"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "no se puede copiar archivo estático %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "copiando archivos extras"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "no se puede copiar archivo extra %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Error al escribir el archivo de información de compilación: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "no se pudo cargar el índice de búsqueda, pero no se crearán todos los documentos: el índice estará incompleto."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "página %s coincide con dos patrones en html_sidebars: %r y %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "Se produjo un error Unicode al representar la página %s. Asegúrese de que todos los valores de configuración que contengan contenido que no sea ASCII sean cadenas Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Ha ocurrido un error al renderizar la pagina %s.\nRazón: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "volcar inventario de objetos"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "volcar el índice de búsqueda en %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "js_file inválido: %r, ignorado"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Muchos math_renderers están registrados. Pero no se ha seleccionado math_renderer."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "Desconocido math_renderer %r es dado."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "entrada html_extra_path %r no existe"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "entrada html_extra_path %r se coloca dentro de outdir"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "entrada html_static_path %r no existe"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "entrada html_static_path %r se coloca dentro de outdir"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "archivo de logo %r no existe"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "el archivo %r usado para el favicon no existe"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "documentación de %s - %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Los archivos LaTeX están en %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nEjecuta el comando 'make' en este directorio para compilarlos usando (pdf)latex\n(usa el comando 'make latexpdf' aquí para hacer esto automáticamente)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "no se encontró el valor de configuración \"latex_documents\"; no se escribirán documentos"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "valor de configuración \"latex_documents\" hace referencia a un documento desconocido %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Ãndice"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Versión"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "No se conoce la opción de Babel para el idioma %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "copiando archivos de soporte TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "copiando archivos de soporte TeX..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "copiando archivos adicionales"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Clave de configuración desconocida: latex_elements[%r], ignorada."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Opción de tema desconocida: latex_theme_options[%r], ignorado."
@@ -1161,15 +1203,15 @@ msgstr "%r no tiene configuración de \"tema\""
msgid "%r doesn't have \"%s\" setting"
msgstr "%r no tiene configuración de \"%s\""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1228,8 +1270,8 @@ msgstr "Se puede presentar un informe de error en el rastreador en <https://gith
msgid "job number should be a positive number"
msgstr "número de trabajo debe ser un número positivo"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "Para más información visite <https://www.sphinx-doc.org/>."
@@ -1261,257 +1303,264 @@ msgid "path to output directory"
msgstr "ruta al directorio de salida"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "una lista de archivos específicos para reconstruir. Ignorado si se especifica -a"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "opciones generales"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "constructor a usar (por defecto: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "escribir todos los archivos (por defecto: solo escribir archivos nuevos y modificados)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "no usar un entorno guardado, siempre leer todos los archivos"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "ruta para el entorno en caché y los archivos doctree (predeterminado: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "construir en paralelo con N procesos donde sea posible (el valor especial \"auto\" establecerá N en recuento de CPU)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "ruta del archivo de configuración (conf.py) donde se encuentra (predeterminado: igual que el valor SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "no use ningún archivo de configuración, solomente opciones -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "sobreescribir un ajuste en el fichero de configuración"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "pasar un valor a la plantilla HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "define la etiqueta: incluye bloques \"only\" con TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "modo quisquilloso, advierte sobre todas las referencias faltantes"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "opciones de salida de consola"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "aumentar la verbosidad (puede repetirse)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "sin salida en salida estándar, solo advertencias en los mensajes de error estándar"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "sin salida, ni siquiera advertencias"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "emitir salida de color (predeterminado: detección automática)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "no emite salida de color (predeterminado: detección automática)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "escribir avisos (y errores) al fichero indicado"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "convertir advertencias en errores"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "con -W, sigue adelante cuando recibas advertencias"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "mostrar rastreo completo en excepción"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "ejecutar Pdb en excepción"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "no se puede combinar la opción -a y nombres de archivo"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "no se puede abrir el archivo de advertencia %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "argumento de la opción -D debe estar en la forma nombre=valor"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "argumento de la opción -A debe estar en la forma nombre=valor"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "insertar automáticamente docstrings de los módulos"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "probar automáticamente fragmentos de código en bloques doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "enlace entre la documentación de Sphinx de diferentes proyectos"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "escribir entradas de \"todo\" que se pueden mostrar u ocultar en la compilación"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "verificación para el cubrimiento de la documentación"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "incluir expresiones matemáticas, mostradas como imágenes PNG o SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "incluir matemática, mostrada en el navegador por MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "inclusión condicional de contenido basado en valores de configuración"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "incluir enlaces al código fuente de objetos documentados de Python"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "crear archivo .nojekyll para publicar el documento en páginas GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Por favor, ingrese un nombre de ruta válido."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Por favor, ingrese algún texto."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Por favor, ingrese uno de %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Por favor, ingrese cualquiera de 'y' o 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Por favor, ingrese un archivo de sufijo, por ejemplo, '.rst' o '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Bienvenido a la utilidad de inicio rápido de Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Ingrese los valores para las siguientes configuraciones (solo presione Entrar para\naceptar un valor predeterminado, si se da uno entre paréntesis)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Ruta raíz seleccionada: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Ingrese la ruta raíz para la documentación."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Ruta raíz para la documentación"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Error: un archivo conf.py ya existe en la ruta raíz seleccionada."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart no sobreescribirá proyectos existentes de Sphinx."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Por favor, ingrese una nueva ruta raíz (o ingrese Enter para salir)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Tiene dos opciones para colocar el directorio de compilación para la salida de Sphinx.\nO usas un directorio \"_build\" dentro de la ruta raíz, o separas\ndirectorios \"fuente\" y \"compilación\" dentro de la ruta raíz."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Separar directorios fuente y compilado (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Dentro del directorio raíz, se crearán dos directorios más; \"_templates\"\npara plantillas HTML personalizadas y \"_static\" para hojas de estilo personalizadas y otras archivos\nestáticos. Puede ingresar otro prefijo (como \".\") Para reemplazar el guión bajo."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Prefijo de nombre para directorios de plantillas y estático"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "El nombre del proyecto aparecerá en varios lugares en la documentación construida."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Nombre de proyecto"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Autor(es)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1520,15 +1569,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx tiene la noción de una \"versión\" y un \"lanzamiento\" para el\nsoftware. Cada versión puede tener varios lanzamientos. Por ejemplo, para\nPython, la versión es algo así como 2.5 o 3.0, mientras que el lanzamiento es\nalgo así como 2.5.1 o 3.0a1. Si no necesita esta estructura dual, simplemente\nconfigure ambas con el mismo valor."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Versión del proyecto"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Liberación del proyecto"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1538,21 +1587,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Si los documentos deben escribirse en un idioma que no sea inglés,\npuede seleccionar un idioma aquí por su código de idioma. Sphinx entonces\ntraducir el texto que genera a ese idioma.\n\nPara obtener una lista de códigos compatibles, vea\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Lenguaje del proyecto"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "El sufijo del nombre de archivo para los archivos de fuente. Comúnmente, esto es \".txt\"\no \".rst\". Solo los archivos con este sufijo se consideran documentos."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Sufijo del archivo fuente"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1560,91 +1609,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Un documento es especial porque se considera el nodo superior del\n\"contents tree\", es decir, es la raíz de la estructura jerárquica\nde los documentos. Normalmente, esto es \"index\", pero si su documento \"index\"\nes una plantilla personalizada, también puede establecerlo en otro nombre de archivo."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Nombre del documento maestro (sin sufijo)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Error: el archivo maestro %s ya se ha encontrado en la ruta raíz seleccionada."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart no sobreescribirá el archivo existente."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Ingrese un nuevo nombre de archivo o cambie el nombre del archivo existente y presione Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Indique cuál de las siguientes extensiones de Sphinx deben habilitarse:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Nota: imgmath y mathjax no se pueden habilitar al mismo tiempo. imgmath ha sido deseleccionado."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Se puede generar un archivo Makefile y un archivo de comandos de Windows para que usted\nsolo tiene que ejecutar, por ejemplo, `make html' en lugar de invocar sphinx-build\ndirectamente."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "¿Crear Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "¿Crear archivo de comandos para Windows? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Creando archivo %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "El archivo %s ya existe, omitiendo."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Terminado: se ha creado una estructura de directorio inicial."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Ahora debe completar su archivo maestro %s y crear otros archivos fuente\nde documentación. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Use el archivo Makefile para compilar los documentos, así ejecute el comando:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Use el comando sphinx-build para compilar los documentos, así ejecute el comando:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "donde \"builder\" es uno de los constructores compatibles, por ejemplo, html, latex o linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1654,135 +1703,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nGenere los archivos necesarios para un proyecto Sphinx.\n\nsphinx-quickstart es una herramienta interactiva que hace algunas preguntas sobre su\nproyecto y luego genera un directorio completo de documentación y un ejemplo del archivo\nMakefilepara ser utilizado con el comando sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "modo silencioso"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "raíz del proyecto"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Opciones de estructura"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "si se especifica, separe los directorios de fuentes y de compilación"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "si se especifica, cree un directorio de compilación en el directorio de origen"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "reemplazo para punto en _templates, etc."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Opciones básicas del proyecto"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "nombre del proyecto"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "autores"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "versión del proyecto"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "liberación del proyecto"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "lenguaje del documento"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "sufijo de archivo fuente"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "nombre de documento maestro"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "usar epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Opciones de extensión"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "habilitada extensión %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "habilitar extensiones arbitrarias"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "creación del Makefile y Batchfile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "crear makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "no crear makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "crear batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "no crear batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "use el modo make para Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "no use el modo make para Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Plantillas de proyecto"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "directorio de plantillas para archivos de plantillas"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "definir una variable de proyceto"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "se especifica \"quiet\", pero no se especifica ninguno de \"project\" o \"author\"."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Error: la ruta especificada no es un directorio, o ya existen archivos sphinx."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart solo se genera en un directorio vacío. Por favor, especifique una nueva ruta raíz."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Variable de plantilla inválida: %s"
@@ -1833,47 +1882,47 @@ msgstr "No puede utilizar a \"lineno-match\" con un conjunto desunido de \"líne
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Línea especifico %r: sin líneas tiradas desde el archivo incluido %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "patrón global toctree %r no coincide con ningún documento"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree contiene referencia al documento excluido %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree contiene referencias a documentos inexistentes %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "entrada duplicada encontrada en toctree: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor de la sección: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor del módulo: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Código del autor: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ".. contenido de los reconocimientos no es una lista"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ".. hlist contenido no es una lista"
@@ -1888,82 +1937,10 @@ msgstr "\":file:\" La opción para la directiva csv-table ahora reconoce una rut
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Declaración de C duplicada, también definida en %s:%s.\nLa declaración es '.. c:%s:: %s'."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parámetros"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "Valores devueltos"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Devuelve"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tipo del valor devuelto"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "miembro"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variable"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "función"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "estructura"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "unión"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumeración"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipo"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "parámetro de función"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nuevo en la versión %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1975,346 +1952,423 @@ msgstr "Distinto en la versión %s"
msgid "Deprecated since version %s"
msgstr "Obsoleto desde la versión %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "citación duplicada %s, otra instancia en %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Citación [%s] no está referenciada."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Declaración de C++ duplicada, también definida en %s:%s.\nLa declaración es '.. cpp:%s:: %s'."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parametros de Plantilla"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Lanzamientos"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "clase"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "concepto"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "parámetro de plantilla"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (función incorporada)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (método de %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (clase)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variable global o constante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atributo de %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumentos"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Lanzamientos"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Devuelve"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipo del valor devuelto"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (módulo)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "función"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "método"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "clase"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dato"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atributo"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "módulo"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "duplicada %s descripción de %s, otra %s en %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "etiqueta duplicada de la ecuación %s, otra instancia en %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "No válido math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Muestra"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (opción directiva)"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "directive-option"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rol"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "descripción duplicada de %s %s, otra instancia en %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Declaración de C duplicada, también definida en %s:%s.\nLa declaración es '.. c:%s:: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parámetros"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Valores devueltos"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "miembro"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variable"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "estructura"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "unión"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumeración"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipo"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "parámetro de función"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parametros de Plantilla"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Declaración de C++ duplicada, también definida en %s:%s.\nLa declaración es '.. cpp:%s:: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concepto"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "parámetro de plantilla"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (en el módulo %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (en el módulo %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variable incorporada)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (clase incorporada)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (clase en %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (método de clase de %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (método estático de %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (%s propiedad)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Ãndice de Módulos Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "módulos"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Obsoleto"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "excepción"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "método de la clase"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "método estático"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "propiedad"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "se encontró más de un objetivo para la referencia cruzada %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (obsoleto)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directiva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (opción directiva)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rol)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directiva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "directive-option"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rol"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variables"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "descripción duplicada de %s %s, otra instancia en %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Muestra"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variables de entorno; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Descripción de la opción con formato incorrecto %r, debe verse como \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" o \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "opción de línea de comando %s"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "opción de línea de comando"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "el término del glosario debe ir precedido de una línea vacía"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "los términos del glosario no deben estar separados por líneas vacías"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "el glosario parece estar mal formateado, verifique la sangría"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "termino de glosario"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "gramática simbólica"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "etiqueta de referencia"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variables de entorno"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opción de programa"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "documento"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Ãndice de Módulos"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Página de Búsqueda"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "etiqueta duplicada %s, otra instancia en %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "duplicada %s descripción de %s, otra instancia en %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig está deshabilitado. :numref: se ignora."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "Error al crear una referencia cruzada. No se asigna ningún número: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "el enlace no tiene subtítulo: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "inválido numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "inválido numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "etiqueta indefinida: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "No se pudo crear una referencia cruzada. Un título o subtítulo no encontrado: %r"
@@ -2331,35 +2385,35 @@ msgstr "configuración modificada"
msgid "extensions changed"
msgstr "extensiones modificadas"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "la versión del entorno de compilación no es actual"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "directorio fuente ha cambiado"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Este entorno es incompatible con el generador seleccionado, elija otro directorio doctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Error al escanear los documentos en %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Dominio %r no está registrado"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "documento no está incluido en ningún toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "toctree auto referenciado encontrado. Ignorado."
@@ -2383,39 +2437,39 @@ msgstr "tipo de entrada de índice desconocido %r"
msgid "Symbols"
msgstr "Símbolos"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "referencias circulares de toctree detectadas, ignorando: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree contiene una referencia al documento %r que no tiene título: no se generará ningún enlace"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "el árbol de la tabla de contenido contiene una referencia a un documento no incluido %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "archivo de imagen no legible: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "archivo de imagen %s no legible: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "el archivo de descarga no es legible: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s ya tiene asignados números de sección (¿número de árbol anidado?)"
@@ -2425,7 +2479,7 @@ msgstr "%s ya tiene asignados números de sección (¿número de árbol anidado?
msgid "Would create file %s."
msgstr "Debería crear archivo %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2437,149 +2491,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nMire recursivamente en <MODULE_PATH> para módulos y paquetes de Python y cree\nun archivo reST con directivas automodule por paquete en el <OUTPUT_PATH>.\n\nLos <EXCLUDE_PATTERN>s pueden ser patrones de archivo y/o directorio que serán\nexcluidos de la generación.\n\nNota: Por defecto, este script no sobrescribirá los archivos ya creados."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "ruta al módulo al documento"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "archivo de estilo fnmatch y/o patrones de directorio para excluir de la generación"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "directorio para colocar toda la salida"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "rofundidad máxima de submódulos para mostrar en la tabla de contenido (predeterminado: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "sobreescribir archivos existentes"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "seguir enlaces simbólicos. Potente cuando se combina con el paquete collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "ejecutar la rutina sin crear archivos"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "poner documentación para cada módulo en su propia página"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "incluir \"_private\" en módulos"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "nombre de archivo de la tabla de contenido (predeterminado: módulos)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "no crear un archivo de tabla de contenido"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "no cree encabezados para los paquetes de módulos/paquetes (por ejemplo, cuando las cadenas de documentación docstrings ya los contienen)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "poner la documentación del módulo antes de la documentación del submódulo"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interpretar las rutas del módulo de acuerdo con la especificación de espacios de nombres implícitos en la PEP-0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "sufijo de archivo (por defecto: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "generar un proyecto completo con sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "agregue module_path al sys.path, que se usa cuando se da el parámetro --full"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "nombre del proyecto (predeterminado: nombre del módulo raíz)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "autor(es) del proyecto, utilizado cuando se da el parámetro --full"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "versión del proyecto, utilizado cuando se da el parámetro --full"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "lanzamiento del proyecto, utilizado cuando se da el parámetro --full, por defecto es --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "opciones de extensión"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s no es un directorio."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "expresiones regulares inválidas %r en %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Pruebas de cobertura en las fuentes terminadas, mira los resultados en %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "expresiones regulares inválidas %r en coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "api c indocumentado: %s [%s] en archivo %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "el módulo %s no podía ser importado: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "función python indocumentada: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "clase python indocumentada: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "método python indocumentado: %s :: %s :: %s"
@@ -2603,24 +2657,24 @@ msgstr "'%s' no es una opción pyversion válida"
msgid "invalid TestCode type"
msgstr "tipo de TestCode inválido"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Prueba de doctests en las fuentes terminadas, mira los resultados en %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "sin código/salida en el bloque %s en %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "ignorando el código doctest no válido: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== duraciones de lectura más lentas ======================="
@@ -2631,32 +2685,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "enlace codificado %r podría reemplazarse por un enlace externo (intente usar %r en su lugar)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Directiva Graphviz no puede tener tanto el contenido y un argumento de nombre de archivo"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Archivo externo Graphviz %r no encontrado o la lectura del mismo fallo"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ignorando la directiva \"graphviz\" sin contenido."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "comando dot %r no se puede ejecutar (necesarios para la salida de graphviz), Compruebe la configuración de graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2666,7 +2720,7 @@ msgid ""
"%r"
msgstr "dot salió con error:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2676,27 +2730,27 @@ msgid ""
"%r"
msgstr "dot no produjo un archivo de salida:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "el valor del parámetro graphviz_output_format debe ser uno de 'png', 'svg', pero es %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "dot código %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[gráfica: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[gráfica]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2704,7 +2758,7 @@ msgid ""
"Traceback: %s"
msgstr "No se puede ejecutar el comando de conversión de imagen %r. 'sphinx.ext.imgconverter' requiere ImageMagick por defecto. Asegúrese de que esté instalado o configure la opción 'image_converter' a un comando de conversión personalizado.\n\nRastrear: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2714,173 +2768,178 @@ msgid ""
"%r"
msgstr "convert salió con error:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "el comando convert %r no puede ejecutar, compruebe el valor de configuración image_converter"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "comando LaTeX %r no se puede ejecutar (necesario para la visualización matemática), compruebe la configuración de imgmath_latex"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "comando %s %r no se puede ejecutar (necesario para la visualización matemática), verifique la configuración imgmath_%s"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "visualizar latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "en línea latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "el inventario intersphinx se ha movido: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "cargando inventario intersphinx desde %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "encontró algunos problemas con algunos de los inventarios, pero tenían alternativas de trabajo:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "no se pudo llegar a ninguno de los inventarios con los siguientes problemas:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(en %s versión %s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(en %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "inventario para referencia cruzada externa no encontrado: %s"
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "rol para referencia cruzada externa no encontrado: %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "%s externo: destino de referencia %s no encontrado: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "el identificador de intersphinx %r no es una cadena. Ignorado"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "Error al leer intersphinx_mapping[%s], ignorado: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[fuente]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Por hacer"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "Marca TODO encontrada: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<entrada original>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(La <<entrada original>> se encuentra en %s, línea %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "entrada original"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "resaltando el código del módulo... "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documentos]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Código de módulo"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Código fuente para %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Resumen: código de modulo"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Todos los módulos para los cuales disponen código</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "valor no válido para la opción de pedido de miembro: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "valor no válido para la opción class-doc-from: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "firma inválida para auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "error al formatear argumentos para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: no pudo determinar %s.%s (%r) para ser documentado, se planteó la siguiente excepción:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2888,112 +2947,112 @@ msgid ""
"explicit module name)"
msgstr "no sabe qué módulo importar para el autodocumento %r (intente colocar una directiva \"module\" o \"currentmodule\" en el documento o dar un nombre explícito al módulo)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "Se detecta un objeto simulado: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "error al formatear la firma para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" en el nombre del automodule no tiene sentido"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "argumentos de firma o anotación de retorno dada para automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ debe ser una lista de cadenas, no %r (en el módulo %s) -- ignorando __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "atributo faltante mencionado en la :members: módulo %s, atributo %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "Error al obtener una firma de función para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "Error al obtener una firma de constructor para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Bases: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "falta el atributo %s en el objeto %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "alias de %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "alias de TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "Error al obtener una firma de método para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "Se encontraron __slots__ no válidas en %s. Ignorado."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "Error al analizar un valor de argumento predeterminado para %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "Error al actualizar la firma para %r: parámetro no encontrado: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "Error al analizar type_comment para %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "referencias autosummary excluidas documento %r. Ignorado."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: no se encontró el archivo stub %r. Verifique su configuración de autosummary_generate."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "Un resumen automático con subtítulos requiere la opción :toctree: ignorado."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -3001,26 +3060,26 @@ msgid ""
"%s"
msgstr "autosummary: no se pudo importar %s.\nPosibles pistas:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "fallo al analizar el nombre %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "fallo al importar el objeto %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: archivo no encontrado: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary genera archivos .rst internamente. Pero su source_suffix no contiene archivo .rst. Saltado."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3093,99 +3152,99 @@ msgid ""
"%(default)s)"
msgstr "documentar exactamente los miembros en module __all__ attribute. (por defecto: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumentos de palabras clave"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Ejemplo"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Ejemplos"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Notas"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Otros parámetros"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "Recibe"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Referencias"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Avisos"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Campos"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "conjunto de valores no válidos (falta la llave de cierre): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "conjunto de valor no válido (falta llave de apertura): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "literal de cadena con formato incorrecto (falta la comilla de cierre): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "literal de cadena con formato incorrecto (falta la comilla de apertura): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Atención"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Prudencia"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Peligro"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Error"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Consejo"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Importante"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Nota"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Ver también"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Truco"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Advertencia"
@@ -3217,7 +3276,7 @@ msgid "Table of Contents"
msgstr "Tabla de contenido"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Búsqueda"
@@ -3350,34 +3409,22 @@ msgstr "Próximo tema"
msgid "next chapter"
msgstr "próximo capítulo"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Por favor, active JavaScript para habilitar la funcionalidad\n de búsqueda."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "La búsqueda de varias palabras solo muestra coincidencias que contienen\n todas las palabras."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "buscar"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Resultados de la búsqueda"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Su búsqueda no coincide con ningún documentos. Por favor, asegúrese de que todas las palabras estén correctamente escritas y que usted allá seleccionado las suficientes categorías."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Búsqueda rápida"
@@ -3414,20 +3461,30 @@ msgstr "Cambios en la API C"
msgid "Other changes"
msgstr "Otros cambios"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Resultados de la búsqueda"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Su búsqueda no coincide con ningún documentos. Por favor, asegúrese de que todas las palabras estén correctamente escritas y que usted allá seleccionado las suficientes categorías."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "Búsqueda finalizada, se encontraron ${resultCount} páginas que coinciden con la consulta de búsqueda."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Buscando"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Preparando búsqueda..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", en "
@@ -3448,30 +3505,30 @@ msgstr "Expandir barra lateral"
msgid "Contents"
msgstr "Contenidos"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "Ãndice basado en 4 columnas encontrado. Puede ser un error de extensiones que usted usa: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Pie de página [%s] no está referenciado."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Pie de página [#] no está referenciado."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3483,13 +3540,13 @@ msgid ""
"{1}"
msgstr "referencias inconsistentes en el mensaje traducido. original: {0}, traducido: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "referencias de citas inconsistentes en el mensaje traducido. original: {0}, traducido: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3516,90 +3573,90 @@ msgstr "%s:%s objetivo de referencia no encontrado: %s"
msgid "%r reference target not found: %s"
msgstr "%r objetivo de referencia no encontrado: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "No se pudo recuperar la imagen remota: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "No se pudo recuperar la imagen remota: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Formato de imagen desconocido: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "caracteres fuente no codificables, reemplazando con \"?\": %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "omitido"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "fallado"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "Problema en el dominio %s: se supone que el campo debe usar el rol '%s', pero ese rol no está en el dominio."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "directiva desconocida o nombre de rol: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "tipo de nodo desconocido: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "leyendo error: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "escribiendo error: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Formato de fecha inválido. Cite la cadena con comillas simples si desea generarla directamente: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctree contiene referencia al archivo inexistente %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "excepción al evaluar solamente la expresión directiva: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "rol por defecto %s no encontrado"
@@ -3622,27 +3679,27 @@ msgstr "Cualquier ID no asignado para el nodo %s"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "No se pudo obtener el tamaño de la imagen. La opción :scale: se ignora."
@@ -3659,13 +3716,13 @@ msgstr "demasiado grande :maxdepth:, ignorado."
msgid "document title is not a single Text node"
msgstr "título del documento no es un nodo de Texto único"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "no se encontró el nodo de título en la sección, tema, tabla, advertencia o barra lateral"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Notas a pie de página"
@@ -3684,20 +3741,20 @@ msgstr "la unidad de dimensión %s no es válida. Ignorado."
msgid "unknown index entry type %s found"
msgstr "tipo de entrada de índice desconocido %s encontrado"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[imagen: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[imagen]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "subtítulo no dentro de una figura."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "tipo de nodo no implementado: %r"
diff --git a/sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo b/sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo
index 1a213b5..3512934 100644
--- a/sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/es_CO/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/es_CO/LC_MESSAGES/sphinx.po b/sphinx/locale/es_CO/LC_MESSAGES/sphinx.po
index 858362a..3dfa574 100644
--- a/sphinx/locale/es_CO/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/es_CO/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Colombia) (http://app.transifex.com/sphinx-doc/sphinx-1/language/es_CO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: es_CO\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/et/LC_MESSAGES/sphinx.mo b/sphinx/locale/et/LC_MESSAGES/sphinx.mo
index ce4890c..aa8b6ce 100644
--- a/sphinx/locale/et/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/et/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/et/LC_MESSAGES/sphinx.po b/sphinx/locale/et/LC_MESSAGES/sphinx.po
index 1f89fea..e73f4dc 100644
--- a/sphinx/locale/et/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/et/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Ivar Smolin <okul@linux.ee>, 2013-2022\n"
"Language-Team: Estonian (http://app.transifex.com/sphinx-doc/sphinx-1/language/et/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -41,104 +41,104 @@ msgstr "Lähtekataloog ja sihtkataloog ei tohi olla identsed"
msgid "Running Sphinx v%s"
msgstr "Sphinx v%s käitamine"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "See projekt vajab vähemalt Sphinxi v%s ja seetõttu pole projekti võimalik käesoleva versiooniga ehitada."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "väljundkataloogi loomine"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "tõlgete laadimine [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "valmis"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "serialiseeritud keskkonna laadimine"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "tõrge: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Ehitajat pole valitud, kasutatakse vaikimisi ehitajat: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "oli edukas"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "lõppes probleemidega"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "ehitamine %s, %s hoiatus."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "ehitamine %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "laiendus %s pole rööbiti lugemiseks turvaline"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "laiendus %s pole rööbiti kirjutamiseks turvaline"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "seadistuste kataloog (%s) ei sisalda faili conf.py"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "vigane arv %r seadistuse väärtusele %r, eiratakse"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Puudub määratud seadistusväärtus: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Seadistuste väärtus %r on juba olemas"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Sinu seadistusfailis on süntaksi viga: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Seadistusfail (või mõni selle poolt imporditud moodulitest) kutsus välja sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,291 +235,328 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Sektsioon %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Joonis %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabel %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Nimekiri %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r ei leitud, eiratakse."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Sündmus %r on juba olemas"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Tundmatu sündmuse nimi: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "needs_extensions sätted nõuavad laiendust %s, kuid see pole laaditud."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "See projekt vajab laiendust %s vähemalt versiooniga %s ja seetõttu pole projekti võimalik laaditud versiooniga (%s) ehitada."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Ehitaja klassil %s puudub atribuut \"name\""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Ehitaja %r on juba olemas (moodulis %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Ehitajat nimega %s pole registreeritud"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domeen %s on juba registreeritud"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domeen %s pole veel registreeritud"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser on %r jaoks juba registreeritud"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Lähtekoodi analüsaatorit pole %s jaoks registreeritud"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Algne erind:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Laiendust %s pole võimalik importida"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "erindil %r puudub funktsioon setup(); kas see on päriselt Sphinxi laiendusmoodul?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Pythoni täiustusettepanekud; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
+#, python-format
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr ""
+
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "teemal %r puudub \"theme\" säte"
+msgid "unsupported theme option %r given"
+msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:206
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "teemal %r puudub \"inherit\" säte"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "fail %r teemarajal pole korrektni zip-fail või ei sisalda see teemat"
-#: sphinx/theming.py:85
+#: sphinx/theming.py:226
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:259
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:262
#, python-format
-msgid "unsupported theme option %r given"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:269
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
-msgstr "fail %r teemarajal pole korrektni zip-fail või ei sisalda see teemat"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "teemat nimega %r ei leitud (kas theme.conf on puudu?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -530,8 +572,8 @@ msgstr ""
msgid "building [mo]: "
msgstr "ehitamine [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "väljundi kirjutamine... "
@@ -580,7 +622,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr "%d lähtefaili sihtfailid on aegunud"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "ehitamine [%s]: "
@@ -589,50 +631,50 @@ msgstr "ehitamine [%s]: "
msgid "looking for now-outdated files... "
msgstr "praeguseks aegunud failide otsimine... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "leitud %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "ei leitud"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "kooskõla kontrollimine"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "aegunud sihtfaile pole"
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "keskkonna uuendamine:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "lisatud %s, muudetud %s, eemaldatud %s"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "lähtefailide lugemine..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "dokumentide ettevalmistamine"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -641,36 +683,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "kujutiste kopeerimine... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "kujutise faili %r pole võimalik kopeerida: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "kujutise faili %r pole võimalik kirjutada: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -678,470 +720,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "faili %s kirjutamine..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Ãœlevaatefail asub kataloogis %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "versioonis %s pole muutusi."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "kokkuvõttefaili kirjutamine..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Sisseehitatud"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Mooduli tase"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "lähtefailide kopeerimine..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "vigane css_file: %r, eiratakse"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Sõnumikataloogid asuvad kataloogis %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "%d mallifaili sihtfailid"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "mallide lugemine... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "sõnumikataloogide kirjutamine... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Otsi vigu ülalolevast väljundist või failist %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Juhendi lehed asuvad kataloogis %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "seadistusparameetrit \"man_pages\" ei leitud, juhendi lehti ei kirjutata"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "seadistusparameeter \"man_pages\" viitab tundmatule dokumendile %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML-leht asub kataloogis %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "täiendavate failide kirjutamine"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfo failid asuvad kataloogis %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "seadistusparameetrit \"texinfo_documents\" ei leitud, dokumente ei kirjutata"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "seadistusparameeter \"texinfo_documents\" viitab tundmatule dokumendile %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "viidete lahendamine..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (pealkirjas "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "Texinfo tugifailide kopeerimine"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "viga faili Makefile kirjutamisel: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Tekstifailid asuvad kataloogis %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "viga faili %s kirjutamisel: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XML-failid asuvad kataloogis %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "PseudoXML-failid asuvad kataloogis %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML-lehed asuvad kataloogis %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Viga ehitamise infofaili lugemisel: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d. %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ãœldindeks"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indeks"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "järgmine"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "eelmine"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "indeksite genereerimine"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "täiendavate lehtede kirjutamine"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "allalaaditavate failide kopeerimine..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "staatilist faili %r pole võimalik kopeerida"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "lisafailide kopeerimine"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "lisafaili %r pole võimalik kopeerida"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Viga ehitamise infofaili kirjutamisel: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "lehe %s renderdamisel tekkis Unicode viga. Palun veendu, et kõik mitte-ASCII sisuga seadistusparameetrid on kirjeldatud Unicode stringidena."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "otsinguindeksi tõmmise kirjutamine keelele %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "vigane js_file: %r, eiratakse"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path kirjet %r pole olemas"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path kirje %r asub väljaspool väljundkataloogi"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "logofaili %r pole olemas"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon faili %r pole olemas"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentatsioon"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeX-failid asuvad kataloogis %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nNende jooksutamiseks läbi (pdf)latex programmi käivita selles kataloogis\n'make' (selle automaatseks tegemiseks kasuta `make latexpdf')."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "seadistusparameetrit \"latex_documents\" ei leitud, dokumente ei kirjutata"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "seadistusparameeter \"latex_documents\" viitab tundmatule dokumendile %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indeks"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Redaktsioon"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "TeX-i tugifailide kopeerimine"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "TeX-i tugifailide kopeerimine..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "lisafailide kopeerimine"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1156,15 +1198,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1223,8 +1265,8 @@ msgstr "Vearaportit on võimalik esitada träkkeris aadressil <https://github.co
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1256,257 +1298,264 @@ msgid "path to output directory"
msgstr "väljundkataloogi rada"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "määratud failide uuestiehitamine. Võtme -a korral eiratakse"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "üldsuvandid"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "kasutatav ehitaja (vaikimisi: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "kõikide failide kirjutamine (vaikimisi kirjutatakse ainult uued ja muutunud failid)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "salvestatud keskkonda ei kasutata, alati loetakse kõik failid"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "puhverdatud keskkonna ja dokumendipuu rada (vaikimisi: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "rööbiti ehitamine N protsessiga, kui võimalik (eriväärtus \"auto\" määrab N väärtuseks protsessorite arvu)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "seadistusfaili (conf.py) asukoha rada (vaikimisi sama mis SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "seadistusfaili ei kasutata üldse, ainult -D suvandid"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "seadistusfailis määratud väärtuse asendamine"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "väärtuse edastamine HTML-mallidesse"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
-#: sphinx/cmd/build.py:182
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "konsooliväljundi suvandid"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "hoiatuste (ja vigade) kirjutamine määratud faili"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "hoiatuste muutmine vigadeks"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "erindi korral täieliku tagasijälituse näitamine"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "erindi korral Pdb käivitamine"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "suvandit -a ja failinimesid pole võimalik kombineerida"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "hoiatuste faili %r pole võimalik avada: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D suvandi argument peab olema vormingus nimi=väärtus"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A suvandi argument peab olema vormingus nimi=väärtus"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "moodulite dokumentatsioonistringide automaatne lisamine"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "dokumentatsioonistringides olevate koodijuppide automaattestimine"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "eri projektide Sphinx-dokumentatsiooni omavaheline viitamine"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "\"teha\" sissekannete kirjutamine, mida võib ehitamisega peita või näidata"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "dokumentatsiooni katvuse kontrollid"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "matemaatika kaasamine, mis renderdatakse PNG- või SVG-kujutisteks"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "matemaatika kaasamine, mis renderdatakse veebisirvikus MathJax-i abil"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "sisu tingimuslik kaasamine seadistusparameetrite alusel"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "dokumenteeritud Python-objektide lähtekoodile viitamise kaasamine"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ".nojekyll faili loomine dokumentide avaldamiseks GitHub-i lehtedel"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Palun sisesta mingi tekst."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Palun sisesta kas 'y' või 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Tere tulemast kasutama Sphinx %s lendstardi utiliiti."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Palun sisesta väärtused järgnevate sätete jaoks (kandiliste sulgude vahel\nvõib olla vaikeväärtus, millega nõustumiseks vajuta lihtsalt Enter)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Valitud juurkataloog: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Viga: valitud juurkataloogist leiti olemasolev conf.py."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart ei kirjuta olemasolevaid Sphinx-projekte üle."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Palun sisesta uus juurkataloog (või vajuta Enter lõpetamiseks)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Sphinx'i väljundi ehitamise kataloogi asetamiseks on kaks valikut.\nVõid kasutada kataloogi \"_build\" juurkataloogis või eraldiseisvaid \n\"source\" ja \"build\" katalooge juurkataloogis."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Lähtekoodi ja ehitamise kataloogide eraldamine (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Mallide ja staatilise kataloogi nime eesliide"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Projekti nimi"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Autorite nimed"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Projekti versioon"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Projekti väljalase"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Projekti keel"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Lähtefaili järelliide"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Sinu põhidokumendi nimi (ilma järelliiteta)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Viga: valitud juurkataloogist leiti peafail %s."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart ei kirjuta olemasolevat faili üle."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Palun sisesta uus failinimi või nimeta olemasolev fail ümber ja vajuta Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Märkus: imgmath ja mathjax ei saa korraga lubatud olla. imgmath eemaldati valikust."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Kas luua Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Kas luua Windowsi käsufail? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Faili %s loomine."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Fail %s on juba olemas ja jäetakse vahele."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Lõpetamine: Algne kataloogistruktuur on loodud."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Sa peaks nüüd asustama oma peafaili %s ja looma ülejäänud dokumentatsiooni\nlähtefailid. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Dokumentide ehitamiseks kasuta Makefile, näiteks:\n make ehitaja"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Dokumentide ehitamiseks kasuta käsku sphinx-build, näiteks:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "kus \"ehitaja\" on üks toetatud ehitajatest, nt. html, latex või linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nSphinx-projekti jaoks vajalike failide genereerimine.\n\nsphinx-quickstart on interaktiivne tööriist, mis küsib mõned küsimused Sinu\nprojekti kohta ja seepeale genereerib täieliku dokumentatsioonikataloogi ning\nnäidis-Makefile kasutamiseks koos sphinx-buildiga.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "vaikne režiim"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Struktuuri suvandid"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "kasutamise korral eraldatakse lähtefailide ja ehitamise kataloogid"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Projekti põhisuvandid"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "projekti nimi"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "autorite nimed"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "projekti versioon"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "projekti väljalase"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "dokumendi keel"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "lähtefaili järelliide"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "põhidokumendi nimi"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Laienduste suvandid"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "laienduse %s lubamine"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "suvaliste laienduste määramine"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefile ja Batchfile loomine"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "makefile loomine"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "makefile loomata jätmine"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "batchfile loomine"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "batchfile loomata jätmine"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Projekti loomine mallist"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "mallifailide kataloog"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "malli muutuja kirjeldamine"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Vigane mallimuutuja: %s"
@@ -1828,47 +1877,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Sektsiooni autor: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Mooduli autor: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Koodi autor: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1883,82 +1932,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parameetrid"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Tagastab"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tagastustüüp"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "liige"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "muutuja"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funktsioon"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "loend"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tüüp"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "funktsiooni parameeter"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Uus versioonis %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "Muudetud versioonis %s"
msgid "Deprecated since version %s"
msgstr "Iganenud alates versioonist %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Malli parameetrid"
-
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klass"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (sisseehitatud funktsioon)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s meetod)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klass)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globaalmuutuja või konstant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atribuut)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumendid"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Tagastab"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tagastustüüp"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (moodul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funktsioon"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "meetod"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klass"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "andmed"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribuut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "moodul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "võrrandil %s on topeltsilt, teine instants on %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "Vigane math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Muutujad"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktiiv)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (roll)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktiiv"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "roll"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parameetrid"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "liige"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "muutuja"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "loend"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tüüp"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "funktsiooni parameeter"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Malli parameetrid"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (moodulis %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (moodulis %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (sisseehitatud muutuja)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (sisseehitatud klass)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klass moodulis %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (klassi %s meetod)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s staatiline meetod)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Pythoni moodulite indeks"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moodulid"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Iganenud"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "erind"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klassi meetod"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "staatiline meetod"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (iganenud)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktiiv)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (roll)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktiiv"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "roll"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Muutujad"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "keskkonnamuutuja; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s käsureasuvand"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "käsureasuvand"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "sõnastiku termin"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammatika märk"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "viite silt"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "keskkonnamuutuja"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programmi suvand"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokument"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Mooduli indeks"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Otsinguleht"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "vigane numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "vigane numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2326,35 +2380,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "See keskkond pole valitud ehitajaga ühilduv, palun vali mõni teine dokumendipuu kataloog."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "dokument pole ühegi sisukorrapuu osa"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2378,39 +2432,39 @@ msgstr ""
msgid "Symbols"
msgstr "Sümbolid"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "kujutise fail pole loetav: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "kujutise fail %s pole loetav: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2420,7 +2474,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "laienduse suvandid"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s pole kataloog."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Lähtefailide katvustestimine on lõppenud, vaata tulemusi failist %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2598,24 +2652,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr "vigane TestCode tüüp"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Lähtefailide doctest-testimine on lõppenud, vaata tulemusi failist %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "vigase doctest koodi eiramine: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz direktiivil ei tohi samaaegselt olla argumendid content ja filename"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Välist Graphviz-faili %r ei leitud või esines tõrge selle lugemisel"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ilma sisuta \"graphviz\" direktiivi eiramine."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot käsku %r pole võimalik käivitada (vajalik graphvizi väljundi jaoks), kontrolli graphviz_dot sätteid"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format peab olema kas 'png' või 'svg', kuid mitte %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[joonis: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[joonis]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "teisendamise käsku %r pole võimalik käivitada, kontrolli image_converter sätteid"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(projektis %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[lähtekood]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Teha"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "Leitud TEHA kirje: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<algne kirje>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<algne kirje>> asub failis %s, real %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "algne kirje"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumentatsioon]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Mooduli kood"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s lähtekood</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Ãœlevaade: mooduli kood"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Kõik lähtekoodiga moodulid</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Põlvnemine: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,25 +3055,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "tõrge objekti %s importimisel"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Võtmesõnadega argumendid"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Näide"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Näited"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Märkused"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Tähelepanu"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Ettevaatust"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Oht"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Viga"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Vihje"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Tähtis"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Märkus"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Vaata ka"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Nõuanne"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Hoiatus"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr "Sisukorratabel"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Otsing"
@@ -3345,34 +3404,22 @@ msgstr "Järgmine teema"
msgid "next chapter"
msgstr "järgmine jaotis"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Otsingu võimaldamiseks tuleb aktiveerida JavaScript."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "otsi"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Otsingu tulemused"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Sinu otsingule ei vastanud ükski dokument. Palun veendu, et kõik sisestatud sõnad on õigesti kirjutatud ja sa oled valinud piisavalt kategooriaid."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Kiirotsing"
@@ -3409,20 +3456,30 @@ msgstr "C API muutused"
msgid "Other changes"
msgstr "Ülejäänud muutused"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Otsingu tulemused"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Sinu otsingule ei vastanud ükski dokument. Palun veendu, et kõik sisestatud sõnad on õigesti kirjutatud ja sa oled valinud piisavalt kategooriaid."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Otsimine"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Otsingu ettevalmistamine..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3443,30 +3500,30 @@ msgstr "Näita külgriba"
msgid "Contents"
msgstr "Sisukord"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Tundmatu pildivorming: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "viga lugemisel: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "viga kirjutamisel: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3617,27 +3674,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3654,13 +3711,13 @@ msgstr ":maxdepth: on liiga suur ja seda eiratakse."
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Joonealused märkused"
@@ -3679,20 +3736,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[pilt: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[pilt]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/eu/LC_MESSAGES/sphinx.mo b/sphinx/locale/eu/LC_MESSAGES/sphinx.mo
index 4fb8171..9a39b7a 100644
--- a/sphinx/locale/eu/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/eu/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/eu/LC_MESSAGES/sphinx.po b/sphinx/locale/eu/LC_MESSAGES/sphinx.po
index b88884a..2ec3332 100644
--- a/sphinx/locale/eu/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/eu/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Asier Iturralde Sarasola <asier.iturralde@gmail.com>, 2018\n"
"Language-Team: Basque (http://app.transifex.com/sphinx-doc/sphinx-1/language/eu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: eu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Hobekuntza Proposamena; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modulu maila"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (hemen: "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%Y %b %d"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Indize orokorra"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indizea"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "hurrengoa"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "aurrekoa"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentazioa"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indizea"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Argitalpena"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Atalaren egilea: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Moduluaren egilea: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Kodearen egilea: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Egilea:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,82 +1930,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametroak"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Itzultzen du"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Itzulketa mota"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "partaidea"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "aldagaia"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funtzioa"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makroa"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "mota"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Berria %s bertsioan"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "%s bertsioan aldatuta"
msgid "Deprecated since version %s"
msgstr "%s bertsiotik aurrera zaharkituta"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Jaurtitzen du"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasea"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metodoa)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasea)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (aldagai globala edo konstantea)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atributua)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumentuak"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Jaurtitzen du"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Itzultzen du"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Itzulketa mota"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modulua)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funtzioa"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metodoa"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasea"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "datuak"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atributua"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modulua"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Aldagaiak"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Goratzen du"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rola)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr ""
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rola"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametroak"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "partaidea"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "aldagaia"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makroa"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "mota"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s moduluan)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s moduluan)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasea %s-(e)n)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s klaseko metodoa)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s metodo estatikoa)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python moduluen indizea"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduluak"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Zaharkitua"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "salbuespena"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klaseko metodoa"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "metodo estatikoa"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (zaharkitua)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rola)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rola"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Aldagaiak"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Goratzen du"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "inguruneko aldagaia; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "glosarioko terminoa"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "gramatikako token-a"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "erreferentzia etiketa"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "inguruneko aldagaia"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programako aukera"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Moduluen indizea"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Bilaketa orria"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[iturburua]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Egitekoa"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "jatorrizko sarrera"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumentazioa]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Moduluko kodea"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s(r)en iturburu kodea</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Gainbegirada: moduluko kodea"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Kodea eskuragarri duten modulu guztiak</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Adi"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Kontuz"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Arriskua"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Errorea"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Argibidea"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Garrantzitsua"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Oharra"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Ikusi baita ere"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Iradokizuna"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Kontuz"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Bilatu"
@@ -3343,34 +3402,22 @@ msgstr "Hurrengo gaia"
msgid "next chapter"
msgstr "hurrengo kapitulua"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Mesedez, gaitu JavaScript-a bilaketa erabili ahal izateko."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "bilatu"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Bilaketa emaitzak"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Bilaketa azkarra"
@@ -3407,20 +3454,30 @@ msgstr "C API aldaketak"
msgid "Other changes"
msgstr "Beste aldaketak"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Bilaketa emaitzak"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3441,30 +3498,30 @@ msgstr "Alboko barra luzatu"
msgid "Contents"
msgstr "Edukiak"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Oin-oharrak"
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[irudia]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/fa/LC_MESSAGES/sphinx.mo b/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
index 68e026b..d48898d 100644
--- a/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fa/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fa/LC_MESSAGES/sphinx.po b/sphinx/locale/fa/LC_MESSAGES/sphinx.po
index 58d1cb5..4ff9ae1 100644
--- a/sphinx/locale/fa/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fa/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Hadi F <h_adi_f@yahoo.com>, 2020-2021\n"
"Language-Team: Persian (http://app.transifex.com/sphinx-doc/sphinx-1/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -41,104 +41,104 @@ msgstr "شاخه‌های مبدأ و مقصد نمی توانند یکسان ب
msgid "Running Sphinx v%s"
msgstr "اجرای اسÙینکس نگارش %s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "این پروژه دست Ú©Ù‡ به اÙینکس نگارش%s نیاز دارد Ùˆ برای همین با این نسخه قابل ساخت نیست."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "ایجاد پوشه ی برون داد"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "در حال راه اندازی اÙزونه‌ی%s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' آن طور Ú©Ù‡ در conf.py تعری٠شده شیئ قابل Ùراخوانی پایتون نیست. لطÙاً تعریÙØ´ را تغییر دهید تا تابع قابل Ùراخوان پایتون شود. این کار لازمه‌ی conf.py است تا به عنوان اÙزنه‌ی اسÙینکس کار کند."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "بارگذاری ترجمه ها [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "انجام شد"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "برای پیام‌های داخلی در دسترس نیست"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "بارگذاری محیط pckle شده"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "شکست خورد: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "هیچ سازنده‌ای برگزیده نشده، استÙاده از قالب خروجی پیش‌Ùرض: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "موÙّقیّت‌آمیز بود"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "انجام شد ولی با مشکل"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "ساخت %sØŒ %s هشدار (با هشدار به عنوان خطا رÙتار می‌شود)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "ساخت %sØŒ %s هشدار (با هشدار به عنوان خطا رÙتار می‌شود)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "ساخت %s، %s هشدار."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "ساخت %s، %s هشدار."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "ساخت %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "بست کلاس %r در حال حاضر ثبت نام شده است، بازدیدکنندگان این پیوند نادیده گرÙته خواهد شد"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "دستور %r از قبل ثبت شده Ú©Ù‡ مقدار قبلی نادیده گرÙته خواهد شد"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "نقش %r از قبل ثبت شده Ú©Ù‡ مقدار قبلی نادیده گرÙته خواهد شد"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr "اÙزونه‌ی %s مشخّص نکرده Ú©Ù‡ آیا برای خواندن موازی امن هست یا نه. Ú©Ù‡ Ùرض می‌گیریم نیست. لطÙاً از نویسنده‌ی اÙزونه بخواهید این موضوع را بررسی Ùˆ آن را مشخّص کند"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "اÙزونه ÛŒ %sبرای خواندن موازی امن نیست"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr "اÙزونه‌ی %s مشخّص نکرده Ú©Ù‡ آیا برای نوشتن موازی امن هست یا نه. Ú©Ù‡ Ùرض می‌گیریم نیست. لطÙاً از نویسنده‌ی اÙزونه بخواهید این موضوع را بررسی Ùˆ آن را مشخّص کند"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "اÙزونه‌ی %s برای نوشتن موازی امن نیست"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "انجام چندباره‌ی %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "شاخه‌ی پیکربندی(%s)، پرونده‌ی conf.py را ندارد"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "امکان لغو تنظیمات پیکربندیdictionary %r ØŒ نادیده گرÙته می‌شود (برای تعیین تک تک عناصر %r را به کار ببرید)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "شماره نامعتبر %r برای پیکربندی مقدار %rØŒ نادیده گرÙته می‌شود"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "امکان لغو تنظیمات پیکربندی %r با نوع پشتیبانی نشده نبود، نادیده گرÙته می‌شود"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "مقدار پیکربندی ناشناخته %r در ابطال، نادیده گرÙته شد"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "چنین مقداری برای پیکربندی نبود: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "مقدار پیکربندی %r از قبل موجود است"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "خطای نحوی در پرونده‌ی پیکربندی شما وجود دارد: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "پرونده‌ی پیکربندی (یا یکی از ماژول هایی Ú©Ù‡ وارد Ù…ÛŒ کند) sys.exit() را Ùراخواند"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,291 +235,328 @@ msgid ""
"%s"
msgstr "یک خطای قابل برنامه ریزی در پرونده‌ی پیکربندی شما وجود دارد:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "مقدار پیکربندی 'source_suffix' انتظار یک رشته، لیست رشته ها، یا Ùرهنگ لغت را داشت. اما '%r' داده شده است."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "بخش%s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Ø´Ú©Ù„ %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "جدول %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Ùهرست %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "مقدار پیکربندی '{name}' باید یکی از {candidates} باشد، اما '{current}' داده شده."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "مقدار پیکربندی '{name}' دارای نوع '{current.__name__}' است، ولی انتظار می‌رÙت {permitted} می‌بود."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "مقدار پیکربندی '{name}' دارای نوع '{current.__name__}' است، حالت پیش‌Ùرض {permitted} است."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "دامنه‌ی اصلی %r یاÙت نشد، نادیده گرÙته می‌شوند."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "از زمان نسخه‌ی Û² تا به حال، اسÙیکنس به صورت پیش Ùرض از \"index\" به عنوان ریشه‌ی سند(root_doc) استÙاده می‌کند. لطÙاً \"root_doc = 'contents'\" را به پرونده conf.py تان اضاÙÙ‡ کنید."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "رویداد %r در حال حاضر موجود است"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "نوع اتÙاق نامشخّص است: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "مدیر %r برای رویداد %r یک باعث ایراد شد"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "تنظیمات needs_extensions (نیازهای اÙزونه) اÙزونه‌ی %s را نیاز دارد، ولی بارگذاری نمی شود."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "این پروژه اÙزونه‌ی %s (دست Ú©Ù… نسخه‌ی %s) را نیاز دارد، بنابراین نمی تواند با نسخه بارگذاری شده (%s) ساخته شود."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "نام رنگ‌مایه خوان %r شناخته شده نیست"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "برای سند \"%s\": %r پرونده های متعدد یاÙت شده \nاز %r برای ساخت استÙاده کنید."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "کلاس سازنده %s هیچ ویژگی‌ای به عنوان \"name\" ندارد"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "سازنده %r در حال حاضر وجود دارد (در پیمانه‌ی %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "نام سازنده %s یا ثبت شده نیست Ùˆ یا Ùقط از طریق نقطه ورود در دسترس است"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "نام سازنده %s ثبت نشده است"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "دامنه ی %sپیش تر ثبت شده"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "دامنه %s هنوز ثبت نشده است"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "دستورالعمل %r قبلاً برای دامنه %s ثبت شده"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "نقش %r قبلاً برای دامنه %s ثبت شده"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "شاخص %r قبلاً برای دامنه %s ثبت شده"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "نوع شیئ (object_type) %r قبلاً برای دامنه ثبت شده"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "ارجاع متقابل (crossref_type) %r قبلاً ثبت شده"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "پسوند (source_suffix) %r قبلاً ثبت شده است"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "تحلیل‌گر منبع (source_parser) %r قبلاً ثبت شده است"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "تجزیه کننده مبدإ برای %s ثبت نشده است"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "در حال حاضر برای %r مترجم وجود دارد"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "مؤلّÙه‌های کلیدی برای تابع add_node() باید تاپل تابعی (بازدید، خروج) باشند: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "بست قابل شمارش (enumerable_node) %r قبلاً ثبت شده است"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "ترسیم‌گر ریاضی %s قبلاً ثبت شده"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "اÙزونه‌ی %r از نسخه‌ی %s اسÙینکس به بعد، در آن ادغام شده؛ بنابراین نادیده گرÙته می‌شود."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "ایراد اصلی:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "امکان وارد کردن اÙزونه‌ی %s نبود"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "اÙزونه‌ی %r هیچ تابع setup()ÛŒ ندارد؛ آیا این مورد واقعاً یک پیمانه‌ی اÙزونه‌ی اسÙینکس است؟"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "اÙزونه‌ی %s Ú©Ù‡ در این پروژه استÙاده شده دست Ú©Ù… نیازمند اسÙینکس نسخه‌ی %s است؛ بنابراین با این نسخه قابل ساخت نیست."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "اÙزونه‌ی %r شیئ پشتیبانی نشده‌‌ای از تابع setup()Ø´ برگرداند؛ در حالی Ú©Ù‡ Ù…ÛŒ بایست مقدار تهی/هیچ Ùˆ یا یک دیکشنری Ùراداده‌ برمی‌گرداند"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "زمینه ÛŒ %r Ùاقد تنظیمات است"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "زمینه‌ی %r تنظیمات به ارث بری ندارد"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "هیچ زمینه‌ای به نام %r پیدا نشد، که با %r جایگزین شود"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "تنظیمات %s. %s در هیچ یک از پیکربندی‌های جستجو شده رخ نمی‌دهد"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "گزینه‌ی پشتیبانی نشده‌ی زمینه %r داده شده"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "پرونده‌ی %r که مسیر زمینه به آن اشاره دارد یا پرونده زیپ معتبری نیست یا هیچ زمینه‌ای درونش ندارد"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "هیچ زمینه‌ای با نام %r پیدا نشد(آیا پرونده theme.conf گم شده؟)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -530,8 +572,8 @@ msgstr "تصویر مناسبی برای سازنده‌ی %s پیدا نشد: %
msgid "building [mo]: "
msgstr "ساخت پرونده‌ی [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "نوشتن برون‌داد... "
@@ -580,7 +622,7 @@ msgstr "پرونده‌های منبع %d داده شده در خط Ùرمان"
msgid "targets for %d source files that are out of date"
msgstr "مقصد‌های %d پرونده‌های منبعی هستند که منسوخ شده‌اند"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "ساخت [%s]: "
@@ -589,50 +631,50 @@ msgstr "ساخت [%s]: "
msgid "looking for now-outdated files... "
msgstr "در پی پرونده‌هایی که الآن منسوخ هستند... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d تا مورد پیدا شد"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "چیزی پیدا نشد"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "بارگذاری محیط pickle شده"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "بررسی ثبات"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "هیچ مقدار تاریخ منسوخ نیست."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "به روز رسانی محیط: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s اضاÙÙ‡ شد، %s تغییر کرد، %s حذ٠شد"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "خواندن منبع‌ها... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "نام مستندات برای نوشتن: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "آماده سازی اسناد"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -641,36 +683,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "عنوان تکراری در Ùهرست مطالب پیدا شد:%s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "در حال رونوشت از تصاویر... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "امکان خواندن پرونده‌ی تصویری %r نبود: در عوض کپی می‌شود"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "نمی تواند پرونده‌ی تصویر %r: %s را کپی کند"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "نمی تواند پرونده‌ی تصویری %r: %s را بنویسد"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow پیدا نشد- رونوشت برداشتن از پرونده‌های تصویری"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "نوشتن پرونده‌های نوع رسانه..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "نوشتن پرونده META-INF/container.xml..."
@@ -678,470 +720,470 @@ msgstr "نوشتن پرونده META-INF/container.xml..."
msgid "writing content.opf file..."
msgstr "نوشتن پرونده‌ی content.opf..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "نوع رسانه‌ی ناشناخته %sØŒ نادیده گرÙته شد"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "نوشتن پرونده‌ی خلاصه toc.ncx..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "نوشتن پرونده‌ی %s..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "پرونده‌ی بازبینی در پوشه‌ی %(outdir)s است."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "بدون تغییرات در نسخه‌ی %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "نوشتن پرونده‌ی خلاصه..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "درونی سازی"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "در سطح ماژول"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "رونوشت از پرونده‌های مبدأ..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "نمی‌توان %r را برای ایجاد گزارش تغییرات خواند"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "سازنده‌ی بدلی هیچ پرونده‌ای تولید نمی کند."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "پرونده‌ی ePub در پوشه‌ی %(outdir)s است."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "نوشتن پرونده‌ی nav.xhtml..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "مقدار پیکربندی زبان پرونده epub (\"epub_language\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "مقدار پیکربندی شناسه‌ی یکتای انتشار الکترونیکی (\"epub_uid\") باید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) یک XML NAME باشد"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "مقدار پیکربندی عنوان (\"html_title\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "مقدار پیکربندی مؤلّ٠(\"epub_author\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "مقدار پیکربندی حامی (\"epub_contributor\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "مقدار پیکربندی توضیحات (\"epub_description\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "مقدار پیکربندی ناشر (\"epub_publisher\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "مقدار پیکربندی حق انتشار (\"epub_copyright\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "مقدار پیکربندی شناسه (\"epub_identifier\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "مقدار پیکربندی ویراست (\"version\") نباید برای نسخه‌ی سوم پرونده‌های انتشار الکترونیک(EPUB3) خالی باشد"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "پرونده‌ی css نامعتبر%r: نادیده گرÙته می‌شود"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "سیاهه‌های پیام‌ها در %(outdir)s است."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "مقصد‌های قالب پرونده‌های %d"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "خواندن قالب‌ها... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "نوشتن سیاهه‌های پیام... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "به دنبال هر یک از خطاهای بالا در یا در برون‌داد و یا در %(outdir)s/output.txt بگردید"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "پیوند خراب: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "شکست در گردآوری عبارات باقاعده در linkcheck_allowed_redirects: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "صÙحات راهنما در %(outdir)s است."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "هیچ مقداری برای تنظیمات «صÙحات راهنما» ا نشد؛ بنابراین هیچ صÙحه‌ی راهنمایی نوشته نخواهد شد"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "در حال نوشتن"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "پیکربندی مقدارهای «صÙحات راهنما» به سند ناشناخته‌ای ارجاع می‌دهند %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "صÙحه HTML در %(outdir)s است."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "سر جمع کرد تک سند"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "نوشتن پرونده‌های اضاÙÛŒ"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "پرونده‌ی اطّلاعات متن در پوشه‌ی %(outdir)s است."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nدر آن شاخه Ùرمان 'make' را اجرا کنید تا این‌ها رh با makeinfo اجرا کند\n(برای انجام خودکار `make info' را به کار ببرید)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "هیچ تنظیماتی برای «صÙحات راهنما» پیدا نشد؛ بنابراین هیچ صÙحه‌ی راهنمایی نوشته نخواهد شد"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "مقدار پیکربندی اطّلاعات متن سندها (texinfo_documents) به سند ناشناخته‌ی %s ارجاع می‌دهد"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "در حال پردازش %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "حل ارجاع‌ها..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (در "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "رونوشت از پرونده‌های با پشتیبانی اطلاعات متن"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "خطای نوشتن پرونده‌ی ساخت (Makefile) : %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "پرونده‌ی متنی در پوشه‌ی %(outdir)s است."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "خطای نوشتن پرونده: %s, %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "پرونده‌ی XML در پوشه‌ی %(outdir)s است."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "پرونده‌های شبه XML در پوشه‌ی %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "پرونده‌ی اطّلاعات ساخت خراب است: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "صÙحات HTML در %(outdir)s است."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "شکست در خواندن پرونده‌ی اطّلاعات ساخت: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ùهرست Ú©Ù„ÛŒ"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "Ùهرست"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "بعدی"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "قبلی"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "تولید نمایه‌ها"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "نوشتن صÙحات اضاÙÛŒ"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "رونوشت از پرونده‌های قابل دریاÙت... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "نمی تواند از پرونده‌ی قابل دریاÙت %r: %s رونوشت بگیرد"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "شکست در رونوشت یک پرونده‌ی به html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "رونوشت از پرونده‌های ثابت"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "نمی تواند از پرونده‌ی ثابت %r رونوشت بگیرد"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "رونوشت برداری از پرونده‌های اضاÙÛŒ"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "نمی تواند از پرونده‌ی اضاÙه‌ی %r رونوشت بگیرد"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "شکست در نوشتن پرونده‌ی اطّلاعات ساخت: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "نمایه‌ی جستجو نمی‌تواند بارگزاری شود، ولی برای همه‌ی مستندات ساخته‌ نمی‌شود: نمایه‌ ناقص خواهد بود."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "صÙحه‌ی %s با دو الگو در نوار کناری صÙحه (html_sidebars) هم‌خوانی دارد: %r Ùˆ%r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "هنگام ارائه‌ی صÙحه‌ی %s خطای یونیکد رخ داد. لطÙاً اطمینان حاصل کنید Ú©Ù‡ تمام مقدارهای پیکربندی‌ها دارای محتوای غیر اَسکی، رشته‌متن‌های یونکد هستند."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "خطایی در نمایش صÙحه‌ی %s رخ داد.\nعلّت: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "خالی کردن Ùهرست اشیاء"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "خالی کردن نمایه‌ی جستجو در %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "پرونده‌ی js نامعتبر%r: نادیده گرÙته می‌شود"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "ارا‌ئه کننده‌های ریاضی زیادی ثبت شده‌اند، ولی هیچ کدام انتخاب نشده."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "نمایش‌دهنده‌ی ریاضی نامشخّص %r داده شده."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "مدخل مسیر اضاÙÛŒ (html_extra_path) %r وجود ندارد"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "مدخل مسیر اضاÙÛŒ (html_extra_path) %r درون شاخه‌ی خارجی قرار دارد"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "مدخل مسیر ثابت (html_static_path) %r وجود ندارد"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "مدخل مسیر ثابت (html_static_path) %r درون شاخه‌ی خارجی قرار دارد"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "پرونده‌ی آرم %r وجود ندارد"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "پرونده‌ی آیکون مورد علاقه %r وجود ندارد"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "مستندات %s%s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "پرونده‌ی LaTeX در پوشه‌ی %(outdir)s است."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nدر آن شاخه Ùرمان 'make' را اجرا کنید تا این‌ها را با لتکس(pdf) اجرا کند\n(برای انجام خودکار `make latexpdf' را به کار ببرید)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "هیچ مقدار پیکربندی اسناد لتکسی (latex_documents) پیدا نشد؛ بنابراین هیچ سندی نوشته نخواهد شد"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "مقدار پیکربندی سندهای لتکس (latex_documents) به سند ناشناخته‌ی %s ارجاع می‌دهد"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Ùهرست"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "انتشار"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "بدون گزینه‌ی Babel شناخته شده برای زبان %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "رونوشت از پرونده‌های پشتیبانی لتکس"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "رونوشت از پرونده‌های پشتیبانی لتکس..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "رونوشت برداری از پرونده‌های اضاÙÛŒ"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "کلید پیکربندی ناشناخته: latex_elements[%r]ØŒ نادیده گرÙته می‌شود."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "کلید زمینه‌ی ناشناخته: latex_theme_options[%r]ØŒ نادیده گرÙته می‌شود."
@@ -1156,15 +1198,15 @@ msgstr "%r Ùاقد تنظیمات زمینه است"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r Ùاقد تنظیمات \"%s\" است"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1223,8 +1265,8 @@ msgstr "گزارش اشکال می تواند در ردیاب در مسیر <htt
msgid "job number should be a positive number"
msgstr "شماره‌ی کار باید یک عدد مثبت باشد"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "برای اطّلاعات بیشتر به <https://www.sphinx-doc.org/> بروید."
@@ -1256,257 +1298,264 @@ msgid "path to output directory"
msgstr "مسیری برای شاخه‌ی برون داد"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "لیست پرونده‌هایی Ú©Ù‡ قرار است دوباره ساخته شوند. اگر با -a مشخّص شده باشند نادیده گرÙته می‌شوند"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "گزینه‌های کلی"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "قالب سازنده مورد استÙاده (پیش‌Ùرض:html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "نوشتن همه‌ی پرونده‌ها (پیش‌گزیده: Ùقط پرونده‌های جدید نو تغییر یاÙته را بنویس)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "از محیط ذخیره شده استÙاده نکن، همیشه همه پرونده ها را بخوان"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "مسیر برای محیط ذخیره‌ شده Ùˆ پرونده‌های doctree (پیش Ùرض: OUTPUTDIR /.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "درصورت امکان ساخت به صورت موازی با N Ùرآیند پردازشی (مقدار ویژه‌ی «خودکار» شمار N را به تعداد پردازنده تنظیم می‌کند)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "مسیر جایی که پرونده‌ی پیکربندی (conf.py) قرار دارد ( پیش‌گزیده: مثل پوشه‌ی منبع)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "هیچ پرونده‌ی پیکربندی‌ای استÙاده نکن، Ùقط گزینه‌ی -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "نادیده گرÙتن تنظیماتی در پرونده‌ی پیکره‌بندی"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "مقداری را به قالب‌های HTML بدهید"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "تعری٠برچسب: «Ùقط» تکّه‌های با برچسب گنجانده شود"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "حالت ریزبینانه، هشدار درباره‌ی همه‌ی ارجاع‌های ناپیدا"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "گزنیه‌های برون‌داد میز Ùرمان"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "اÙزایش ارائه‌ی جزئیّات (Ù…ÛŒ تواند تکرار شود)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "بدون برون‌داد در درگاه خروجی استاندارد(stdout)ØŒ Ùقط هشدارها در درگاه استاندارد خطاها (stderr)"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "بدون هیچ برون‌داد، حتّی بدون هشدار"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "خروجی رنگ شده منتشر شود (پیش‌Ùرض: تشخیص خودکار)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "خروجی رنگ شده منتشر نشود (پیش‌Ùرض: تشخیص خودکار)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "نوشتن هشدارها (و خطاها) در پرونده‌ی داده شده"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "تغییر هشدارها به خطاها"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "با سوییچ -WØŒ در هنگام گرÙتن هشدار ادامه بده"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "نمایش گزارش کامل ردیابی ایراد"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "ایراد در اجرای Pdb"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "نمی توان گزینه‌ی -a را با نام پرونده‌ها ترکیب کرد"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "امکان باز کردن پرونده هشدار نبود %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "نشانوند گزینه‌ی D- می‌بایست در قالب نام=مقدار (name=value) باشد"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "نشانوند گزینه‌ی A- می‌بایست در قالب نام=مقدار (name=value) باشد"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "درج خودکار رشته‌مستندات را از پیمانه‌ها"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "آزمایش خودکار تکّه‌کدها در قسمت‌های مختل٠پیمانه‌ی doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "پیوند بین اسناد Sphinx از پروژه های گوناگون"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "نوشتن مدخل‌های لیست اقدام‌ها (\"todo\")که در ساخت می تواند نشان داده و یا پنهان شوند"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "بررسی برای پوشش اسناد"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "گنجاندن رابطه‌های ریاضی که در قالب PNG یا SVG به نمایش در آمده"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "گنجاندن رابطه‌های ریاضی که MathJax در مرورگر نمایش در آورده"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "گنجاندن شرطی محتوا بر اساس مقادیر پیکربندی"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "گنجاندن ویندهای کد منبع اشیاء مستند شده‌ی پایتون"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "ساخت پرونده‌ی nojekyll برای انتشار سند در صÙحات گیت-هاب"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "لطÙاً نام مسیر معتبری را وارد کنید."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "لطÙاً متنی وارد کنید."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "لطÙاً یکی از %s وارد کنید."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "لطÙاً یا y Ùˆ یا n وارد کنید."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "لطÙاً یک پسوند را وارد کنید، مثل: '.rst' یا '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "به ابزار شروع سریع اسÙینکس %s خوش آمدید."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "لطÙاً مقدارهای تنظیمات زیر را وارد کنید\n(اگر مقدار پیش‌گزیده‌ای درون داده کروشه شده بود، برای برای پذیرش آن Ùقط کلید Enter‌را Ùشار دهید)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "مسیر برگزیده‌ی ریشه‌ی مستندات: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "مسیر ریشه‌ی مستندات را وارد کنید."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "مسیر ریشه‌ی مستندات"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "خطا: در مسیر ریشه‌ی انتخاب شده‌، پرونده‌ی conf.pyی دیگری یپدا شد."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "ابراز شروع سریع اسÙینکس روی پروژه‌های از قبل موجود اسÙینکس بازنویسی نمی‌کند."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "لطÙاً یک مسیر ریشه‌ی جدید وارد کنید (یا برای خروج Enter‌ را بزنید)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "شما برای تعیین شاخه‌ی ساخت برای برون‌داد اسÙینکس دو گزینه دارید.\nیا از شاخه‌ای با نام \"_build\" درون شاخه‌ی ریشه استÙاده کنید،\nÙˆ یا شاخه‌های را درون یک مسیر ریشه با نام‌های منبع (source) Ùˆ ساخت (build) جدا کنید."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "شاخه‌های منبع و ساخت از یکدیگر جدا شوند؟(y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "درون شاخه‌ی ریشه، دو شاخه‌ی دیگر ساخته خواهد شد؛\n\"_templates\" برای قالب‌های سÙارشی HTML Ùˆ \"_static\" برای قالب برگه‌ها Ùˆ بقیّه‌ی پرونده‌های ثابت.\nشما می‌توانید پیشوند دیگری (مانند «.») برای جایگزینی نویسه‌ی خط به کار ببرید."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "برای شاخه‌های قالب‌ها (templates) و ثابت‌ها (static) نویسه‌ی پیشوندی را بنویسید"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "نام پروژه در چندین جا در سند ساخته شده به کار می‌رود."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "نام پروژه"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "نام نویسنده (ها)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr "اسÙینکس نظریّه‌ای برای یک «نسخه» Ùˆ یک «نگارش» برای نرم اÙزار دارد.\nهر نسخه‌ای Ù…ÛŒ تواند چندید نگارش داشته باشد.\n مثلاً برای پایتون نسخه‌ چیزی شبیه به Û²/Ûµ یا Û³/Û° است،\n در حالی Ú©Ù‡ انتشار چیزیست شبیه به Û²/Ûµ/Û± یا Û³/Û°aÛ± \n.\nاگر شما نیازی به این ساختار دوگانه ندارید، هر دو را یکی تعیین کنید."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "نسخه انتشار پروژه"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "انتشار پروژه"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "اگر مستندات قرار است با زبانی غیر از انگلیسی نوشته شود،\nÙ…ÛŒ توانید همین‌جا یک زبان را با انتخاب کد زبانیش انتخاب کنید.\nاسÙینکس سپس متن‌هایی را Ú©Ù‡ تولید می‌کند را به آن زبان ترجمه می‌کند.\n\nبرای Ùهرست زبان‌های پشتیبانی شده، به این نشانی مراجعه کنید\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "زبان پروژه"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "پسوند نام پرونده برای پرونده‌های منبع. معمولاً این پسوند یا \".txt\" است Ùˆ یا \".rst\".\nÙقط پرونده‌هایی بای این پسوند به عنوان اسناد در نظر گرÙته می‌شوند."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "پسوند پرونده‌ی منبع"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "یک سند از آن جهت خاص است Ú©Ù‡ به عنوان بست بالایی «درختواره‌ی محتوا» در نظر گرÙته می‌شود.\nیعنی، این سند ریشه‌ی ساختار سلسله مراتبی اسناد است.\nمعمولاً سند این کار «نمایه» است، ولی اگر سند «نمایه‌»‌ی شما قالب سÙارشی است؛ Ù…ÛŒ توانید آن را به نام دیگری تغییر دهید."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "نام سند اصلی شما (بدون پسوند)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "خطا: پرونده‌ی اصلی %s از قبل در مسیر ریشه‌ی برگزیده بوده‌است."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "ابراز شروع سریع اسÙینکس روی پرونده‌های از قبل موجود بازنویسی نمی‌کند."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "لطÙا٠یک نام جدید وارد کنید، یا نام پرونده‌ی موجود را تغییر دهید Ùˆ Enter‌ را Ùشار دهید"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "مشخّص کنید کدام یک از این اÙزونه‌های اسÙینکس باید Ùعّال باشد:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "یادداشت: ابزارهای‌ imgmath Ùˆ mathjax نمی‌توانند در یک زمان Ùعّال باشند. انتخاب imgmath لغو شد."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "پرونده‌های خط‌Ùرمان ویندوز Ùˆ Makefile می‌توانند برای شما تولید شوند، به گونه‌ای Ú©Ù‡ شما Ùقط نیاز باشد تا مثلاً Ùرمان `make html' را به جای Ùراخوان مستقیم ابزار ساخت اسÙینکس اجرا کنید."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "آیا پرونده‌ی‌ make ایجاد شود؟ (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "آیا پرونده‌ی خط Ùرمان ویندوز ساخته شود؟ (y/n)Ù"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "ایجاد پرونده‌ی %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "پرونده‌ی %s در حال حاضر وجود دارد، رد شدن."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "پایان یاÙت: ساختار آغازین شاخه ایجاد شد."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "شما باید حالا دیگر پرونده‌ی اصلی‌تان %s را جمع آوری کنید\n و بقیّه‌ی پرونده‌های منبع مستندات را ایجاد کنید. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "از Makefile برای ساختن مستندات استÙاده کنید، مانند این:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "از Ùرمان ساخت اسÙینکس برای ساختن مستندات استÙاده کنید، مانند این:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "که در آن سازنده یکی از سازنده‌های پشتیبانی شده است، مانند html, latex و یا linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nتولید پرونده‌های مورد نیاز برای یک پروژه‌ی اسÙینکس\n\nابزار شروع سریع اسÙینکس ابزاری تعاملی است Ú©Ù‡ شماری سؤال درباره‌ی پروژه‌یتان از شما Ù…ÛŒ پرسد\nÙˆ سپس یک شاخه‌ی کامل مستندات Ùˆ پرونده ساخت Makefile را برای استÙاده به همراه ابزار ساخت اسÙینکس تولید می‌کند.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "حالت سکوت"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "ریشه‌ی پروژه"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "گزینه‌های ساختار"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "در صورتی مشخّص شدن، شاخه‌های منبع و ساخت از یکدیگر جدا می‌شوند"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "در صورت مشخّص بودن، شاخه‌ی build (ساخت) را درون شاخه‌ی منبع بساز"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "جایگزینی نقطه در _templates (قالب‌ها) و ... ."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "گزینه‌های اساسی پروژه"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "نام پروژه"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "نام نویسندگان"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "نسخه انتشار پروژه"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "انتشار پروژه"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "زبان سند"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "پسوند پرونده‌ی منبع"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "نام سند اصلی"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "استÙاده epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "گزینه‌های اÙزونه"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "Ùعّال‌سازی %s اÙزونه"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "Ùعّال‌سازی اÙزونه‌های اختیاری"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "ایجاد Makefile و Batchfile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "ایجاد پرونده‌ی سازنده (makefile)"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "پرونده‌ی سازنده (makefile) را ایجاد نکن"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "ایجاد Batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "batchfile را ایجاد نکن"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "اسÙتاده از حالت ایجاد برای پرونده‌های Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "عدم اسÙتاده از حالت ایجاد برای پرونده‌های Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "قالب سازی پروژه"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "شاخه‌ی قالب شامل پرونده‌های قالب"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "تعری٠متغیّر قالب"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "حالت «ساکت» تعیین شده، ولی یکی از موارد «پروژه» یا «نویسنده» مشخّص نشده."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "خطا: مسیر مشخّص شده پوشه نیست، یا از قبل پرونده‌های اسÙینکس وجود داشته‌اند."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "ابزار شروع سریع اسÙینکس Ùقط یک پوشه‌ی خالی درست Ù…ÛŒ کند. لطÙاً یک مسیر ریشه‌ی جدید مشخّص کنید."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "متغیرهای نامعتبرقالب؛ %s"
@@ -1828,47 +1877,47 @@ msgstr "امکان استÙاده‌ی گزینه‌ی «هم‌خوان شماØ
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "سطر مشخّص شده %r: هیچ سطری از پرونده‌ی گنجانده شده %r بیرون کشیده نشده"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "درختواره‌ی Ùهرست مطالب ارجاعی به سند کنار گذاشته شده %r را دارد"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "Ùهرست مطالب شامل ارجاع به سند ناموجود %r است"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "نویسنده این بخش: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "نویسنده این ماژول: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "نویسنده ی کد: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "نویسنده: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1883,82 +1932,10 @@ msgstr "گزینه‌ی \":file:\" برای دستورالمعل جدول داد
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "اعلان C تکراری، که در %s:%s هم تعری٠شده.\nاعلان '.. c:%s:: %s' است."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "پارامترها"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "بازگشت ها"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "نوع برگشتی"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "عضو"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "متغیّر"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "تابع"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "ماکرو"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "ساختار"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "اجتماع"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "شمارش"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "شمارنده"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "گونه"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "مؤلّÙه‌ی تابع"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "جدید در نسخه %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "تغییر داده شده در نسخه %s"
msgid "Deprecated since version %s"
msgstr "منسوخ شده از نسخه %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "نقل‌قول %s تکراری، مورد دیگر در %s قرار دارد"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "نقل [%s] قول ارجاع داده نشده."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "اعلان ++C تکراری، که در %s:%s هم تعری٠شده.\nاعلان '.. cpp:%s:: %s' است."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "پارامترهای قالب"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "ایجاد"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "کلاس"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "کانسپت"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "مؤلّÙه‌ی قالب"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (توابع درونی)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s متد)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s (کلاس)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (متغیّر عمومی یا مقدار ثابت)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s مشخصه)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "نشانوندها"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "ایجاد"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "بازگشت ها"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "نوع برگشتی"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (ماژول)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "تابع"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "متد"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "کلاس"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "داده"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "مشخّصه"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "ماژول"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "توضیح %s تکراری از %s، مورد دیگر%s در %s قرار دارد"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "بر چسب معادله ی %s تکرار است، مورد دیگر در %s قرار دارد"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "قالب مرجع معادله‌‌ی ریاضی (math_eqref_format) نامعتبر: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "متغیر ها"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (دستورالمعل)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "برانگیختن"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr "%s (گزینه‌ی دستورالمعل)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (نقش)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "دستورالمعل"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "گزینه‌ی دستورالمعل"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "نقش"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "توضیح تکراری از %s %s، مورد دیگر در %s قرار دارد"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "اعلان C تکراری، که در %s:%s هم تعری٠شده.\nاعلان '.. c:%s:: %s' است."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "پارامترها"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "عضو"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "متغیّر"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "ماکرو"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "ساختار"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "اجتماع"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "شمارش"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "شمارنده"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "گونه"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "مؤلّÙه‌ی تابع"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "پارامترهای قالب"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "اعلان ++C تکراری، که در %s:%s هم تعری٠شده.\nاعلان '.. cpp:%s:: %s' است."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "کانسپت"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "مؤلّÙه‌ی قالب"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (در ماژول %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (در ماژول %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (متغیر درونی)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (کلاس درونی)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (کلاس در %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s شگرد کلاس)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s متد استاتیک)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s(%sویژگی)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "نمایه ی ماژول های پایتون"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "ماژول ها"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "منسوخ شده"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "ایراد"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "class method"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "متد استاتیک"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "ویژگی"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "برای ارجاع متقابل %r بیش از یک هد٠پیدا شد: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (منسوخ)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (دستورالمعل)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr "%s (گزینه‌ی دستورالمعل)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (نقش)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "دستورالمعل"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "گزینه‌ی دستورالمعل"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "نقش"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "متغیر ها"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "توضیح تکراری از %s %s، مورد دیگر در %s قرار دارد"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "برانگیختن"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "متغیرهای عمومی؛ %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "توضیح بدشکل برای گزینه‌ی %r، باید شبیه این‌ها باشد \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" یا \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s گزینه‌ی خط Ùرمان"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "گزینه خط Ùرمان"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "یک خط خالی باید پیش از اصطلاح واژه‌نامه باشد"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "اصطلاحات واژه‌نامه نباید با خطوط خالی از هم جدا شوند"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "به نظر Ù…ÛŒ رسد واژه‌نامه اشتباه Ø´Ú©Ù„ داده شده است، Ùاصله‌گذاری از ابتدای سطر را بررسی کنید"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "اصطلاح واژه‌نامه"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "نشانه ی گرامری"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "برچسب ارجاع"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "متغیّر عمومی"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "اختیارات برنامه"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "سند"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Ùهرست ماژول ها"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "صÙحه جستجو"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "بر چسب تکراری %s، مورد دیگر در %s قرار دارد"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "تکرار توضیح %s از %s، مورد دیگر در%s قرار دارد"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "شماره‌ی Ø´Ú©Ù„ غیر Ùعّال است. گزینه‌ی :numref: نادیده گرÙته می‌شود."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "شکست در ایجاد ارجاع متقابل. هیچ شماره انتساب داده نشده: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "پیوند هیچ برچسبی ندارد: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "قالب شماره‌ی شکل نامعتبر: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "قالب شماره‌ی شکل نامعتبر: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2326,35 +2380,35 @@ msgstr "پیکربندی تغییر داده شد"
msgid "extensions changed"
msgstr "اÙزونه‌ها تغییر کردند"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "نسخه‌ی محیط ساخت به‌روز نیست"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "شاخه ی منبع تغییر کرد"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "این محیط با سازنده‌ی انتخاب شده سازگار نیست، لطÙاً یک خوشه‌ی اسناد دیگری را انتخاب کنید."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "پویش اسناد %s: %r شکست خورد"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "دامنه ی %r ثبت نشده"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "سند در هیچ درختواره‌ی Ùهرست مطالبی گنجانده نشده"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "درختواره‌ی Ùهرست مطالب با ارجاع به خود پیدا شده. نادیده گرÙته می‌شود."
@@ -2378,39 +2432,39 @@ msgstr "نوع ناشناخته مدخل نمایه %r"
msgid "Symbols"
msgstr "نماد ها"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "دور تسلسل در درختواره‌ی ارجاعات Ùهرست مطالب تشخیص داده شده، نادیده گرÙته می‌شوند: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "Ùهرست مطالب دارای ارجاع به سند %r است Ú©Ù‡ عنوانی ندارد: هیچ پیوندی تولید نخواهد شد"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "پرونده‌ی تصویر خوانا نیست: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "پرونده‌ی عکس %s خوانا نیست: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "پرونده‌ی دریاÙت شده خوانا نیست: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "شماره‌ی قسمت‌ها پیش‌تر به %s نسبت داده شده ( آیا درختواره‌ی Ùهرست مطالب شماره‌گذاری تو در تو دارد؟)"
@@ -2420,7 +2474,7 @@ msgstr "شماره‌ی قسمت‌ها پیش‌تر به %s نسبت داده
msgid "Would create file %s."
msgstr "پرونده‌ی %s را می سازد."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nبه صورت بازگشتی در مسیر <MODULE_PATH> دنبال پیمانه‌هاو بسته‌های پایتون بگرد Ùˆ \nبا به ازای دستورالمعل‌های خودکار پیمانه‌ی هر بسته در مسیر خروجی <OUTPUT_PATH> یک پرونده‌ی reST بساز.\n\nالگوی استثتاء های <EXCLUDE_PATTERN> می‌تواند الگوی پرونده‌ها Ùˆ یا شاخه‌هایی باشد Ú©Ù‡ از تولید کنار گذاشته شده‌اند.\n\nتوجّه: به صورت پیش Ùرض این اسکریپت روی پرونده‌های از پیش ساخته شده دوباره نویسی نمی‌کند."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "مسیر پیمانه به سند"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "الگوها‌ی به سبک fnmatch در پرونده و یا شاخه برای کنار گذاشتن از تولید"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "پوشه‌ای برای قرار دادن همه‌ی برون دادها"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "نهایت عمق زیر پیمانه‌ها برای نشان دادن در Ùهرست مطالب (پیش‌گزیده: Û´)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "بازنویسی پرونده‌های موجود"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "ردگیری پیوند نمادین. وقتی با collective.recipe.omelette ترکیب می‌شود توانمند است."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "اجرای اسکریپت بدون ساخت پرونده"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "قرار دادن مستندات هر پیمانه در صÙحه‌ی خودش"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "در برداشتن پیمانه‌های «خصوصی»(_private)"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "نام پرونده Ùهرست مطالب (پیش‌گزیده: پیمانه‌ها)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "پرونده‌ی Ùهرست مطالب را ایجاد Ù†Ú©Ù†"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "برای بسته‌ها و پیمانه‌ها سربرگ نساز (مثلاً وقتی رشته‌متن‌های مستندات از قبل آن‌ها را داشته باشند)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "قرار دادن مستندات پیمانه پیش از مستندات پیمانه‌ی زیرمجموعه‌‌اش"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "تÙسیر مسیرهای پیمانه بر اساس ویژگی‌های ضمنی Ùضای نام‌ها در PEP -0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "پسوند پرونده ( پیش Ùرض: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "تولید یک پروژه‌ی کامل با ابزار شروع سریع اسÙینکس"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "پیوست مسیر پیمانه (module_path) به مسیر سیستم (sys.path)، هنگامی به کار می‌رود که گزینه‌ی full-- داده شود"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "نام پروژه (پیش‌گزیده: نام پیمانه‌ی ریشه)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "نویسنده(های) پروژه، وقتی Ú©Ù‡ گزینه‌ی --full داده شده باشد استÙاده Ù…ÛŒ شود"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "نسخه‌ی پروژه، وقتی Ú©Ù‡ گزینه‌ی --full داده شده باشد استÙاده Ù…ÛŒ شود"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "نگارش پروژه، وقتی Ú©Ù‡ گزینه‌ی --full داده شده باشد استÙاده Ù…ÛŒ شود، پیش‌گزیده همان شماره‌ی نسخه (--doc-version) است"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "گزینه های اÙزونه"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s شاخه نیست."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "عبارت باقاعده‌ی نامعتبر %r در %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "آزمودن پوشش منابع پایان یاÙت، به نتایج در %(outdir)spython.txt نگاهی بیاندازید."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "عبارات باقاعده‌ی نامعتبر %r در پوشش عبارت باقاعده‌ی زبان سی (coverage_c_regexes)"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "رابط برنامه‌نویسی مستند نشده‌ی C: %s [%s] در پرونده‌ی %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "امکان وارد کردن پیمانه‎ی %s نبود: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "تابع پایتونی بدون مستندات: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "کلاس مستندسازی نشده‌ی پایتون: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "شگرد مستندسازی نشده‌ی پایتون: %s :: %s :: %s"
@@ -2598,24 +2652,24 @@ msgstr "'%s' یک گزینه‌ی معتبر نسخه‌ی پایتون (pyversi
msgid "invalid TestCode type"
msgstr "نوع TestCode نامعتبر"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "آزمایش مستندات منابع به پایان رسید، به نتایج در %(outdir)s/output.txt نگاهی بیاندازید."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "بدون کد/خروجی در تکّه‌ی %s در %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "نادیده گرÙتن کد پیمانه‌ی doctest : %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== کند ترین زمان خواندن ======================="
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "دستورالعمل Graphviz نمی تواند هم نشانوند محتوا را داشته باشد و هم نام پرونده"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "پرونده گنجانده شده‌ی خارجی Graphviz %r یا پیدا نشد و یا خواندنش با شکست رو به رو شد"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "نادیده گرÙتن دستورالعمل «graphviz» بدون محتوا."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "Ùرمان dot %r نمی‌تواند اجرا شود (زیرا نیازمند برون‌داد graphviz است)ØŒ تنظیمات graphviz_dot را بررسی کنید"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr "dot با خطایی از کار اÙتاد:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr "dot هیچ پرونده‌ی برون‌دادی تولید نکرد:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "قالب خروجی graphviz باید یکی از قالب های 'png' یا 'svg' باشد ولی %r است"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "کد دات: %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[گراÙ:%s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[گراÙ:]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr "تبدیل با خطایی از کار اÙتاد:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "Ùرمان تبدیل %r را نمی توان اجرا کرد، تنظیمات image_converter را بررسی کنید"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "Ùرمان لتکس %r را نمی توان اجرا کرد(برای نمایش ریاضی لازم است)ØŒ تنظیمات imgmath_latex را بررسی کنید"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%sÙرمان %r را نمی توان اجرا کرد(برای نمایش ریاضی لازم است)ØŒ تنظیمات imgmath_%s را بررسی کنید"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "نمایش لتکس: %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "لتکس بین سطری: %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "سیاهه‌ی بین اسÙینکس جا به جایی را انجام داد: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "بارگذاری سیاهه‌ی بین اسÙینکس از %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "مشکلاتی در برخی از سیاهه‌ها به وجود آمد،ولی این مشکلات راه‌های جایگزین های داشته‌اند:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "شکست در رسیدن به یکی از سیاهه‌ها به خاطر مشکلات زیر:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(در %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(در %s )"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "شناساگر بین اسÙینکس %r رشته‌متن نیست. نادیده گرÙته شد"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "شکست در خواندن intersphinx_mapping[%s]ØŒ نادیده گرÙته می‌شود: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[منبع]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "در دست انجام"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "مدخل Ùهرست اقدام پیدا شد: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<original entry> در%s Ùˆ سطر %d جای گرÙته است.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "مدخل اصلی"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "برجسته کردن کد پیمانه... "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[مستندات]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "کد ماژول"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>کد منبع برای %s </h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "بررسی اجمالی: کد ماژول"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1> همه‌ی پیمانه‌هایی که برایشان کد در دسترس است</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "مقدار نامعتبر برای گزینه‌ی ترتیب اعضا (member-order): %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "مقدار نامعتبر برای گزینه‌ی «از مستندات کلاس» class-doc-from:%s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "امضای ناشناخته‌ برای %s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "خطا در قالب بندی نشانوند برای %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr "مشخّص نیست کدام پیمانه را برای مستندسازی خودکار Ùراخوان کند %r (سعی کنید دستورالعمل «module» یا «currentmodule» را در سند قرار دهید، یا یک نام واضح برای پیمانه ارائه دهید)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "شیئ ساختگی شناسایی شد: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "خطا در قالب بندی امضا برای %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" در پیمانه‌ی خودکار معنی نمی‌دهد"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "نشانوند‌های امضا یا یادداشت مقدار برگشتی داده شده برای پیمانه‌ی خودکار %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ باید لیستی از رشته‌متن ها باشد، نه %r (در پیمانه‌ی %s) -- __all__ نادیده گرÙته می‌شود"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "ویژگی نایاب در گزینه‌ی :members: قید شده: پیمانه‌ی:%s، ویژگی %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "شکست در دریاÙت امضای تابع برای %s: مؤلّÙÙ‡ پیدا نشد: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "شکست در دریاÙت امضای سازنده‌ی شیئ برای %s: مؤلّÙÙ‡ پیدا نشد: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "پایه ها:%s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "ویژگی ناموجود %s در شیئ %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "نام جانشین %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "نام جانشین نوع متغیر(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "شکست در دریاÙت امضای شگرد برای %s: مؤلّÙÙ‡ پیدا نشد: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "__slots__ نامعتبر در %sیدا شد Ùˆ نادیده گرÙته شد."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "شکست در تحلیل مقدار پیش‌گزیده‌‌ی نشانوند برای %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "شکست در به روز رسانی امضا برای %r: مؤلّÙÙ‡ پیدا نشد: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "شکست در تحلیل نوع یادداشت برای %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "ارجاعات خلاصه‌ی خودکار سند %r حذ٠کنار گذاشته. نادیده گرÙته می‌شود."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "خلاصه‌ی خودکار: خرده‌پرونده‌ی %r پیدا نشد. تنظیمات تولید خلاصه‌ی خودکار(autosummary_generate) را بررسی کنید."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "خلاصه‌ی خودکار عنوان‌ٔار نیازمند گزینه‌ی :toctree: است، نادیده گرÙته می‌شود."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,26 +3055,26 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "شکست در تجزیه تحلیل نام %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "شکست در وارد کردن شیئ %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "تولید خلاصه خودکار: پرونده پیدا نشد: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "خلاصه‌ی خودکار به طور داخلی پرونده‌های rst را ایجاد می‌کند. ولی پسوند منبع شما شامل rst نیست. نادیده گرÙته می‌شود."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "نشانوندهای کلیدی"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "مثال"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "نمونه‎ها"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "یادداشت‌ها"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "مؤلّÙه‌های دیگر"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "دریاÙت‌ها"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "منابع"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "هشدارها"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Ùرآورده"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "مقدار نامعتبر تعیین شده (بدون کمانک انتهایی): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "مقدار نامعتبر تعیین شده (بدون کمانک ابتدایی): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "رشته‌متن ادبی ناقص (بدون علامت نقل‌قول انتهایی): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "رشته‌متن ادبی ناقص (بدون علامت نقل‌قول ابتدایی): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "دقت"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "ملاحظه"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "خطر"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "خطا"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "راهنمایی"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "مهم"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "توجه"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "همچنین ملاحظه نمائید"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "نکته"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "هشدار"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr "Ùهرست عناوین"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "جستجو"
@@ -3345,34 +3404,22 @@ msgstr "موضوع بعدی"
msgid "next chapter"
msgstr "Ùصل بعدی"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "لطÙاً برای Ùعّال کردن کارکرد جستجو\nجاوا اسکریپت را Ùعّال کنید."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "در حال جستجو برای چندین واژه. Ùقط واژگانی را نشان می‌دهد Ú©Ù‡ شامل این موارد باشد:\n همه‌ی کلمه‌ها."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "جستجو"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "نتایج جستجو"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "جستجوی شما با هیچ سندی هم خوانی نداشت. لطÙاً اطمینان حاصل کنید Ú©Ù‡ همه ÛŒ واژه ها املای درستی دارند Ùˆ دسته بندی های کاÙÛŒ را انتخاب کرده اید."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "جستجو سریع"
@@ -3409,20 +3456,30 @@ msgstr "C API تغییرات"
msgid "Other changes"
msgstr "دگر تغییرات"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "نتایج جستجو"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "جستجوی شما با هیچ سندی هم خوانی نداشت. لطÙاً اطمینان حاصل کنید Ú©Ù‡ همه ÛŒ واژه ها املای درستی دارند Ùˆ دسته بندی های کاÙÛŒ را انتخاب کرده اید."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "در حال جست و جو"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "آماده سازی جست و جو..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr "، در "
@@ -3443,30 +3500,30 @@ msgstr "گسترش نوار کناره"
msgid "Contents"
msgstr "محتوا ها"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "نمایه‌ای بر پایه‌ی Û´ ستون پیدا شد. شاید یک اشکال برنامه‌نویسی از اÙزونه‌هایی Ú©Ù‡ استÙاده می‌کنید باشد: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "پانویس [%s] ارجاع داده نشده است."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "پانویس [#] ارجاع داده نشده است."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr "ارجاعات ناهناهنگ در پیام‌های ترجمه شده. اصلی:{0}، ترجمه شده:{1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "ارجاعات نقل قول ادبی ناهناهنگ در پیام‌های ترجمه شده. اصلی:{0}، ترجمه شده:{1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr "%s:%s مرجع هد٠پیدا نشد: %s"
msgid "%r reference target not found: %s"
msgstr "مقصد ارجاع %r پیدا نشد %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "امکان دریاÙت تصویر از منبع راه دور نبود: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "امکان دریاÙت تصویر از منبع راه دور نبود: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "قالب تصویر ناشناخته: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "نویسه‌ی منبع غیرقابل رمزگشایی، جایگزین با «؟» : %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "رد شدن و نادیده انگاشتن"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "شکست خورد"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "نام نقش یا دستورالعمل ناشناخته: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "بست از نوع ناشناخته: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "خطای خواندن: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "خطای نوشتن: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "قالب تاریخ ناشناخته. اگر می‌خواهید از رشته‌متن مستقیماً خروجی بگیرید، آن را با نقل قول رشته‌متنی محصور کنید: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "درختواره‌ی Ùهرست مطالب شامل ارجاع به پرونده ناموجود %r است"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "ایراد در هنگام ارزیابی تنها عبارت دستور العمل: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "نقش پیش‌Ùرض %s یاÙت نشد"
@@ -3617,27 +3674,27 @@ msgstr "هر کدام از شناسه‌هایی Ú©Ù‡ به بست %s اختصاØ
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "امکان دست یابی به اندازه‌ی عکس نبود. گزینه‌ی تغییر اندازه :scale: نادیده گرÙته می‌شود."
@@ -3654,13 +3711,13 @@ msgstr "مقدار بسیار بزرگ :maxdepth:ØŒ نادیده گرÙته شد
msgid "document title is not a single Text node"
msgstr "عنوان سند یک بست متنی نیست"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "به بست عنوانی برخورد که در قسمت، موضوع، جدول، اندرز یا نوارکناری نبود"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "پانویس ها"
@@ -3679,20 +3736,20 @@ msgstr "ابعاد واحد %sنامعتبر است Ùˆ نادیده گرÙته Ø
msgid "unknown index entry type %s found"
msgstr "نوع ناشناخته مدخل نمایه%s پیدا شد"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[تصویر%s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[تصویر]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "عنوان درون شکل نیست."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "بست به کار نرÙته: %r"
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.mo b/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
index 8573639..ec7590c 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fi/LC_MESSAGES/sphinx.po b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
index 1259e61..708acbd 100644
--- a/sphinx/locale/fi/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fi/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FIRST AUTHOR <EMAIL@ADDRESS>, 2009\n"
"Language-Team: Finnish (http://app.transifex.com/sphinx-doc/sphinx-1/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Moduulitaso"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%m.%Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Yleinen sisällysluettelo"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "hakemisto"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ">"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "<"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Sisällysluettelo"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Luvun kirjoittaja: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Moduulin kirjoittaja: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Tekijä: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
+msgstr "Muutettu versiossa %s"
+
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
+msgstr "Poistettu versiosta %s alkaen"
+
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
+msgstr "%s (moduuli)"
+
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
-msgstr "Uusi versiossa %s"
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
+msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
-msgstr "Muutettu versiossa %s"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
-msgstr "Poistettu versiosta %s alkaen"
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr "moduuli"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
-msgstr "%s (moduuli)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
-msgstr "moduuli"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduulit"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Poistettu"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (poistettu)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Moduuli sisällysluettelo"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Etsi sivu"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Tehtävä vielä"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Huom"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Varoitus"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Vaara"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Virhe"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Vihje"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Tärkeä"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Muista"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Katso myös"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Vihje"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Varoitus"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Etsi"
@@ -3342,34 +3401,22 @@ msgstr ">>"
msgid "next chapter"
msgstr ">>"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Javascript pitää olla sallittu, jotta etsintä toimii."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "etsi"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Etsinnän tulos"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Pikahaku"
@@ -3406,20 +3453,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Etsinnän tulos"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.js b/sphinx/locale/fr/LC_MESSAGES/sphinx.js
index 291b36c..5171463 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.js
@@ -2,7 +2,7 @@ Documentation.addTranslations({
"locale": "fr",
"messages": {
"%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s",
- "&#169; %(copyright_prefix)s %(copyright)s.": "",
+ "&#169; %(copyright_prefix)s %(copyright)s.": "&#169; %(copyright_prefix)s %(copyright)s.",
", in ": ", dans ",
"About these documents": "\u00c0 propos de ces documents",
"Automatically generated list of changes in version %(version)s": "Liste auto-g\u00e9n\u00e9r\u00e9e des modifications dans la version %(version)s",
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.mo b/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
index c11b9d1..1fa8720 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.po b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
index 0703e23..269bf4b 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
@@ -1,16 +1,16 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
# ABOU SAMRA Jean <jean@abou-samra.fr>, 2020
# Adam Levine <adam.l.levine@gmail.com>, 2020
-# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2017
+# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2017,2023-2024
# Christophe CHAUVET <christophe.chauvet@gmail.com>, 2013,2015
# cyrille gachot <cyrille.gachot@smile.fr>, 2019
# David Georges, 2021
# Larlet David <david@larlet.fr>, 2008
-# Denis Bitouzé <dbitouze@wanadoo.fr>, 2020-2022
+# Denis Bitouzé <dbitouze@wanadoo.fr>, 2020-2023
# fgallaire <fgallaire@gmail.com>, 2010
# fgallaire <fgallaire@gmail.com>, 2010
# François Poirotte <clicky@erebot.net>, 2016-2017,2020
@@ -35,14 +35,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
-"Last-Translator: Jérémie Tarot <silopolis@gmail.com>, 2022-2023\n"
+"Last-Translator: Christophe CHAUVET <christophe.chauvet@gmail.com>, 2017,2023-2024\n"
"Language-Team: French (http://app.transifex.com/sphinx-doc/sphinx-1/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -65,104 +65,104 @@ msgstr "Les dossiers source et destination ne doivent pas être identiques"
msgid "Running Sphinx v%s"
msgstr "Sphinx v%s en cours d'exécution"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Ce projet nécessite au minimum Sphinx v%s et ne peut donc être construit avec cette version."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
-msgstr "Création du répertoire de sortie"
+msgstr "création du répertoire de sortie"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "lors de l'initialisation de l'extension %s :"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' tel que défini dans conf.py n'est pas un objet Python appelable. Veuillez modifier sa définition pour en faire une fonction appelable. Ceci est nécessaire pour que conf.py se comporte comme une extension Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "chargement des traductions [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "fait"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "traductions indisponibles"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "Chargement de l'environnement pickled"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "échec : %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Aucun constructeur sélectionné, utilisation du défaut : html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "a réussi"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "s'est terminée avec des problèmes"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "La compilation %s, %s avertissement (avec les avertissements considérés comme des erreurs)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "La compilation %s, %s avertissements (avec les avertissements considérés comme des erreurs)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "La compilation %s, %s avertissement."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "La compilation %s, %s avertissements."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "La compilation %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "la classe de nœud %r est déjà enregistrée, ses visiteurs seront écrasés"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "la directive %r est déjà enregistrée, elle sera écrasée"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "le rôle %r est déjà enregistré, il sera écrasé"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -170,12 +170,12 @@ msgid ""
"explicit"
msgstr "l’extension %s ne se déclare pas compatible à la lecture en parallèle, on supposera qu’elle ne l'est pas - merci de demander à l'auteur de l’extension de vérifier ce qu’il en est et de le préciser explicitement"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "l'extension %s n'est pas compatible avec les lectures parallèles"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -183,70 +183,75 @@ msgid ""
"explicit"
msgstr "l’extension %s ne se déclare pas compatible à l’écriture en parallèle, on supposera qu’elle ne l’est pas - merci de demander à l'auteur de l’extension de vérifier ce qu’il en est et de le préciser explicitement"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "l'extension %s n'est pas compatible avec les écritures parallèles"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "sérialisation en cours %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "Le dossier de configuration ne contient pas de fichier conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
-msgstr "Valeur de configuration invalide trouvée: 'language = None'. Mettez à jour la configuration avec un code de langage valide. Utilisation de 'en' (English) comme substitut."
+msgstr "Valeur de configuration non valide trouvée: 'language = None'. Mettez à jour la configuration avec un code de langage valide. Utilisation de 'en' (English) comme substitut."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "impossible d'écraser le dictionnaire de configuration %r ; ignoré (utilisez %r pour modifier les éléments individuellement)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "nombre non valide %r pour l'option de configuration %r ; ignoré"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "impossible de remplacer le paramètre de configuration %r par un type non-supporté ; ignoré"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "paramètre de configuration %r inconnu dans override ; ignoré"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Option de configuration inexistante : %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "L'option de configuration %r est déjà présente"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Votre fichier de configuration comporte une erreur de syntaxe : %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Le fichier de configuration (ou un des modules qu'il utilise) génère un sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -254,291 +259,328 @@ msgid ""
"%s"
msgstr "Votre fichier de configuration comporte une erreur de programmation : \n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
-msgstr "Le paramètre « source_suffix » s'attend à recevoir une chaîne de caractères, une liste de chaînes de caractères ou un dictionnaire. Mais vous avez fourni un « %r »."
+msgstr "Le paramètre `source_suffix` s'attend à recevoir une chaîne de caractères, une liste de chaînes de caractères ou un dictionnaire. Mais vous avez fourni un `%r'."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Section %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tableau %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Code source %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "La valeur « {current} » du paramètre « {name} » ne figure pas dans la liste des possibilités valables « {candidates} »."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "Le type du paramètre de configuration « {name} » doit être {permitted} et non « {current.__name__} »."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "Le paramètre de configuration « {name} » a pour type « {current.__name__} », tandis que le type par défaut est « {default.__name__} »."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r non trouvé; ignoré."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Depuis sa version 2.0, Sphinx utilise \"index\" comme root_doc par défaut. Veuillez ajouter \"root_doc = 'contents'\" à votre conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Évènement %r déjà présent"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nom d'évènement inconnu : %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "Le gestionnaire %r de l'évènement %r a créé une exception."
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "L'extension %s est exigée par le paramètre needs_extensions, mais n'est pas chargée."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Ce projet nécessite que l'extension %s soit au minimum en version %s et par conséquent il ne peut pas être construit avec la version chargée (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Le nom du l'analyseur Pygments %r est inconnu"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
-msgstr ""
+msgstr "Le lexème du bloc_littéral %r en tant que \"%s\" a entraîné une erreur au niveau du jeton : %r. Réessayer en mode relaxé."
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "plusieurs fichiers trouvés pour le document \"%s\" : %r\nUtiliser %r pour la compilation."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
-msgstr ""
+msgstr "Document illisible %r ignoré."
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "La classe Builder %s n'a pas d'attribut « name »"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Le constructeur %r existe déjà (dans le module %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Le nom de Constructeur %s n'est ni enregistré ni accessible par point d'entrée"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Constructeur %s non enregistré"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
-msgstr "domaine %s déjà enregistré"
+msgstr "le domaine %s a déjà été enregistré"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
-msgstr "domaine 1%s pas encore enregistré"
+msgstr "le domaine %s n'a pas encore été enregistré"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "La directive %r est déjà enregistrée sur le domaine %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "Le rôle %r est déjà enregistré sur le domaine %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "L'index %r est déjà enregistré sur le domaine %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "Le type de l'objet %r est déjà enregistré"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "Le type %r crossref_type est déjà enregistré"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "L'extension source %r est déjà enregistrée"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser pour %r est déjà enregistré"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "source_parser pour %s non enregistré"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Il existe déjà un traducteur pour %r"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "Les kwargs pour add_node() doivent être un tuple de fonction (visite, départ) : %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r est déjà enregistré"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "le moteur de rendu mathématique %s est déjà enregistré"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "l'extension %r a été intégrée à Sphinx depuis la version %s ; cette extension est ignorée."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Exception initiale :\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "L'extension %s ne peut pas être importée"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "l'extension %r n'a pas de fonction setup(); est-elle réellement un module d'extension de Sphinx ?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "L'extension %s utilisée par ce projet nécessite au moins Sphinx v%s ; il ne peut donc pas être construit avec la version courante."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "l'extension %r a renvoyé par sa fonction setup() un type d'objet non supporté ; elle devrait renvoyer None ou un dictionnaire de méta-données"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "numéro PEP %s non valide"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "numéro RFC %snon valide"
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "Le thème %r n'a pas de paramètre « theme »"
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "le paramètre %s.%s n'apparaît dans aucune des configurations de thème recherchées"
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "Le thème %r n'a pas de paramètre « inherit »"
+msgid "unsupported theme option %r given"
+msgstr "l'option %r n'est pas supportée pour ce thème"
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "Aucun thème nommé %r n'est trouvé, hérité de %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "le fichier %r dans le dossier des thèmes n'est pas une archive zip valide ou ne contient aucun thème"
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
-msgstr "le paramètre %s.%s n'apparaît dans aucune des configurations de thème recherchées"
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
-msgstr "L'option %r n'est pas supportée pour ce thème"
+msgid "The %r theme has circular inheritance"
+msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
-msgstr "le fichier %r dans le dossier des thèmes n'est pas une archive zip valide ou ne contient aucun thème"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr "Le thème %r a trop d'ancêtres"
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:331 sphinx/theming.py:377
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "Le thème nommé %r n'a pas été trouvé (le fichier theme.conf est-il bien présent ?)"
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr "Le thème %r doit définir la clé \"theme.inherit\" dans les paramètres"
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -552,10 +594,10 @@ msgstr "l'image appropriée pour le constructeur %s n'a pas été trouvée : %s"
#: sphinx/builders/__init__.py:207
msgid "building [mo]: "
-msgstr "Construction en cours [mo] : "
+msgstr "construction en cours [mo] : "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "Écriture... "
@@ -604,97 +646,97 @@ msgstr "%d fichiers source saisis en ligne de commande"
msgid "targets for %d source files that are out of date"
msgstr "cibles périmées pour les fichiers sources %d"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
-msgstr "Construction [%s] : "
+msgstr "construction [%s] : "
#: sphinx/builders/__init__.py:316
msgid "looking for now-outdated files... "
msgstr "Recherche des fichiers périmés... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d trouvé"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
-msgstr "aucun résultat"
+msgstr "aucun résultat trouvé"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "Environnement de sérialisation"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
-msgstr "Vérification de la cohérence"
+msgstr "vérification de la cohérence"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
-msgstr "Aucune cible n'est périmée."
+msgstr "aucune cible n'est périmée."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
-msgstr "Mise à jour de l'environnement : "
+msgstr "mise à jour de l'environnement : "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s ajouté(s), %s modifié(s), %s supprimé(s)"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
-msgstr "Lecture des sources... "
+msgstr "lecture des sources... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "documents à écrire : %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
-msgstr "Document en préparation"
+msgstr "documents en préparation"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
-msgstr ""
+msgstr "copie des ressources"
#: sphinx/builders/_epub_base.py:215
#, python-format
msgid "duplicated ToC entry found: %s"
-msgstr "Entrées dupliquées de la table des matières trouvées : %s"
+msgstr "entrées dupliquées de la table des matières trouvées : %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "Copie des images... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "impossible de lire le fichier image %r: il sera copié à la place"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "impossible de copier le fichier image %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "impossible d'écrire le fichier image %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
-msgstr "Pillow introuvable - copie des fichiers image"
+msgstr "Pillow n'a pas été trouvé - copie des fichiers image"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "écriture du type MIME du fichier ..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "écriture du fichier META-INF/container.xml..."
@@ -702,470 +744,470 @@ msgstr "écriture du fichier META-INF/container.xml..."
msgid "writing content.opf file..."
msgstr "Enregistrement du fichier content.opf..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
-msgstr "mimetype inconnu pour %s, il sera ignoré"
+msgstr "type MIME inconnu pour %s, il sera ignoré"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "Enregistrement du fichier toc.ncx..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "fichier %s en cours d'écriture..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Le fichier d'aperçu se trouve dans %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "aucun changement dans la version %s"
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "écriture du fichier de résumé..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Fonctions de base"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Module"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
-msgstr "Copie des fichiers sources..."
+msgstr "copie des fichiers sources..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "impossible de lire %r pour la création du changelog"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "Le constructeur factice ne génère aucun fichier."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "Le fichier ePub se trouve dans %(outdir)s ."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "Enregistrement du fichier nav.xhtml..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "la variable de configuration \"epub_language\" (ou \"language\") ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "le paramètre de configuration \"epub_uid\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_title\" (ou \"html_title\") ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_author\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_contributor\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_description\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_publisher\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_copyright\" (ou \"copyright\") ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "le paramètre de configuration \"epub_identifier\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "le paramètre de configuration \"version\" ne peut pas être vide pour EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
-msgstr "Fichier CSS invalide : %r, sera ignoré"
+msgstr "Fichier CSS non valide : %r, il sera ignoré"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "La liste des messages se trouve dans %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "cibles pour les modèles de fichiers %d"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "lecture des gabarits... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "écriture des catalogues de messages... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Recherchez les éventuelles erreurs dans la sortie ci-dessus ou dans %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "lien mort: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "Échec de la compilation de la regex dans linkcheck_allowed_redirects : %r%s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Le manuel se trouve dans %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "aucun valeur de configuration \"man_pages\" trouvée; aucun page du manuel ne sera enregistrée"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
-msgstr "Enregistrement"
+msgstr "enregistrement"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "le paramètre de configuration \"man_pages\" référence un document inconnu %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Les pages HTML sont dans %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "création du document unique"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "Enregistrement des fichiers supplémentaires"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Les fichiers Texinfo se trouvent dans %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nExécuter 'make' dans ce répertoire pour les soumettre à makeinfo\n(ou 'make info' directement ici pour l'automatiser)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "aucun paramètre de configuration \"texinfo_documents\" trouvé: aucun document ne sera écrit"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "La valeur du paramètre \"texinfo_documents\" référence un document inconnu %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "Traitement de %s en cours"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "résolution des références..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(dans"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
-msgstr "Copie des fichiers de support Texinfo"
+msgstr "copie des fichiers de support Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "erreur lors l'écriture du fichier Makefile : %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Les fichiers texte se trouvent dans %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "erreur lors l'écriture du fichier %s : %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Les fichiers XML se trouvent dans %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Le fichier pseudo-XML se trouve dans %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "Le fichier de configuration de construction est corrompu : %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Les pages HTML sont dans %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Échec de lecture du fichier de configuration de construction : %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Index général"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "suivant"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "précédent"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
-msgstr "Génération des index"
+msgstr "génération des index"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "Écriture des pages additionnelles"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "Copie des fichiers téléchargeables... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "impossible de copier le fichier téléchargeable %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "Échec de la copie du fichier dans html_static_file : %s : %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "Copie des fichiers statiques"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "impossible de copier le fichier static %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
-msgstr "Copie des fichiers complémentaires"
+msgstr "copie des fichiers complémentaires"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "Copie des fichiers supplémentaires impossible %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Échec d'écriture du fichier de configuration de construction : %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "L'index de recherche n'a pas pu être chargé, mais tous les documents ne seront pas construits: l'index sera incomplet."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "La page %s correspond à deux motifs dans html_sidebars: %r et %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "une erreur Unicode est survenue lors du rendu de la page %s. Veuillez vous assurer que toutes les valeurs de configuration comportant des caractères non-ASCII sont des chaînes Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Un erreur est survenue lors de la génération de la page: %s.\nLa raison est: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "Export de l'inventaire des objets"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "Export de l'index de recherche en %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "Fichier js_file : %r invalide, sera ignoré"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Plusieurs math_renderers sont enregistrés. Mais aucun n'est sélectionné."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "math_renderer inconnu %r saisi."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "L’entrée %r de html_extra_path n’existe pas"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "L’entrée %r de html_extra_path se trouve à l’intérieur de outdir"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "L’entrée %r de html_static_path n’existe pas"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "L’entrée %r de html_static_path se trouve à l’intérieur de outdir"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "Le fichier de logo %r n’existe pas"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "Le fichier de favicon %r n’existe pas "
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
-msgstr ""
+msgstr "HTML 4 n'est plus pris en charge par Sphinx. (\"html4_writer=True\" détecté dans les options de configuration)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Documentation %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Les fichiers LaTex se trouvent dans %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nExécuter 'make' dans ce répertoire pour les soumettre à (pdf)latex\n(ou 'make latexpdf' directement ici pour l’automatiser)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "aucune valeur de configuration \"latex_documents\" trouvée; aucun document de sera généré"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "La valeur du paramètre \"latex_documents\" référence un document inconnu %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Version"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "Aucune option Babel disponible pour la langue %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
-msgstr "Copie des fichiers de support TeX"
+msgstr "copie des fichiers de support TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "Copie des fichiers de support TeX..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "Copie de fichiers supplémentaires"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Clé de configuration inconnue : latex_elements[%r]; ignorée."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Option de thème inconnue : latex_theme_options[%r], ignoré."
@@ -1180,18 +1222,18 @@ msgstr "%r n'a pas d'option « theme »"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r n'a pas d'option « %s »"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
-msgstr ""
+msgstr "Échec de l'obtention d'un nom de document !"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
-msgstr ""
+msgstr "Échec de l'obtention d'un nom de document pour la source {source!r} !"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
-msgstr ""
+msgstr "Aucune note de bas de page n'a été trouvée pour la référence de nœud %r donnée"
#: sphinx/cmd/build.py:46
msgid "Exception occurred while building, starting debugger:"
@@ -1247,8 +1289,8 @@ msgstr "Un rapport d'erreur peut être déposé dans le système de tickets à <
msgid "job number should be a positive number"
msgstr "Le numéro du job doit être strictement positif"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "Pour plus d'informations, visitez le site <https://www.sphinx-doc.org/>."
@@ -1280,257 +1322,264 @@ msgid "path to output directory"
msgstr "chemin du répertoire de sortie"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "une liste de fichiers spécifiques à reconstruire. Sera ignoré si l'option -a est spécifiée."
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "options générales"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "constructeur à utiliser (par defaut: HTML)"
+msgid "builder to use (default: 'html')"
+msgstr "constructeur à utiliser (par défaut: 'html')"
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "enregistrer tous les fichiers (par défaut : enregistrer seulement les fichiers nouveaux ou modifiés)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "ne pas utiliser un environnement sauvegardé, relire toujours tous les fichiers"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "chemin pour le cache d'environnement et de fichiers doctree (défaut : OUTPUTDIR/.doctrees) "
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "build parallèle avec N processus si possible (la valeur spéciale \"auto\" ajuste N à cpu-count)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "chemin dans lequel se trouve le fichier de configuration (conf.py). (valeur par défaut : identique à SOURCEDIR)."
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "n'utilisez aucun fichier de configuration, seulement l'option -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "outre passer un paramètre du fichier de configuration"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "passer une valeur aux templates HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "définit une balise : seules les blocs \"only\" avec TAG seront inclus"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "mode sourcilleux, signale toute référence manquante"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "options de la console de sortie"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "augmenter la verbosité (peut être répété)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "aucune sortie vers stdout, seulement les avertissements vers stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "aucune sortie du tout, même pas les avertissements"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "émettre une sortie de couleur (par défaut : auto-détection)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "ne pas émettre une sortie de couleur (par défaut : auto-détection)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "écrire les avertissements (et les erreurs) vers le fichier spécifié"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "modifier les avertissements en erreurs"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "avec -W, l'exécution se poursuit en cas d'avertissements"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "montrer la trace d’appels complète si une exception est levée"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "exécuter Pdb si une exception se produit."
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "impossible de combiner l'option -a avec le nom du fichier"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "impossible d'ouvrir le fichier des avertissements %r : %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "l'option -D doit être sous la forme nom=valeur"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "l'option -A doit être sous la forme nom=valeur"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "insère automatiquement les docstrings des modules"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "tester automatiquement des extraits de code dans des blocs doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "lien entre la documentation Sphinx de différents projets"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "entrées \"todo\" pouvant être montrées ou cachées à la compilation"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "vérification de la couverture de la documentation"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "expressions mathématiques, traduites en images PNG ou SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "expressions mathématiques, transmises dans le navigateur à MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "inclusion conditionnelle du contenu basé sur la valeur de configuration"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "inclure des liens vers le code source documenté des objets Python"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "crée un fichier .nojekyll pour publier le document sur GitHub pages"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Merci de saisir un chemin valide."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Merci de saisir du texte."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Merci de saisir un des %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Merci de saisir 'y' ou 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Merci de saisir l'extension du fichier, par exemple '.rst' ou '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Bienvenue dans le kit de démarrage rapide de Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Veuillez saisir des valeurs pour les paramètres suivants (tapez Entrée pour accepter la valeur par défaut, lorsque celle-ci est indiquée entre crochets)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Chemin racine sélectionné : %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Saisissez le répertoire racine de la documentation."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "racine de la documentation."
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Erreur : un fichier conf.py a été trouvé dans le répertoire racine."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart n'écrasera pas un projet Sphinx existant."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Merci de saisir un nouveau répertoire racine (ou tapez juste Entrée)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Vous avez deux options pour l'emplacement du répertoire de construction de la sortie de Sphinx.\nSoit vous utilisez un répertoire \"_build\" dans le chemin racine, soit vous séparez les répertoires \"source\" et \"build\" dans le chemin racine."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Séparer les répertoires source et de sortie (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Dans le répertoire racine, deux autres répertoires seront créés : \"_templates\" pour les modèles HTML personnalisés et \"_static\" pour les feuilles de style personnalisées et autres fichiers statiques. Vous pouvez entrer un autre préfixe (p. ex. \".\") pour remplacer le tiret bas (\"_\")."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Préfixe de nom pour les répertoires static et de gabarits (templates)"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "Le nom du projet apparaîtra à plusieurs endroits dans la documentation construite."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Nom du projet"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Nom(s) de(s) l'auteur(s)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1539,15 +1588,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx a la notion de « version » et de « release » pour le\nlogiciel. Chaque version peut avoir plusieurs « releases ». Par exemple, pour\nPython, la version est quelque chose comme 2.5 ou 3.0, tandis que la « release » est\nquelque chose comme 2.5.1 ou 3.0a1. Si vous n'avez pas besoin de cette double structure,\nmettez simplement la même valeur aux deux."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Version du projet"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Version du projet"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1557,21 +1606,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Si les documents doivent être rédigés dans une langue autre que l’anglais, vous pouvez sélectionner une langue ici grâce à son identifiant. Sphinx utilisera ensuite cette langue pour traduire les textes que lui-même génère.\n\nPour une liste des identifiants supportés, voir\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Langue du projet"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "L'extension de fichier pour les fichiers sources. En général : \".txt\" ou \".rst\". Seuls les fichiers avec cette extension sont considérés."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Extension des fichiers sources"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1579,91 +1628,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Un document est particulier en ce sens qu'il est considéré comme le nœud supérieur de \"l'arbre des contenus\", c'est-à-dire la racine de la structure hiérarchique des documents. Normalement, il s'agit d'un \"index\", mais si votre \"index\" est un modèle personnalisé, vous pouvez également le définir sous un autre nom de fichier."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Non du fichier principal (sans extension)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Erreur : le fichier principal %s est déjà présent dans le répertoire racine du projet."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart n'écrasera pas les fichiers existants."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Merci de saisir un nouveau nom de fichier, ou de renommer le fichier existant et valider avec Entrée"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Indiquer lesquelles de ces extensions Sphinx doivent être activées :"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Note : imgmath et mathjax ne peuvent pas être activés en même temps. imgmath a été désactivé."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Un fichier Makefile et un fichier de commandes Windows peuvent être générés pour vous, afin que vous puissiez exécuter par exemple `make html' au lieu d'appeler directement sphinx-build."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Création du Makefile ? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Création du fichier de commandes Windows ? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Fichier en cours de création %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Le fichier %s existe déjà, il ne sera pas remplacé"
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Terminé : la structure initiale a été créée."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Vous devez maintenant compléter votre fichier principal %s et créer d'autres fichiers sources de documentation. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Utilisez le Makefile pour construire la documentation comme ceci :\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Utilisez sphinx-build pour construire la documentation comme ceci : \n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "où « builder » est l'un des constructeurs disponibles, tel que html, latex, ou linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1673,135 +1722,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nEngendre les fichiers requis pour un projet Sphinx.\n\nsphinx-quickstart est un outil interactif qui pose des questions à propos de votre projet et génère un répertoire avec la structure complète nécessaire ainsi qu'un Makefile qui peut être utilisé comme alternative à sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "mode silencieux"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "racine du projet"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Options de structure"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "si spécifié, les répertoires source et build seront séparés"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "si spécifié, créé le dossier build dans le dossier source"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "remplace le point dans _templates etc."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Options basiques du projet."
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "nom du projet"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "nom de l'auteur"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "version du projet"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "version du projet"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "langue du document"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "préfixe des fichiers source"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "nom du document principal"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "utilisé epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Options d'extension"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "autoriser l'extension %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "active l'emploi d'extensions quelconques"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Création des fichiers Batchfile et Makefile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "créer un fichier makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "ne pas créer un fichier makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "créer un fichier batch"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "ne pas créer un fichier batch"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "utiliser make-mode pour Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "ne pas utiliser make-mode pour Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Gabarits de projet"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "répertoire des templates"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "définissez une variable de template"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "vous avez spécifiez \"quit\" , mais \"project\" ou \"author\" ne sont pas spécifiés."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Erreur : le chemin spécifié n'est pas un répertoire, ou les fichiers Sphinx existent déjà."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart peut générer ces fichiers seulement dans un répertoire vide. Merci de spécifier un nouveau répertoire racine."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Variable de template invalide : %s"
@@ -1852,47 +1901,47 @@ msgstr "On ne peut pas utiliser \"lineno-match\" avec un \"lines\" non contigu "
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Spécification de lignes %r : aucune ligne extraite du fichier inclus %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "le motif global toctree %r ne correspond à aucun document"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "le toctree contient une référence à des documents exclus %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "la table des matières contient des références à des documents inexistants %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "entrée dupliquée trouvée dans toctree: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Auteur de la section : "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Auteur du module : "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Auteur du code : "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Auteur : "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr "... le contenu de acks n'est pas une liste"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr "... le contenu de hlist n'est pas une liste"
@@ -1907,82 +1956,10 @@ msgstr "L'option \":file :\" de la directive csv-table reconnaît désormais un
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Déclaration C dupliquée, également définie à %s:%s.\nLa déclaration est '.. c:%s:: %s'."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Paramètres"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "Valeurs retournées"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Renvoie"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Type renvoyé"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membre"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variable"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "fonction"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "structure"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "union"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "énumération"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "énumérateur"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "type"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "paramètre de fonction"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nouveau dans la version %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1994,346 +1971,423 @@ msgstr "Modifié dans la version %s"
msgid "Deprecated since version %s"
msgstr "Obsolète depuis la version %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr "Supprimé dans la version %s"
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "citation dupliquée %s, une autre instance dans %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "La citation [%s] n'est pas référencée"
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Déclaration C++ dupliquée, également définie à %s:%s.\nLa déclaration est '.. cpp:%s:: %s'."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Paramètres du modèle"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Déclenche"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "classe"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "concept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "paramètre du modèle"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (fonction de base)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (méthode %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (classe)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variable globale ou constante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (attribut %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Arguments"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Déclenche"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Renvoie"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Type renvoyé"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (module)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "fonction"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "méthode"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "classe"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "données"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "module"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "description de %s dupliquée pour%s; l'autre %s se trouve dans %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "Libellé dupliqué pour l'équation %s, autre instance dans %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "math_eqref_format invalide : %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directive)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Lève"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (option de directive)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directive"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "option de directive"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "role"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "description dupliquée pour %s %s; l'autre instance se trouve dans %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Déclaration C dupliquée, également définie à %s:%s.\nLa déclaration est '.. c:%s:: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Paramètres"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Valeurs retournées"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membre"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variable"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "structure"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "union"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "énumération"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "énumérateur"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "type"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "paramètre de fonction"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Paramètres du modèle"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Déclaration C++ dupliquée, également définie à %s:%s.\nLa déclaration est '.. cpp:%s:: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concept"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "paramètre du modèle"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (dans le module %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (dans le module %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variable de base)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (classe de base)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (classe dans %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (méthode de la classe %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (méthode statique %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (propriété %s)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Index des modules Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modules"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Obsolète"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "exception"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "méthode de classe"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "méthode statique"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "propriété"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
-msgstr ""
+msgstr "description dupliquée de l'objet %s, autre instance dans %s, utiliser :no-index: pour l'un d'eux"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "plusieurs cibles trouvées pour le renvoi %r : %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (obsolète)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directive)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (option de directive)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (role)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directive"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "option de directive"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variables"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "description dupliquée pour %s %s; l'autre instance se trouve dans %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Lève"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variable d'environnement; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "description de l'option malformée, elle doit ressembler à \nMalformed option description %r, should look like \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" or \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "option de ligne de commande %s"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "option de ligne de commande"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "le terme du glossaire doit être précédé d'une ligne vide"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "les termes du glossaire ne doivent pas être séparés par des lignes vides"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "le glossaire semble être mal formaté; vérifiez l'indentation"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "terme du glossaire"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "élément de grammaire"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "étiquette de référence"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variable d'environnement"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "option du programme"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "document"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Index du module"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Page de recherche"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "libellé dupliqué %s, l'autre instance se trouve dans %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "description %s dupliquée pour %s; l'autre instance se trouve dans %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "le paramètre numfig est désactivé : le paramètre :numref: est ignoré"
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "Impossible de créer une référence croisée. Aucun nombre n'est attribué: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "le lien n'a pas de légende : %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "numfig_format invalide : %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "numfig_format invalide : %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "label non défini: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "Échec de création d'une référence. Ni titre ni légende trouvé : %r"
@@ -2350,35 +2404,35 @@ msgstr "la configuration a changé"
msgid "extensions changed"
msgstr "les extensions ont changé"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "version non à jour de l’environnement de construction"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "le répertoire racine a changé"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Cet environnement est incompatible avec le constructeur sélectionné, veuillez choisir un autre répertoire doctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Échec du scan des documents dans %s : %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "le domaine %r n'est pas enregistré."
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "Le document n'est inclus dans aucune toctree."
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "une table des matières auto-référencée a été trouvée. Elle sera ignorée."
@@ -2402,39 +2456,39 @@ msgstr "type d'index saisie inconnu %r"
msgid "Symbols"
msgstr "Symboles"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "table des matières avec une référence circulaire détectée, elle sera ignorée : %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "la table des matières contient une référence à un document %r qui n'a pas de titre : aucun lien ne sera généré"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "toctree contient une référence au document non inclu %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "fichier image %s illisible "
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "fichier image %s illisible : %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "le fichier téléchargé n’est pas lisible: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s a déjà des numéros de section attribués (toctree numérotés emboîtés ?)"
@@ -2444,7 +2498,7 @@ msgstr "%s a déjà des numéros de section attribués (toctree numérotés embo
msgid "Would create file %s."
msgstr "Créerait le fichier %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2456,149 +2510,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nCherche récursivement dans <MODULE_PATH> des modules et packages Python et crée\ndans <OUTPUT_PATH> un fichier reST par package avec des directives automodule.\n\nLes <EXCLUDE_PATTERN>s peuvent être tout pattern de fichiers et/ou de répertoires à exclure.\n\nNote : par défaut ce script n'écrasera pas des fichiers déjà créés."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "chemin vers le module à documenter"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "patterns de fichier fnmatch-style et/ou répertoire à exclure"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "répertoire où placer toutes les sorties"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "Nombre maximum de sous-modules visibles dans la table des matières (par défaut : 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "remplacer les fichiers existants"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "suivre les liens symboliques. Très utile en combinaison avec collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "exécuter le script sans créer les fichiers"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "afficher la documentation de chaque module sur sa propre page"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "inclure le module \"_private\""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "nom du fichier de table des matières (défaut : modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "ne pas créer de fichier de table des matières"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "ne pas créer de titres pour le module ou package (e.g. lorsque les doctrings en fournissent déjà)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "mettre la documentation du module avant celle du sous-module"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interprète les chemins de module selon la spécification PEP-0420 des espaces implicites de noms"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "extension du fichier (par défaut : rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "générer un projet complet avec sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "ajoute module_path à la fin de sys.path, utilisé lorsque --full est présent"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "nom du projet (par défaut : nom du module principal)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "auteur(s) du projet, utilisé quand l'option -full est précisée"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "version du projet, utilisé quand l'option -full est précisée"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "révision du projet, utilisé lorsque --full est présent, par défaut reprend --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "options relatives aux extensions"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s n'est pas un répertoire"
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "la section \"%s\" est étiquettée \"%s\""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "regex invalide %r dans %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Vérification du taux de couverture documentaire dans les sources achevée, voir les résultats dans %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "regex invalide %r dans coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "API C non documentée : %s [%s] dans le fichier %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "le module %s ne pas être importé : %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "fonction python non documentée: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "classe python non documentée: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "méthode python non documentée: %s :: %s :: %s"
@@ -2622,24 +2676,24 @@ msgstr "%s n'est pas une option pyversion valide"
msgid "invalid TestCode type"
msgstr "type invalide de TestCode"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Exécution des doctests des sources achevée, voir les résultats dans %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "pas de code ou sortie dans le bloc %s en %s : %s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "code doctest invalide sera ignoré : %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== durées de lecture les plus lentes ======================="
@@ -2650,32 +2704,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "le lien %r codé en dur pourrait être remplacé par un extlink (essayez d'utiliser %r à la place)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "La directive Graphviz ne peut pas avoir simultanément du contenu et un argument de nom de fichier"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Fichier externe Graphviz %r non trouvé ou échec de sa lecture"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Directive « graphviz » sans contenu ignorée."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
-msgstr ""
+msgstr "Le chemin de l'exécutable de graphviz_dot doit être défini ! %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "la commande dot %r ne peut pas être exécutée (nécessaire pour le rendu graphviz). Vérifiez le paramètre graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2685,7 +2739,7 @@ msgid ""
"%r"
msgstr "dot a terminé avec une erreur :\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2695,27 +2749,27 @@ msgid ""
"%r"
msgstr "dot n'a pas produit de fichier de sortie : \n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format doit être « png » ou « svg », mais est %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "dot code %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graphe: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graphe]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2723,7 +2777,7 @@ msgid ""
"Traceback: %s"
msgstr "Impossible d’exécuter la commande de conversion d'image %r. 'sphinx.ext.imgconverter' nécessite par défaut ImageMagick. Assurez-vous que ce dernier est installé, ou configurez l’option 'image_converter' pour faire référence à une commande de conversion ad hoc.\n\nTrace d’appels : %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2733,173 +2787,178 @@ msgid ""
"%r"
msgstr "convert a terminé avec une erreur :\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "la commande convert %r ne peut pas être exécutée; vérifiez le paramètre image_converter"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "La commande LaTeX %r (nécessaire pour le rendu des équations mathématiques), ne peut pas être exécutée, vérifier le paramètre imgmath_latex"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "La commande de %s, %r, ne pas être exécuté (nécessaire pour display mathématique), vérifier la configuration imgmath_%s"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "latex de type display %r : %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "latex en ligne %r : %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
-msgstr ""
+msgstr "Lien vers cette équation"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "l’inventaire intersphinx a bougé : %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "chargement de l'inventaire intersphinx de %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "quelques problèmes ont été rencontrés avec quelques uns des inventaires, mais ils disposaient d'alternatives fonctionnelles :"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "échec d'accès à un quelconque inventaire, messages de contexte suivants :"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(disponible dans %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(dans %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "inventaire pour la référence croisée externe non trouvé : %s"
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "rôle pour la référence croisée externe non trouvé : %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "%sexterne :%s cible de référence non trouvée : %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "l’identifiant intersphinx %r n'est pas une chaîne. Il sera ignoré"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "Échec de la lecture de intersphinx_mapping[%s]; ignoré : %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[source]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "À faire"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "Entrée TODO trouvée : %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<entrée originale>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(l'<<entrée originale>> se trouve dans %s, à la ligne %d)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "entrée originale"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "Coloration syntaxique du code du module..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Code du module"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Code source de %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Vue d'ensemble : code du module"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Modules pour lesquels le code est disponible</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "valeur invalide pour l'option member-order : %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "valeur invalide pour l'option class-doc-from : %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "signature invalide pour auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "erreur pendant la mise en forme de l'argument %s:%s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc : n'a pas réussi à déterminer %s.%s (%r) devait être documenté, l'exception suivante a été levée :\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2907,112 +2966,112 @@ msgid ""
"explicit module name)"
msgstr "module à importer pour auto-documenter %r est inconnu (essayer de placer une directive \"module\" ou \"currentmodule\" dans le document, ou de donner un nom de module explicite)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "Un faux objet a été détecté : %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "erreur lors du formatage de la signature pour %s : %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" dans le nom d'automodule n'a pas de sens"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "arguments de signature ou annotation de return donnés pour l’automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ devrait être une liste de chaînes, pas %r (dans module %s) -- __all__ sera ignoré"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "attribut manquant mentionné dans l'option :members: : module %s, attribut %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "Échec pour obtenir la signature de la fonction pour %s : %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "Échec pour obtenir la signature du constructeur pour %s : %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Bases : %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "attribut manquant %s dans l'objet %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "alias de %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "alias de TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "Échec pour obtenir la signature de la méthode pour %s : %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "Invalide __slots__ trouvé sur %s. Ignoré."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "Impossible d'analyser une valeur d'argument par défaut pour %r : %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "Échec de la mise à jour de la signature pour %r : paramètre non trouvé : %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "Échec de l'analyse de type_comment pour %r : %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "autosummary fait référence au document exclu %r. Ignoré"
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary : fichier stub non trouvé %r. Vérifiez votre paramètre autosummary_generate."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "Un résumé automatique sous-titré nécessite l'option :toctree:. Ignoré."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -3020,26 +3079,26 @@ msgid ""
"%s"
msgstr "autosummary : échec de l'importation de %s.\nIndications possibles :\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "échec de l’analyse du nom %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "échec d’importation de l'object %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate : fichier nontrouvé : %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary engendre les fichiers .rst de manière interne. Mais votre source_suffix ne contient pas .rst. Ignoré."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3112,99 +3171,99 @@ msgid ""
"%(default)s)"
msgstr "documenter exactement les membres dans l'attribut __all__ du module. (par défaut : %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Arguments de mots-clés"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Exemple"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Exemples"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Notes"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Autres paramètres"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "Reçoit"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Références"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Avertissements"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Yields"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "ensemble invalide de valeurs (accolade fermante manquante) : %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "ensemble invalide de valeurs (accolade ouvrante manquante) :%s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "chaîne littérale malformée (guillemet fermant manquant) : %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "chaîne littérale malformée (guillemet ouvrant manquant) : %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Attention"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Prudence"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Danger"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Erreur"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Indication"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Important"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Note"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Voir aussi"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Astuce"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Avertissement"
@@ -3236,7 +3295,7 @@ msgid "Table of Contents"
msgstr "Table des matières"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Recherche"
@@ -3334,7 +3393,7 @@ msgstr "Copyright"
#: sphinx/themes/basic/layout.html:194 sphinx/themes/basic/layout.html:200
#, python-format
msgid "&#169; %(copyright_prefix)s %(copyright)s."
-msgstr ""
+msgstr "&#169; %(copyright_prefix)s %(copyright)s."
#: sphinx/themes/basic/layout.html:212
#, python-format
@@ -3369,34 +3428,22 @@ msgstr "Sujet suivant"
msgid "next chapter"
msgstr "Chapitre suivant"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Veuillez activer le JavaScript pour que la recherche fonctionne."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Une recherche sur plusieurs mots ne retourne que les résultats contenant tous les mots."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "rechercher"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Résultats de la recherche"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Votre recherche ne correspond à aucun document. Veuillez vérifier que les mots sont correctement orthographiés et que vous avez sélectionné assez de catégories."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Recherche rapide"
@@ -3433,20 +3480,30 @@ msgstr "Modifications de l'API C"
msgid "Other changes"
msgstr "Autres modifications"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Résultats de la recherche"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Votre recherche ne correspond à aucun document. Veuillez vérifier que les mots sont correctement orthographiés et que vous avez sélectionné assez de catégories."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "Recherche terminée, ${resultCount} page(s) correspondant à la requête de recherche ont été trouvées."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Recherche en cours"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Préparation de la recherche..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", dans "
@@ -3467,30 +3524,30 @@ msgstr "Agrandir la barre latérale"
msgid "Contents"
msgstr "Contenu"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
-msgstr ""
+msgstr "impossible de calculer l'avancement de la traduction !"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
-msgstr ""
+msgstr "pas d'éléments traduits !"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "index trouvé avec style ancien à 4 colonnes. Possiblement un bogue d’extensions que vous utilisez : %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "La note de bas de page [%s] n'est pas référencée."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "La note de bas de page [#] n'est pas référencée."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3502,13 +3559,13 @@ msgid ""
"{1}"
msgstr "incohérences de références dans le message traduit. Original : {0}, traduit : {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "incohérences de références de citation dans le message traduit. Original : {0}, traduit : {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3535,97 +3592,97 @@ msgstr "%s:%s cible de référence non trouvée : %s"
msgid "%r reference target not found: %s"
msgstr "%r cible de référence non trouvée : %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "impossible d'atteindre l'image distante %s[%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "impossible d'atteindre l'image distante %s[%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Format d'image inconnu : %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "le caractère source est indécodable, il sera remplacé par \"?\" : %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "ignoré"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "échoué"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "Problème dans le domaine %s : le champ est censé utiliser le rôle '%s', mais ce rôle ne figure pas dans le domaine."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "nom de rôle ou de directive inconnu: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "type de node inconnu : %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "erreur de lecture : %s,%s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "erreur d'écriture : %s,%s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
-msgstr ""
+msgstr "locale_dir %s n'existe pas"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Format de date invalide. Insérez la chaîne de caractères entre des guillemets simples si vous voulez l'afficher telle quelle : %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
-msgstr ""
+msgstr "%r est obsolète pour les entrées d'index (à partir de l'entrée %r). Utilisez plutôt 'pair:%s'."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "la table des matières contient des références à des fichiers inexistants %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "exception pendant l’évaluation de l'expression de la directive only : %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "rôle par défaut %s introuvable"
#: sphinx/writers/html5.py:100 sphinx/writers/html5.py:109
msgid "Link to this definition"
-msgstr ""
+msgstr "Lien vers cette définition"
#: sphinx/writers/html5.py:397
#, python-format
@@ -3639,29 +3696,29 @@ msgstr "Aucun ID assigné au node %s"
#: sphinx/writers/html5.py:462
msgid "Link to this term"
-msgstr ""
+msgstr "Lien vers ce terme"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
-msgstr ""
+msgstr "Lien vers cette rubrique"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
-msgstr ""
+msgstr "Lien vers ce tableau"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
-msgstr ""
+msgstr "Lien vers ce code"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
-msgstr ""
+msgstr "Lien vers cette image"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
-msgstr ""
+msgstr "Lien vers cette table des matières"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "impossible d'obtenir la taille de l'image. L'option :scale: est ignorée."
@@ -3678,13 +3735,13 @@ msgstr ":maxdepth: trop grand, ignoré."
msgid "document title is not a single Text node"
msgstr "le titre du document n'est pas un unique node de type Text"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "le titre de node rencontré n'est apparenté à aucun parmi section, topic, table, admonition ou sidebar"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Notes de bas de page"
@@ -3703,20 +3760,20 @@ msgstr "%s est invalide comme unité de dimension. Ignoré."
msgid "unknown index entry type %s found"
msgstr "le type inconnu d’entrée d’index %s a été trouvé"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[image: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[image]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "la légende n'est pas à l'intérieur de la figure."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "type de node non-implémenté : %r"
diff --git a/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo b/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo
index 312f50f..72fdf6a 100644
--- a/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po b/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po
index a24e259..dd03219 100644
--- a/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fr_FR/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French (France) (http://app.transifex.com/sphinx-doc/sphinx-1/language/fr_FR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: fr_FR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/gl/LC_MESSAGES/sphinx.js b/sphinx/locale/gl/LC_MESSAGES/sphinx.js
index fc63ba3..48fbe9c 100644
--- a/sphinx/locale/gl/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/gl/LC_MESSAGES/sphinx.js
@@ -1,60 +1,60 @@
Documentation.addTranslations({
"locale": "gl",
"messages": {
- "%(filename)s &#8212; %(docstitle)s": "",
- "&#169; %(copyright_prefix)s %(copyright)s.": "",
- ", in ": "",
- "About these documents": "",
- "Automatically generated list of changes in version %(version)s": "",
- "C API changes": "",
- "Changes in Version %(version)s &#8212; %(docstitle)s": "",
- "Collapse sidebar": "",
- "Complete Table of Contents": "",
- "Contents": "",
- "Copyright": "",
- "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
- "Expand sidebar": "",
- "Full index on one page": "",
- "General Index": "",
- "Global Module Index": "",
- "Go": "",
- "Hide Search Matches": "",
- "Index": "",
- "Index &ndash; %(key)s": "",
- "Index pages by letter": "",
- "Indices and tables:": "",
- "Last updated on %(last_updated)s.": "",
- "Library changes": "",
- "Navigation": "",
- "Next topic": "",
- "Other changes": "",
- "Overview": "",
- "Please activate JavaScript to enable the search\n functionality.": "",
- "Preparing search...": "",
- "Previous topic": "",
- "Quick search": "",
- "Search": "",
- "Search Page": "",
- "Search Results": "",
- "Search finished, found ${resultCount} page(s) matching the search query.": "",
- "Search within %(docstitle)s": "",
- "Searching": "",
- "Searching for multiple words only shows matches that contain\n all words.": "",
- "Show Source": "",
- "Table of Contents": "",
- "This Page": "",
- "Welcome! This is": "",
- "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "",
- "all functions, classes, terms": "",
- "can be huge": "",
- "last updated": "",
- "lists all sections and subsections": "",
- "next chapter": "",
- "previous chapter": "",
- "quick access to all modules": "",
- "search": "",
- "search this documentation": "",
- "the documentation for": ""
+ "%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s",
+ "&#169; %(copyright_prefix)s %(copyright)s.": "&#169; %(copyright_prefix)s %(copyright)s.",
+ ", in ": ", en ",
+ "About these documents": "Sobre estes documentos",
+ "Automatically generated list of changes in version %(version)s": "Lista xerada automaticamente de cambios na versi\u00f3n %(version)s",
+ "C API changes": "Cambios na API C",
+ "Changes in Version %(version)s &#8212; %(docstitle)s": "Cambios na versi\u00f3n %(version)s &#8212; %(docstitle)s",
+ "Collapse sidebar": "Contraer a barra lateral",
+ "Complete Table of Contents": "\u00cdndice completo",
+ "Contents": "Contidos",
+ "Copyright": "Dereitos de autor\u00eda",
+ "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Creado usando <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
+ "Expand sidebar": "Expandir a barra lateral",
+ "Full index on one page": "\u00cdndice completo nunha p\u00e1xina",
+ "General Index": "\u00cdndice xeral",
+ "Global Module Index": "\u00cdndice global de m\u00f3dulos",
+ "Go": "Ir",
+ "Hide Search Matches": "Agochar as coincidencias da busca",
+ "Index": "\u00cdndice",
+ "Index &ndash; %(key)s": "\u00cdndice &ndash; %(key)s",
+ "Index pages by letter": "\u00cdndice de p\u00e1xinas por letra",
+ "Indices and tables:": "\u00cdndices e t\u00e1boas:",
+ "Last updated on %(last_updated)s.": "\u00daltima actualizaci\u00f3n o %(last_updated)s.",
+ "Library changes": "Cambios na biblioteca",
+ "Navigation": "Navegaci\u00f3n",
+ "Next topic": "Seguinte tema",
+ "Other changes": "Outros cambios",
+ "Overview": "Vista xeral",
+ "Please activate JavaScript to enable the search\n functionality.": "Active JavaScript para activar a funci\u00f3n\n de busca.",
+ "Preparing search...": "Preparando a busca\u2026",
+ "Previous topic": "Tema anterior",
+ "Quick search": "Busca r\u00e1pida",
+ "Search": "Busca",
+ "Search Page": "P\u00e1xina de busca",
+ "Search Results": "Resultados da busca",
+ "Search finished, found ${resultCount} page(s) matching the search query.": "Busca finalizada, atoparonse ${resultCount} p\u00e1xinas coincidentes coa consulta de busca.",
+ "Search within %(docstitle)s": "Buscar dentro do/a %(docstitle)s",
+ "Searching": "Buscando",
+ "Searching for multiple words only shows matches that contain\n all words.": "Ao buscar varias palabras s\u00f3 se amosan as coincidencias que\n conte\u00f1an todas as palabras.",
+ "Show Source": "Amosar o c\u00f3digo fonte",
+ "Table of Contents": "\u00cdndice",
+ "This Page": "Esta p\u00e1xina",
+ "Welcome! This is": "D\u00e1moslle a benvida! Isto \u00e9",
+ "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "A s\u00faa busca non coincide con ning\u00fan documento. Aseg\u00farese de que todas as palabras estean escritas correctamente e de que seleccionou categor\u00edas abondo.",
+ "all functions, classes, terms": "todas as funci\u00f3ns, clases, termos",
+ "can be huge": "pode ser enorme",
+ "last updated": "\u00faltima actualizaci\u00f3n",
+ "lists all sections and subsections": "lista todas as secci\u00f3ns e subsecci\u00f3ns",
+ "next chapter": "seguinte cap\u00edtulo",
+ "previous chapter": "cap\u00edtulo anterior",
+ "quick access to all modules": "acceso r\u00e1pido a todos os m\u00f3dulos",
+ "search": "buscar",
+ "search this documentation": "buscar esta documentaci\u00f3n",
+ "the documentation for": "a documentaci\u00f3n para"
},
"plural_expr": "(n != 1)"
}); \ No newline at end of file
diff --git a/sphinx/locale/gl/LC_MESSAGES/sphinx.mo b/sphinx/locale/gl/LC_MESSAGES/sphinx.mo
index aaa18b8..741e6fd 100644
--- a/sphinx/locale/gl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/gl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/gl/LC_MESSAGES/sphinx.po b/sphinx/locale/gl/LC_MESSAGES/sphinx.po
index 4f7f87f..8f4fd2e 100644
--- a/sphinx/locale/gl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/gl/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,21 +8,21 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\n"
"Language-Team: Galician (http://app.transifex.com/sphinx-doc/sphinx-1/language/gl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/application.py:157
#, python-format
msgid "Cannot find source directory (%s)"
-msgstr "Non é posíbel atopar o directorio de orixe (%s)"
+msgstr "Non é posíbel atopar o directorio fonte (%s)"
#: sphinx/application.py:161
#, python-format
@@ -31,111 +31,111 @@ msgstr "O directorio de saída (%s) non é un directorio"
#: sphinx/application.py:165
msgid "Source directory and destination directory cannot be identical"
-msgstr "O directorio de orixe e o directorio de destino non poden ser idénticos"
+msgstr "O directorio fonte e o directorio de destino non poden ser idénticos"
#: sphinx/application.py:197
#, python-format
msgid "Running Sphinx v%s"
msgstr "Executando Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
-msgstr "Este proxecto necesita polo menos Sphinx v%s e, polo tanto, non se pode construír con esta versión."
+msgstr "Este proxecto necesita polo menos Sphinx v%s e, polo tanto, non é posíbel compilalo con esta versión."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
-msgstr "facendo o directorio de saída"
+msgstr "creando o directorio de saída"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "ao configurar a extensión %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "«setup» tal como se define actualmente en conf.py non é un invocábel de Python. Modifique a súa definición para que sexa unha función invocábel. Isto é necesario para que conf.py se comporte como unha extensión Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "cargando traducións [%s]…"
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "feito"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "non dispoñíbel para mensaxes integradas"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
-msgstr "cargando ambiente en preparado (pickled)"
+msgstr "cargando o contorno preparado –pickled–"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "produciuse un fallo: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
-msgstr "Non se seleccionou ningún construtor, usando de xeito predeterminado: html"
+msgstr "Non foi seleccionado ningún construtor, de xeito predeterminado usase: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "conseguido"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
-msgstr "rematou con problemas"
+msgstr "finalizou con problemas"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
-msgstr "compilación %s,%s advertencia (coas advertencias tratadas como erros)."
+msgstr "construción %s,%s advertencia (coas advertencias tratadas como erros)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
-msgstr "compilación %s,%s advertencias (coas advertencias tratadas como erros)."
+msgstr "construción %s,%s advertencias (coas advertencias tratadas como erros)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
-msgstr "compilación %s, %s advertencia."
+msgstr "construción %s, %s advertencia."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
-msgstr "compilación %s, %s advertencias."
+msgstr "construción %s, %s advertencias."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
-msgstr "compilación %s."
+msgstr "construción %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "a clase de nodo %r xa está rexistrada, os seus visitantes van ser substituídos"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "a directiva %r xa está rexistrada, vai ser substituída"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "o rol %r xa está rexistrado, vai ser substituído"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,1087 +143,1129 @@ msgid ""
"explicit"
msgstr "a extensión %s non declara se é segura para a lectura en paralelo, asumindo que non o sexa; pídalle ao autor da extensión que o comprobe e que o faga explícito"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "a extensión %s non é segura para a lectura en paralelo"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
"assuming it isn't - please ask the extension author to check and make it "
"explicit"
-msgstr ""
+msgstr "a extensión %s non declara se é segura para a escritura en paralelo, asumindo que non o sexa; pídalle ao autor da extensión que o comprobe e que o faga explícito"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
-msgstr ""
+msgstr "a extensión %s non é segura para a escritura en paralelo"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
-msgstr ""
+msgstr "seriando %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
-msgstr ""
+msgstr "o directorio de configuración non contén un ficheiro conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
-msgstr ""
+msgstr "Atopouse un valor de configuración non válido: «language = None». Actualice a súa configuración a un código de idioma válido. Volvendo a «en» (inglés)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
-msgstr ""
+msgstr "non é posíbel substituír o axuste de configuración do dicionario %r, é ignorado (use %r para definir elementos individuais)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
-msgstr ""
+msgstr "o número %r non é válido para o valor de configuración %r, é ignorado"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
-msgstr ""
+msgstr "non é posíbel anular o axuste de configuración %r cun tipo non compatíbel, é ignorado"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
-msgstr ""
+msgstr "valor de configuración descoñecido %r na substitución, é ignorado"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
+msgstr "O valor de configuración %r xa está presente"
+
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
-msgstr ""
+msgstr "Hai un erro de sintaxe no seu ficheiro de configuración: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
-msgstr ""
+msgstr "O ficheiro de configuración (ou un dos módulos que importa) chama a sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
"\n"
"%s"
+msgstr "Hai un erro programábel no seu ficheiro de configuración:\n\n%s"
+
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
-msgstr ""
+msgstr "O valor de configuración «source_suffix» agarda unha cadea, lista de cadeas ou dicionario. Mais Vde. da «%r»."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
-msgstr ""
+msgstr "Sección %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
-msgstr ""
+msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
-msgstr ""
+msgstr "Táboa %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
-msgstr ""
+msgstr "Listaxe %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
-msgstr ""
+msgstr "O valor de configuración «{name}» ten que ser un de {candidates}, mais Vde. da «{current}»."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
-msgstr ""
+msgstr "O valor de configuración «{name}» ten o tipo «{current.__name__}»; agardábase {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
-msgstr ""
+msgstr "O valor de configuración «{name}» ten o tipo «{current.__name__}»; o valor predeterminado é «{default.__name__}»."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
-msgstr ""
+msgstr "Non se atopou primary_domain %r non atopado, é ignorado."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
-msgstr ""
+msgstr "Desde a versión 2.0, Sphinx usa «index» como root_doc como predeterminado. Engada «root_doc = 'contents'» ao seu conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
-msgstr ""
+msgstr "O evento %r xa está presente"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
-msgstr ""
+msgstr "Nome de evento descoñecido: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
-msgstr ""
+msgstr "O controlador %r do evento %r lanzou unha excepción"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
-msgstr ""
+msgstr "Os axustes de needs_extensions, precisan a extensión %s, mais non está cargada."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
-msgstr ""
+msgstr "Este proxecto necesita a extensión %s polo menos na versión %s e, polo tanto, non é posíbel compilar coa versión cargada (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
-msgstr ""
+msgstr "O nome do analizador léxico Pygments %r é descoñecido"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
-msgstr ""
+msgstr "A analise léxica de literal_block %r como «%s» provocou un erro no testemuño: %r. Tentando de novo en modo relaxado."
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
-msgstr ""
+msgstr "atopáronse varios ficheiros para o documento «%s»: %r\nUse %r para a construción."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
-msgstr ""
+msgstr "Ignorouse o documento ilexíbel %r."
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
-msgstr ""
+msgstr "A clase %s do construtor non ten atributo «name»"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
-msgstr ""
+msgstr "O construtor %r xa existe (no módulo %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
-msgstr ""
+msgstr "O nome do construtor %s non está rexistrado ou dispoñíbel a través do punto de entrada"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
-msgstr ""
+msgstr "O nome do construtor %s non está rexistrado"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
-msgstr ""
+msgstr "o dominio %s xa está rexistrado"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
-msgstr ""
+msgstr "o dominio %s aínda non está rexistrado"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
-msgstr ""
+msgstr "A directiva %r xa está rexistrada no dominio %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
-msgstr ""
+msgstr "O rol %r xa está rexistrado no dominio %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
-msgstr ""
+msgstr "O índice %r xa está rexistrado no dominio %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
-msgstr ""
+msgstr "O object_type %r xa está rexistrado"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
-msgstr ""
+msgstr "O crossref_type %r xa está rexistrado"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
-msgstr ""
+msgstr "source_sufix %r xa está rexistrado"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
-msgstr ""
+msgstr "source_parser para %r xa está rexistrado"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
-msgstr ""
+msgstr "O analizador de fontes para %s non está rexistrado"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
-msgstr ""
+msgstr "Xa existe o tradutor para %r"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
-msgstr ""
+msgstr "Os argumentos de palabras clave –kwargs– para add_node() deben ser tuplas de funcións «(visitar, saír)»: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
-msgstr ""
+msgstr "enumerable_node %r xa está rexistrado"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
-msgstr ""
+msgstr "O representador matemático %s xa está rexistrado"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
-msgstr ""
+msgstr "a extensión %r xa estaba fusionada con Sphinx dende a versión %s; esta extensión é ignorada."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
-msgstr ""
+msgstr "Excepción orixinal:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
-msgstr ""
+msgstr "Non foi posíbel importar a extensión %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
-msgstr ""
+msgstr "a extensión %r non ten ningunha función setup(); é realmente un módulo de extensión Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
-msgstr ""
+msgstr "A extensión %s utilizada por este proxecto necesita polo menos Sphinx v%s e, polo tanto, non é posíbel compilar con esta versión."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
-msgstr ""
+msgstr "a extensión %r devolveu un obxecto non compatíbel dende a súa función setup(); debería devolver «None» ou un dicionario de metadatos"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
-msgstr ""
+msgstr "Propostas de mellora de Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
-msgstr ""
+msgstr "número PEP non válido %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
+msgstr "número RFC non válido %s"
+
+#: sphinx/theming.py:125
+#, python-format
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "o axuste %s.%snon aparece en ningunha das configuracións de temas buscadas"
+
+#: sphinx/theming.py:140
+#, python-format
+msgid "unsupported theme option %r given"
+msgstr "a opción %r non é compatíbel co tema"
+
+#: sphinx/theming.py:206
+#, python-format
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "o ficheiro %r na ruta do tema non é un ficheiro zip válido ou non contén ningún tema"
+
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:259
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:262
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:295
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme configuration file found in %r"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:323 sphinx/theming.py:374
#, python-format
-msgid "unsupported theme option %r given"
+msgid "theme %r doesn't have the \"theme\" table"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:327
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:335
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
msgid "a suitable image for %s builder not found: %s (%s)"
-msgstr ""
+msgstr "non se atopou unha imaxe axeitada para o construtor %s: %s (%s)"
#: sphinx/builders/__init__.py:187
#, python-format
msgid "a suitable image for %s builder not found: %s"
-msgstr ""
+msgstr "non se atopou unha imaxe axeitada para o construtor %s: %s"
#: sphinx/builders/__init__.py:207
msgid "building [mo]: "
-msgstr ""
+msgstr "construíndo [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
-msgstr ""
+msgstr "escribindo a saída…"
#: sphinx/builders/__init__.py:217
#, python-format
msgid "all of %d po files"
-msgstr ""
+msgstr "todos, os %d, ficheiros «po»"
#: sphinx/builders/__init__.py:235
#, python-format
msgid "targets for %d po files that are specified"
-msgstr ""
+msgstr "obxectivos para os %d ficheiros «po» que se especifican"
#: sphinx/builders/__init__.py:243
#, python-format
msgid "targets for %d po files that are out of date"
-msgstr ""
+msgstr "obxectivos para os %d ficheiros «po» que están desactualizados"
#: sphinx/builders/__init__.py:252
msgid "all source files"
-msgstr ""
+msgstr "todos os ficheiros fonte"
#: sphinx/builders/__init__.py:262
#, python-format
msgid "file %r given on command line does not exist, "
-msgstr ""
+msgstr "o ficheiro %r indicado na liña de ordes non existe,"
#: sphinx/builders/__init__.py:267
#, python-format
msgid ""
"file %r given on command line is not under the source directory, ignoring"
-msgstr ""
+msgstr "o ficheiro %r indicado na liña de ordes non está no directorio fonte, é ignorado"
#: sphinx/builders/__init__.py:273
#, python-format
msgid "file %r given on command line is not a valid document, ignoring"
-msgstr ""
+msgstr "o ficheiro %r indicado na liña de ordes non é un documento válido, é ignorado"
#: sphinx/builders/__init__.py:282
#, python-format
msgid "%d source files given on command line"
-msgstr ""
+msgstr "%d ficheiros fonte indicados na liña de ordes"
#: sphinx/builders/__init__.py:294
#, python-format
msgid "targets for %d source files that are out of date"
-msgstr ""
+msgstr "obxectivos para %d ficheiros fonte que non están actualizados"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
-msgstr ""
+msgstr "construíndo [%s]: "
#: sphinx/builders/__init__.py:316
msgid "looking for now-outdated files... "
-msgstr ""
+msgstr "buscando ficheiros xa desactualizados…"
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
-msgstr ""
+msgstr "atopouse %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
-msgstr ""
+msgstr "non se atopou nada"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
-msgstr ""
+msgstr "preparando –pickling– o contorno"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
-msgstr ""
+msgstr "comprobando a coherencia"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
-msgstr ""
+msgstr "non hai ningún obxectivo desactualizado"
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
-msgstr ""
+msgstr "actualizando o contorno:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
-msgstr ""
+msgstr "%s engadido(s), %s cambiado(s), %s retirado(s)"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
-msgstr ""
+msgstr "lendo as fontes…"
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
-msgstr ""
+msgstr "nomes de documentos –docnames– para escribir: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
-msgstr ""
+msgstr "preparando os documentos"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
-msgstr ""
+msgstr "copiando activos"
#: sphinx/builders/_epub_base.py:215
#, python-format
msgid "duplicated ToC entry found: %s"
-msgstr ""
+msgstr "atopouse unha entrada do Ãndice duplicada: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
-msgstr ""
+msgstr "copiando as imaxes…"
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
-msgstr ""
+msgstr "non é posíbel ler o ficheiro de imaxe %r: no seu canto cópieo"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
-msgstr ""
+msgstr "non é posíbel copiar o ficheiro de imaxe %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
-msgstr ""
+msgstr "non é posíbel escribir o ficheiro de imaxe %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
-msgstr ""
+msgstr "non se atopou «Pillow»: copiando ficheiros de imaxe"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
-msgstr ""
+msgstr "escribindo o ficheiro tipo MIME…"
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
-msgstr ""
+msgstr "escribindo o ficheiro META-INF/container.xml…"
#: sphinx/builders/_epub_base.py:508
msgid "writing content.opf file..."
-msgstr ""
+msgstr "escribindo o ficheiro content.opf…"
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
-msgstr ""
+msgstr "tipo MIME descoñecido para %s, é ignorado"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
-msgstr ""
+msgstr "escribindo o ficheiro toc.ncx…"
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
-msgstr ""
+msgstr "escribindo o ficheiro %s…"
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
-msgstr ""
+msgstr "O ficheiro de vista xeral está en %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
-msgstr ""
+msgstr "sen cambios na versión %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
-msgstr ""
+msgstr "escribindo o ficheiro de resumo…"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
-msgstr ""
+msgstr "Integrados"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
-msgstr ""
+msgstr "Nivel de módulo"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
-msgstr ""
+msgstr "copiando os ficheiros fonte…"
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
-msgstr ""
+msgstr "non foi posíbel ler %r para a creación do rexistro de cambios"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
-msgstr ""
+msgstr "O simulador do construtor non xera ficheiros."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
-msgstr ""
+msgstr "O ficheiro ePub está en %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
-msgstr ""
+msgstr "escribindo o ficheiro nav.xhtml…"
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_language» (ou «idioma») non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
-msgstr ""
+msgstr "o valor de configuración epub_uid» debería ser NOME XML para EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_title» (ou «html_title») non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_author» non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_contributor» non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_description» non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_publisher» non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_copyright» (ou «copyright») non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «epub_identifier» non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
-msgstr ""
+msgstr "o valor de configuración «version» non pode estar baleiro para EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
-msgstr ""
+msgstr "css_file non válido: %r, é ignorado"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
-msgstr ""
+msgstr "os catálogos de mensaxes están en %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
-msgstr ""
+msgstr "obxectivos para %d ficheiros de modelos"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
-msgstr ""
+msgstr "lendo os modelos…"
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
-msgstr ""
+msgstr "escribindo os catálogos de mensaxes…"
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
-msgstr ""
+msgstr "Buscar algún erro na saída anterior ou en %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
-msgstr ""
+msgstr "ligazón rachada: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
-msgstr ""
+msgstr "Produciuse un erro ao compilar a expresión regular en «linkcheck_allowed_redirects»: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
-msgstr ""
+msgstr "As páxinas do manual están en %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
-msgstr ""
+msgstr "non se atopou ningún valor de configuración «man_pages»; non se escribirá ningunha páxina de manual"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
-msgstr ""
+msgstr "escribindo"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
-msgstr ""
+msgstr "o valor de configuración «man_pages» fai referencia a un documento %s descoñecido"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
-msgstr ""
+msgstr "A páxina HTML está en %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
-msgstr ""
+msgstr "estase a montar un documento único"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
-msgstr ""
+msgstr "escribindo ficheiros adicionais"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
-msgstr ""
+msgstr "Os ficheiros «Texinfo» están en %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
-msgstr ""
+msgstr "\nExecute «make» nese directorio para executalos a través de makeinfo\n(use aquí «make info» para facelo automaticamente)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
-msgstr ""
+msgstr "non se atopou ningún valor de configuración «texinfo_documents»; non se escribirá ningún documento"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
-msgstr ""
+msgstr "o valor de configuración «texinfo_documents» fai referencia a un documento %s descoñecido"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
-msgstr ""
+msgstr "procesando %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
-msgstr ""
+msgstr "resolvendo referencias…"
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
-msgstr ""
+msgstr "(en"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
-msgstr ""
+msgstr "copiando os ficheiros de compatibilidade de Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
-msgstr ""
+msgstr "produciuse un erro ao escribir o ficheiro «Makefile»: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
-msgstr ""
+msgstr "os ficheiros de texto están en %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
-msgstr ""
+msgstr "produciuse un erro ao escribir o ficheiro %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
-msgstr ""
+msgstr "Os ficheiros XML están en %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
-msgstr ""
+msgstr "Os ficheiros pseudo-XML están en %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
-msgstr ""
+msgstr "o ficheiro de información da construción rachou: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
-msgstr ""
+msgstr "As páxinas HTML están en %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
-msgstr ""
+msgstr "Produciuse un fallo ao ler o ficheiro de información da construción: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
-msgstr ""
+msgstr " %d.%b.%Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
-msgstr ""
+msgstr "Ãndice xeral"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
-msgstr ""
+msgstr "índice"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
-msgstr ""
+msgstr "seguinte"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
-msgstr ""
+msgstr "anterior"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
-msgstr ""
+msgstr "xerando os índices"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
-msgstr ""
+msgstr "escribindo as páxinas adicionais"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
-msgstr ""
+msgstr "copiando os ficheiros descargábeis…"
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
-msgstr ""
+msgstr "non é posíbel copiar o ficheiro descargábel %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
-msgstr ""
+msgstr "Produciuse un fallo ao copiar un ficheiro en html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
-msgstr ""
+msgstr "copiando os ficheiros estáticos"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
-msgstr ""
+msgstr "non é posíbel copiar o ficheiro estático %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
-msgstr ""
+msgstr "copiando os ficheiros adicionais"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
-msgstr ""
+msgstr "non é posíbel copiar o ficheiro adicional %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
-msgstr ""
+msgstr "Produciuse un fallo ao escribir o ficheiro de información da construción: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
-msgstr ""
+msgstr "non foi posíbel cargar o índice de busca, mais non se compilarán todos os documentos: o índice estará incompleto."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
-msgstr ""
+msgstr "a páxina %s coincide con dous patróns en html_sidebars: %r e %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
-msgstr ""
+msgstr "Produciuse un erro Unicode ao representar a páxina %s. Asegúrese de que todos os valores de configuración que teñan contido non ASCII sexan cadeas Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
-msgstr ""
+msgstr "Produciuse un erro ao representar a páxina %s.\nMotivo: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
-msgstr ""
+msgstr "envorcado do inventario de obxectos"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
-msgstr ""
+msgstr "envorcando o índice de busca en %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
-msgstr ""
+msgstr "js_file non válido: %r, é ignorado"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
-msgstr ""
+msgstr "Moitos math_renderers están rexistrados. Mais non foi seleccionado ningún math_renderer."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
-msgstr ""
+msgstr "Indicou un math_renderer descoñecido %r."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
-msgstr ""
+msgstr "A entrada html_extra_path %r non existe"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
-msgstr ""
+msgstr "A entrada html_extra_path %r colócase dentro do directorio de saída «outdir»"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
-msgstr ""
+msgstr "A entrada html_static_path %r non existe"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
-msgstr ""
+msgstr "A entrada html_static_path %r colócase dentro do directorio de saída «outdir»"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
-msgstr ""
+msgstr "o ficheiro de logotipo %r non existe"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
-msgstr ""
+msgstr "o ficheiro de favicon %r non existe"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
-msgstr ""
+msgstr "Sphinx xa non admite HTML 4. (nas opcións de configuración detectouse «html4_writer=True»)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
-msgstr ""
+msgstr "Documentación %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
-msgstr ""
+msgstr "Os ficheiros LaTeX están en %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
-msgstr ""
+msgstr "\nExecute «make» nese directorio para executalos a través de (pdf)latex\n(use aquí «make latexpdf» para facelo automaticamente)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
-msgstr ""
+msgstr "non se atopou ningún valor de configuración «latex_documents»; non se escribirá ningún documento"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
-msgstr ""
+msgstr "o valor de configuración «latex_documents» fai referencia a un documento %s descoñecido"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
-msgstr ""
+msgstr "Ãndice"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
-msgstr ""
+msgstr "Publicación"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
-msgstr ""
+msgstr "non hai ningunha opción de «Babel» coñecida para o idioma %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
-msgstr ""
+msgstr "copiando os ficheiros de compatibilidade de TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
-msgstr ""
+msgstr "copiando os ficheiros de compatibilidade de TeX…"
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
-msgstr ""
+msgstr "copiando os ficheiros adicionais"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
-msgstr ""
+msgstr "Chave de configuración descoñecida: latex_elements[%r], é ignorada."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
-msgstr ""
+msgstr "Opción de tema descoñecida: latex_theme_options[%r], é ignorada."
#: sphinx/builders/latex/theming.py:87
#, python-format
msgid "%r doesn't have \"theme\" setting"
-msgstr ""
+msgstr "%r non ten o axuste «theme»"
#: sphinx/builders/latex/theming.py:90
#, python-format
msgid "%r doesn't have \"%s\" setting"
-msgstr ""
+msgstr "%r non ten o axuste «%s»"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
-msgstr ""
+msgstr "Produciuse un fallo ao obter un nome de documento «docname»!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
-msgstr ""
+msgstr "Produciuse un fallo ao obter un nome de documento «docname» para a fonte {source!r}!"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
-msgstr ""
+msgstr "Non se atopou ningunha nota a rodapé para o nodo de referencia %r indicado"
#: sphinx/cmd/build.py:46
msgid "Exception occurred while building, starting debugger:"
-msgstr ""
+msgstr "Produciuse unha excepción durante a construción, iniciando o depurador:"
#: sphinx/cmd/build.py:61
msgid "Interrupted!"
-msgstr ""
+msgstr "Interrompido!"
#: sphinx/cmd/build.py:63
msgid "reST markup error:"
-msgstr ""
+msgstr "Produciuse un erro de marcado reST:"
#: sphinx/cmd/build.py:69
msgid "Encoding error:"
-msgstr ""
+msgstr "Produciuse un erro de codificación:"
#: sphinx/cmd/build.py:72 sphinx/cmd/build.py:87
#, python-format
msgid ""
"The full traceback has been saved in %s, if you want to report the issue to "
"the developers."
-msgstr ""
+msgstr "O rastrexo completo foi gardado en %s, se quere informar do incidente aos desenvolvedores."
#: sphinx/cmd/build.py:76
msgid "Recursion error:"
-msgstr ""
+msgstr "Produciuse un erro de recursividade:"
#: sphinx/cmd/build.py:79
msgid ""
"This can happen with very large or deeply nested source files. You can "
"carefully increase the default Python recursion limit of 1000 in conf.py "
"with e.g.:"
-msgstr ""
+msgstr "Isto pode ocorrer con ficheiros fonte moi grandes ou profundamente aniñados. Pode aumentar coidadosamente o límite de recursividade predeterminado de Python de 1000 en conf.py, p. ex.:"
#: sphinx/cmd/build.py:84
msgid "Exception occurred:"
-msgstr ""
+msgstr "Produciuse unha excepción:"
#: sphinx/cmd/build.py:90
msgid ""
"Please also report this if it was a user error, so that a better error "
"message can be provided next time."
-msgstr ""
+msgstr "Infórmeo tamén se se trata dun erro do usuario, para que a próxima vez se poida fornecer unha mensaxe de erro mellor."
#: sphinx/cmd/build.py:93
msgid ""
"A bug report can be filed in the tracker at <https://github.com/sphinx-"
"doc/sphinx/issues>. Thanks!"
-msgstr ""
+msgstr "Pódese presentar un informe no seguimento de erros en https://github.com/sphinx-doc/sphinx/issues. Grazas!"
#: sphinx/cmd/build.py:109
msgid "job number should be a positive number"
-msgstr ""
+msgstr "o número de traballo debe ser un número positivo"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
-msgstr ""
+msgstr "Para obter máis información, visite https://www.sphinx-doc.org/."
#: sphinx/cmd/build.py:118
msgid ""
@@ -1242,285 +1284,292 @@ msgid ""
"\n"
"By default, everything that is outdated is built. Output only for selected\n"
"files can be built by specifying individual filenames.\n"
-msgstr ""
+msgstr "\nXerar documentación a partir de ficheiros fonte.\n\n«sphinx-build» xera a documentación a partir dos ficheiros en SOURCEDIR e colócaa en OUTPUTDIR. Busca «conf.py» en SOURCEDIR para os axustes de configuración. A ferramenta «sphinx-quickstart» pódese usar para xerar ficheiros de modelos, incluído «conf.py»\n\n«sphinx-build» pode crear documentación en diferentes formatos. Selecciónase un formato especificando o nome do construtor na liña de ordes; o predeterminado é HTML. Os construtores tamén poden realizar outras tarefas relacionadas co procesamento da documentación.\n\nDe xeito predeterminado, todo o que está desactualizado está compilado. Pódese compilar só a saída para os ficheiros seleccionados especificando os nomes de ficheiro individuais.\n"
#: sphinx/cmd/build.py:139
msgid "path to documentation source files"
-msgstr ""
+msgstr "ruta aos ficheiros fonte da documentación"
#: sphinx/cmd/build.py:141
msgid "path to output directory"
-msgstr ""
+msgstr "ruta ao directorio de saída"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
-msgstr ""
+msgstr "opcións xerais"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
-msgstr ""
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
+msgstr "escribir todos os ficheiros (predeterminado: escribir só os ficheiros novos e modificados)"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr ""
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
+msgstr "non use un contorno gardado, lea sempre todos os ficheiros"
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
-msgstr ""
+msgid "override a setting in configuration file"
+msgstr "substituír un axuste no ficheiro de configuración"
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
-msgstr ""
+msgid "pass a value into HTML templates"
+msgstr "pasar un valor a modelos HTML"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr ""
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
+msgstr "definir etiqueta: inclúír «só» bloques con TAG"
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr "opcións de saída da consola"
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
-msgstr ""
+msgstr "aumenta a verbosidade (pódese repetir)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
-msgstr ""
+msgstr "sen saída en «stdout», só advertencias en «stderr»"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
-msgstr ""
+msgstr "sen ningunha saída, nin sequera advertencias"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
-msgstr ""
+msgstr "emite unha saída de cor (predeterminado: detección automática)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
+msgstr "non emite unha saída de cor (predeterminado: detección automática)"
+
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
-msgstr ""
+msgstr "escribe as advertencias (e os erros) no ficheiro indicado"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
-msgstr ""
+msgstr "converte as advertencias en erros"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
-msgstr ""
+msgstr "amosa o rastrexo completo na excepción"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
-msgstr ""
+msgstr "executar Pdb nunha excepción"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
-msgstr ""
+msgstr "non é posíbel combinar a opción -a e os nomes de ficheiro"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
-msgstr ""
+msgstr "non é posíbel abrir o ficheiro de advertencia %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
-msgstr ""
+msgstr "a opción de argumento -D debe estar na forma nome=valor"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
-msgstr ""
+msgstr "a opción de argumento -A debe estar na forma nome=valor"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
-msgstr ""
+msgstr "inserir automaticamente as cadeas literais –docstrings– dos módulos"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
-msgstr ""
+msgstr "proba automaticamente fragmentos de código en bloques de probas –doctest–"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
-msgstr ""
+msgstr "ligazón entre a documentación de Sphinx de diferentes proxectos"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
-msgstr ""
+msgstr "escribir entradas «todo» que se poden amosar ou agochar na construción"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
-msgstr ""
+msgstr "comproba a cobertura da documentación"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
-msgstr ""
+msgstr "incluír matemáticas, representadas como imaxes PNG ou SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
-msgstr ""
+msgstr "incluír matemáticas, representadas no navegador por MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
-msgstr ""
+msgstr "inclusión condicional de contido baseado en valores de configuración"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
-msgstr ""
+msgstr "incluír ligazóns ao código fonte dos obxectos Python documentados"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
-msgstr ""
+msgstr "crear un ficheiro «.nojekyll» para publicar o documento nas páxinas de GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
-msgstr ""
+msgstr "Introduza un nome de ruta válido."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
-msgstr ""
+msgstr "Introduza algún texto."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
-msgstr ""
+msgstr "Introduza un dos %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
-msgstr ""
+msgstr "Introduza «y» ou «n»."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
-msgstr ""
+msgstr "Introduza un sufixo de ficheiro, p. ex. «.rst» ou «.txt»."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
-msgstr ""
+msgstr "Dámoslle a benvida á utilidade de inicio rápido de Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
-msgstr ""
+msgstr "Introduza os valores para os seguintes axustes (tan só prema Intro para\naceptar un valor predeterminado, se se dá entre corchetes)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
-msgstr ""
+msgstr "Ruta raíz seleccionada: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
-msgstr ""
+msgstr "Introduza a ruta raíz para a documentación."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
-msgstr ""
+msgstr "Ruta raíz para a documentación"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
-msgstr ""
+msgstr "Erro: atopouse un ficheiro «conf.py» xa existente na ruta raíz seleccionada."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
-msgstr ""
+msgstr "«sphinx-quickstart» non sobrescribirá os proxectos Sphinx existentes."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
-msgstr ""
+msgstr "Introduza unha nova ruta raíz (ou simplemente Intro para saír)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
-msgstr ""
+msgstr "Ten dúas opcións para poñer o directorio de construción para a saída de Sphinx.\nOu utiliza un directorio «_build» dentro da ruta raíz, ou separa os directorios\n«fonte» e «construción» dentro da ruta raíz."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
-msgstr ""
+msgstr "Separar os directorios fonte e construción (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
-msgstr ""
+msgstr "Dentro do directorio raíz, crearanse dous directorios máis; «_templates» para\nmodelos HTML personalizados e «_static» para follas de estilo personalizadas e\noutros ficheiros estáticos. Pode introducir outro prefixo (como «.») para substituír\no guión baixo."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
-msgstr ""
+msgstr "Prefixo de nome para os directorios de modelos e de estáticos"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
-msgstr ""
+msgstr "O nome do proxecto aparecerá en varios lugares da documentación compilada."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
-msgstr ""
+msgstr "Nome do proxecto"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
-msgstr ""
+msgstr "Nome(s) do(s) autor(es)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
"Python the version is something like 2.5 or 3.0, while the release is\n"
"something like 2.5.1 or 3.0a1. If you don't need this dual structure,\n"
"just set both to the same value."
-msgstr ""
+msgstr "Sphinx ten a noción dunha «versión» e unha «publicación» para o\nsoftware. Cada versión pode ter varias publicacións. Por exemplo, para\nPython a versión é algo como 2.5 ou 3.0, mentres que a publicación \né algo como 2.5.1 ou 3.0a1. Se non precisa esta estrutura dual,\nsimplemente estabeleza ambas ao mesmo valor."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
-msgstr ""
+msgstr "Versión do proxecto"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
-msgstr ""
+msgstr "Publicación do proxecto"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1528,115 +1577,115 @@ msgid ""
"\n"
"For a list of supported codes, see\n"
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-msgstr ""
+msgstr "Se os documentos deben escribirse noutro idioma que non sexa o inglés,\npode seleccionar un idioma aquí mediante o seu código de idioma. Sphinx\ntraducirá entón o texto que xere a ese idioma.\n\n\nPara obter unha lista de códigos de idioma admitidos, consulte\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
-msgstr ""
+msgstr "Idioma do proxecto"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
-msgstr ""
+msgstr "O sufixo do nome do ficheiro para os ficheiros fonte. Normalmente,\nisto é «.txt» ou «.rst». Só os ficheiros con este sufixo son considerados\ndocumentos."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
-msgstr ""
+msgstr "Sufixo do ficheiro fonte"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
"of the documents. Normally, this is \"index\", but if your \"index\"\n"
"document is a custom template, you can also set this to another filename."
-msgstr ""
+msgstr "Un documento é especial no senso de que se considera o nodo superior\nda «árbore de contidos», é dicir, é a raíz da estrutura xerárquica dos\ndocumentos. Normalmente, isto é «índice», pero se o seu documento\n«índice» é un modelo personalizado, tamén pode definilo con outro nome\nde ficheiro."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
-msgstr ""
+msgstr "Nome do documento principal (sen sufixo)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
-msgstr ""
+msgstr "Erro: o ficheiro mestre %s xa existe na ruta raíz seleccionada."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
-msgstr ""
+msgstr "«sphinx-quickstart» non sobrescribirá o ficheiro existente."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
-msgstr ""
+msgstr "Introduza un novo nome de ficheiro ou cambie o nome do ficheiro existente e prema Intro"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
-msgstr ""
+msgstr "Indique cal das seguintes extensións de Sphinx debería estar activada:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
-msgstr ""
+msgstr "Nota: «imgmath» e «mathjax» non poden estar activados ao mesmo tempo. Deseleccionouse «imgmath»."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
-msgstr ""
+msgstr "Pódese xerar un «Makefile» e un ficheiro de ordes de Windows para que só teña que executar, p. ex. «make html» no canto de invocar «sphinx-build» directamente."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
-msgstr ""
+msgstr "Crear Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
-msgstr ""
+msgstr "Crear un ficheiro de ordes de Windows? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
-msgstr ""
+msgstr "Creando o ficheiro %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
-msgstr ""
+msgstr "O ficheiro %s xa existe, omitíndoo."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
-msgstr ""
+msgstr "Finalizado: creouse unha estrutura de directorio inicial."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
-msgstr ""
+msgstr "Agora debería encher o seu ficheiro principal %s e crear outros ficheiros fonte\nde documentación."
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
-msgstr ""
+msgstr "Use o «Makefile» para crear os documentos, así:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
-msgstr ""
+msgstr "Use a orde sphinx-build para construír os documentos, así:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
-msgstr ""
+msgstr "onde «builder» é un dos construtores compatíbeis, p. ex. html, latex ou linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1644,780 +1693,785 @@ msgid ""
"sphinx-quickstart is an interactive tool that asks some questions about your\n"
"project and then generates a complete documentation directory and sample\n"
"Makefile to be used with sphinx-build.\n"
-msgstr ""
+msgstr "\nXerar os ficheiros necesarios para un proxecto Sphinx.\n\n«sphinx-quickstart» é unha ferramenta interactiva que fai algunhas preguntas sobre o seu proxecto e após xera un directorio da documentación completa e un «Makefile» de mostra para usar con «sphinx-build».\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
-msgstr ""
+msgstr "modo silencioso"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
-msgstr ""
+msgstr "raíz do proxecto"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
-msgstr ""
+msgstr "Opcións de estrutura"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
-msgstr ""
+msgstr "se se especifica, separe os directorios fonte e construción"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
-msgstr ""
+msgstr "se se especifica, cree o directorio de construción baixo o directorio fonte"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
-msgstr ""
+msgstr "substitución de punto en _modelos, etc."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
-msgstr ""
+msgstr "Opcións básicas do proxecto"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
-msgstr ""
+msgstr "nome do proxecto"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
-msgstr ""
+msgstr "nome(s) do(s) autor(es)"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
-msgstr ""
+msgstr "versión do proxecto"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
-msgstr ""
+msgstr "publicacaión do proxecto"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
-msgstr ""
+msgstr "idioma do documento"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
-msgstr ""
+msgstr "sufixo do ficheiro fonte"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
-msgstr ""
+msgstr "nome do documento mestre"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
-msgstr ""
+msgstr "usar epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
-msgstr ""
+msgstr "Opcións de extensión"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
-msgstr ""
+msgstr "activar a extensión %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
-msgstr ""
+msgstr "activar extensións arbitrarias"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
-msgstr ""
+msgstr "Creación de Makefile e Batchfile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
-msgstr ""
+msgstr "crear «makefile»"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
-msgstr ""
+msgstr "non crear o «makefile»"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
-msgstr ""
+msgstr "crear «batchfile»"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
-msgstr ""
+msgstr "non crear o «batchfile»"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
-msgstr ""
+msgstr "usar «make-mode» para Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
-msgstr ""
+msgstr "non usar «make-mode» para Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
-msgstr ""
+msgstr "Modelos de proxectos"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
-msgstr ""
+msgstr "directorio de modelos para ficheiros de modelos"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
-msgstr ""
+msgstr "definir unha variábel de modelo"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
-msgstr ""
+msgstr "especifícase «silencioso» –quiet–, mais non se especifica ningún «proxecto» –project– ou «autor» –author–"
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
-msgstr ""
+msgstr "Erro: a ruta especificada non é un directorio ou xa existen ficheiros Sphinx."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
-msgstr ""
+msgstr "«sphinx-quickstart» só xera nun directorio baleiro. Especifique unha nova ruta raíz."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
-msgstr ""
+msgstr "Variábel de modelo non válida: %s"
#: sphinx/directives/code.py:61
msgid "non-whitespace stripped by dedent"
-msgstr ""
+msgstr "«dedent» elimina os espazos en branco"
#: sphinx/directives/code.py:82
#, python-format
msgid "Invalid caption: %s"
-msgstr ""
+msgstr "Lenda non válida: %s"
#: sphinx/directives/code.py:127 sphinx/directives/code.py:277
#: sphinx/directives/code.py:453
#, python-format
msgid "line number spec is out of range(1-%d): %r"
-msgstr ""
+msgstr "o número de liña especificado está fóra do intervalo (1-%d): %r"
#: sphinx/directives/code.py:206
#, python-format
msgid "Cannot use both \"%s\" and \"%s\" options"
-msgstr ""
+msgstr "Non é posíbel usar as opcións «%s» e «%s»."
#: sphinx/directives/code.py:220
#, python-format
msgid "Include file %r not found or reading it failed"
-msgstr ""
+msgstr "No foi atopado o ficheiro incluido %r ou fallou a lectura"
#: sphinx/directives/code.py:223
#, python-format
msgid ""
"Encoding %r used for reading included file %r seems to be wrong, try giving "
"an :encoding: option"
-msgstr ""
+msgstr "A codificación de %r utilizada para ler o ficheiro incluído %r semella ser incorrecta, probe a dar unha opción «:encoding:»"
#: sphinx/directives/code.py:260
#, python-format
msgid "Object named %r not found in include file %r"
-msgstr ""
+msgstr "Non se atopou o obxecto chamado %r no ficheiro incluído %r"
#: sphinx/directives/code.py:286
msgid "Cannot use \"lineno-match\" with a disjoint set of \"lines\""
-msgstr ""
+msgstr "Non é posíbel usar «lineno-match» cun conxunto disxunto de «liñas»"
#: sphinx/directives/code.py:291
#, python-format
msgid "Line spec %r: no lines pulled from include file %r"
-msgstr ""
+msgstr "Especificación de liña %r: non se extraeron liñas do ficheiro de inclusión %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
-msgstr ""
+msgstr "O padrón global da árbore de índice –toctree– %r non coincide con ningún documento"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
-msgstr ""
+msgstr "A arbore de índice –toctree– contén referencia ao documento excluído %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
-msgstr ""
+msgstr "A arbore de índice –toctree– contén referencia a un documento que non existe %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
-msgstr ""
+msgstr "atopouse unha entrada duplicada na árbore de índice –toctree–: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
-msgstr ""
+msgstr "Autor da sección:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
-msgstr ""
+msgstr "Autor do módulo:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
-msgstr ""
+msgstr "Autor do código:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
-msgstr ""
+msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
-msgstr ""
+msgstr ".. o contido dos recoñecementos –acks– non é unha lista"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
-msgstr ""
+msgstr ".. o contido do historial –hlist– non é unha lista"
#: sphinx/directives/patches.py:66
msgid ""
"\":file:\" option for csv-table directive now recognizes an absolute path as"
" a relative path from source directory. Please update your document."
-msgstr ""
+msgstr "A opción «:file:» para a directiva «csv-table» agora recoñece unha ruta absoluta como unha ruta relativa dende o directorio fonte. Actualice o seu documento."
#: sphinx/domains/__init__.py:397
#, python-format
msgid "%s %s"
-msgstr ""
-
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr ""
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr ""
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr ""
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr ""
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr ""
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr ""
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr ""
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr ""
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
+msgstr "%s %s"
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
+msgid "Added in version %s"
msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
msgid "Changed in version %s"
-msgstr ""
+msgstr "Cambiado na versión %s"
#: sphinx/domains/changeset.py:25
#, python-format
msgid "Deprecated since version %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
+msgstr "Obsoleto dende a versión %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr ""
+msgid "duplicate citation %s, other instance in %s"
+msgstr "cita duplicada %s, outra instancia en %s"
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
+msgid "Citation [%s] is not referenced."
+msgstr "A cita [%s] non está referenciada."
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
-msgstr ""
+msgstr "%s() (función integrada)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
-msgstr ""
+msgstr " %s() (método %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
-msgstr ""
+msgstr "%s() (clase)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
-msgstr ""
+msgstr "%s (variábel global ou constante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
-msgstr ""
+msgstr "%s (%s atributo)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
-msgstr ""
+msgstr "Argumentos"
+
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Lanzamentos"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Retorna"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipo de retorno"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
-msgstr ""
+msgstr "%s (módulo)"
+
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "función"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
-msgstr ""
+msgstr "método"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "clase"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
-msgstr ""
+msgstr "datos"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
-msgstr ""
+msgstr "atributo"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
-msgstr ""
+msgstr "módulo"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
-msgstr ""
+msgstr "descrición do/a %sduplicado/a de %s, outro/a %s en %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
-msgstr ""
+msgstr "etiqueta duplicada da ecuación %s, outra instancia en %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
-msgstr ""
+msgstr "«math_eqref_format» non válido: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr ""
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr ""
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (opción da directiva)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "opción da directiva"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rol"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "descrición duplicada de %s %s, outra instancia en %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Declaración C duplicada, tamén definida en %s:%s.\nA declaración é «.. c:%s:: %s»."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parámetros"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Valores de retorno"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membro"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variábel"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "estrutura"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "unión"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enumeración"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerador"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipo"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "parámetro de función"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parámetros do modelo"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Declaración C++ duplicada, tamén definida en %s:%s.\nA declaración é «.. cpp:%s:: %s»."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concepto"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "parámetro de modelo"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
-msgstr ""
+msgstr "%s() (no modulo %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
-msgstr ""
+msgstr "%s no modulo %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
-msgstr ""
+msgstr "%s (variábel integrada)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
-msgstr ""
+msgstr "%s (clase integrada)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
-msgstr ""
+msgstr "%s (clase en %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
-msgstr ""
+msgstr "%s() (%s método de clase)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
-msgstr ""
+msgstr "%s() (%s método estático)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
-msgstr ""
+msgstr "%s (%s propiedade)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
-msgstr ""
+msgstr " Ãndice de módulos Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
-msgstr ""
+msgstr "módulos"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
-msgstr ""
+msgstr "Obsoleto"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
-msgstr ""
+msgstr "excepción"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
-msgstr ""
+msgstr "método de clase"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
-msgstr ""
+msgstr "método estático"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
-msgstr ""
+msgstr "propiedade"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
-msgstr ""
+msgstr "descrición do obxecto duplicado de %s, outra instancia en %s, use «:no-index:» para un deles"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
-msgstr ""
+msgstr "atopouse máis dun obxectivo para a referencia cruzada %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
-msgstr ""
-
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
+msgstr "(obsoleto)"
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr ""
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variábeis"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Eleva"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
-msgstr ""
+msgstr "variábel de contorno; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
-msgstr ""
+msgstr "Descrición da opción %r incorrecta, debería parecerse a «opt», «-opt args», «--opt args», «/opt args» ou «+opt args»"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
-msgstr ""
+msgstr "opción de liña de ordes %s"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
-msgstr ""
+msgstr "opción de liña de ordes"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
-msgstr ""
+msgstr "o termo do glosario debe ir precedido dunha liña baleira"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
-msgstr ""
+msgstr "os termos do glosario non deben estar separados por liñas baleiras"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
-msgstr ""
+msgstr "o glosario parece ter un formato incorrecto, comprobe a sangría"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
-msgstr ""
+msgstr "termo do glosario"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
-msgstr ""
+msgstr "testemuño gramatical"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
-msgstr ""
+msgstr "etiqueta de referencia"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
-msgstr ""
+msgstr "variábel de contorno"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
-msgstr ""
+msgstr "opción do programa"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
-msgstr ""
+msgstr "documento"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
-msgstr ""
+msgstr "Ãndice de módulos"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
-msgstr ""
+msgstr "Páxina de busca"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
-msgstr ""
+msgstr "etiqueta duplicada %s, outra instancia en %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
-msgstr ""
+msgstr "descrición do/a %sduplicado/a de %s, outra instancia en %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
-msgstr ""
+msgstr "«numfig» está desactivado. «:numref:» é ignorado."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao crear unha referencia cruzada. Non se asigna ningún número: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
-msgstr ""
+msgstr "a ligazón non ten lenda: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
-msgstr ""
+msgstr "numfig_format: non é válido: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
-msgstr ""
+msgstr "numfig_format: non é válido: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
-msgstr ""
+msgstr "etiqueta sen definir: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
-msgstr ""
+msgstr "Produciuse un fallo ao crear unha referencia cruzada. Non se atopou un título ou unha lenda: %r"
#: sphinx/environment/__init__.py:71
msgid "new config"
-msgstr ""
+msgstr "nova configuración"
#: sphinx/environment/__init__.py:72
msgid "config changed"
-msgstr ""
+msgstr "a configuración cambiou"
#: sphinx/environment/__init__.py:73
msgid "extensions changed"
-msgstr ""
+msgstr "as extensións cambiaron"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
-msgstr ""
+msgstr "a versión do contorno de construción non é actual"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
-msgstr ""
+msgstr "o directorio fonte cambiou"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
-msgstr ""
+msgstr "Este contorno é incompatíbel co construtor seleccionado, escolla outro directorio de árbore de documentos «doctree»."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
-msgstr ""
+msgstr "Produciuse un fallo ao escanear os documentos en %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
-msgstr ""
+msgstr "O dominio %r non está rexistrado"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
-msgstr ""
+msgstr "o documento non está incluído en ningunha árbore de índice –toctree–"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
-msgstr ""
+msgstr "atopouse unha árbore de índice –toctree– auto referenciada. É ignorado."
#: sphinx/environment/adapters/indexentries.py:69
#, python-format
msgid "see %s"
-msgstr ""
+msgstr "ver %s"
#: sphinx/environment/adapters/indexentries.py:73
#, python-format
msgid "see also %s"
-msgstr ""
+msgstr "ver tamén %s"
#: sphinx/environment/adapters/indexentries.py:76
#, python-format
msgid "unknown index entry type %r"
-msgstr ""
+msgstr "tipo de entrada de índice descoñecido %r"
#: sphinx/environment/adapters/indexentries.py:187
#: sphinx/templates/latex/sphinxmessages.sty_t:11
msgid "Symbols"
-msgstr ""
+msgstr "Símbolos"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
-msgstr ""
+msgstr "detectaronse referencias circulares na árbore de índice –toctree–, van ser ignoradas: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
-msgstr ""
+msgstr "A árbore de índice contén referencia ao documento %r que non ten título: non vai ser xerada ningunha ligazón"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
-msgstr ""
+msgstr "A arbore de índice –toctree– contén referencia ao documento non incluído %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
-msgstr ""
+msgstr "ficheiro de imaxe non lexíbel: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
-msgstr ""
+msgstr "ficheiro de imaxe %s non lexíbel: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
-msgstr ""
+msgstr "descargar o ficheiro non lexíbel: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
-msgstr ""
+msgstr "%s xa ten asignados números de sección (árbore de índice –toctree– con numeración anidada?)"
#: sphinx/ext/apidoc.py:86
#, python-format
msgid "Would create file %s."
-msgstr ""
+msgstr "Crearíase un ficheiro %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2427,228 +2481,228 @@ msgid ""
"excluded from generation.\n"
"\n"
"Note: By default this script will not overwrite already created files."
-msgstr ""
+msgstr "\nBusque recursivamente en <MODULE_PATH> módulos e paquetes de Python e cree\nun ficheiro reST con directivas «automodule» por paquete no <OUTPUT_PATH>.\n\nOs <EXCLUDE_PATTERN> poden ser patróns de ficheiros e/ou directorios que se\nexcluirán da xeración.\n\nNota: De xeito predeterminada, este script non sobrescribirá os ficheiros xa creados."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
-msgstr ""
+msgstr "ruta ao módulo a documentar"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
-msgstr ""
+msgstr "patróns de ficheiros e/ou directorios estilo «fnmatch» para excluír da xeneración"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
-msgstr ""
+msgstr "directorio onde poñer toda a saída"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
-msgstr ""
+msgstr "profundidade máxima dos submódulos para amosar no Ãndice (predeterminado: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
-msgstr ""
+msgstr "sobrescribir os ficheiros existentes"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
-msgstr ""
+msgstr "seguir as ligazóns simbólicas. Potente cando se combina con «collective.recipe.omelette»."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
-msgstr ""
+msgstr "executar o script sen crear ficheiros"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
-msgstr ""
+msgstr "poñer a documentación de cada módulo na súa propia páxina"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
-msgstr ""
+msgstr "incluír módulos «_private»"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
-msgstr ""
+msgstr "nome do ficheiro do índice (predeterminado: «modules»)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
-msgstr ""
+msgstr "non crear un ficheiro de índice"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
-msgstr ""
+msgstr "non crear títulos para os paquetes ou módulos (p. ex., cando as cadeas literais –docstrings– xa os conteñan)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
-msgstr ""
+msgstr "poñer a documentación do módulo antes da documentación do submódulo"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
-msgstr ""
+msgstr "interpretar as rutas dos módulos segundo a especificación de espazos de nomes implícitos PEP-0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
-msgstr ""
+msgstr "sufixo do ficheiro (predeterminado: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
-msgstr ""
+msgstr "xerar un proxecto completo con «sphinx-quickstart»"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
-msgstr ""
+msgstr "engadir module_path a sys.path, úsase cando se indica --full"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
-msgstr ""
+msgstr "nome do proxecto (predeterminado: nome do módulo raíz)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
-msgstr ""
+msgstr "autor(es) do proxecto, úsase cando se indica --full"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
-msgstr ""
+msgstr "versión do proxecto, úsase cando se indica --full"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
-msgstr ""
+msgstr "publicación do proxecto, úsase cando se indica --full, o predeterminado é --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
-msgstr ""
+msgstr "opcións de extensión"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
-msgstr ""
+msgstr "%s non é un directorio."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
-msgstr ""
+msgstr "a sección «%s» é etiquetada como «%s»"
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
-msgstr ""
+msgstr "expresión regular –regex– non válida %r en %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
-msgstr ""
+msgstr "Rematada a proba de cobertura nas fontes, vexa os resultados en %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
-msgstr ""
+msgstr "expresión regular –regex– non válida %r en «coverage_c_regexes»"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
-msgstr ""
+msgstr "API C non documentada: %s [%s] no ficheiro %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
-msgstr ""
+msgstr "non foi posíbel importar o módulo %s: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
-msgstr ""
+msgstr "función de python non documentada: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
-msgstr ""
+msgstr "clase de python non documentada: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
-msgstr ""
+msgstr "método de python non documentado: %s :: %s :: %s"
#: sphinx/ext/doctest.py:115
#, python-format
msgid "missing '+' or '-' in '%s' option."
-msgstr ""
+msgstr "falta «+» ou «-» na opción «%s»."
#: sphinx/ext/doctest.py:120
#, python-format
msgid "'%s' is not a valid option."
-msgstr ""
+msgstr "«%s» non é unha opción válida"
#: sphinx/ext/doctest.py:134
#, python-format
msgid "'%s' is not a valid pyversion option"
-msgstr ""
+msgstr "«%s» non é unha opción de «pyversion» válida"
#: sphinx/ext/doctest.py:220
msgid "invalid TestCode type"
-msgstr ""
+msgstr "tipo de «TestCode» non válido"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
-msgstr ""
+msgstr "Finalizadas as probas de –doctests– nas fontes, vexa os resultados en %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
-msgstr ""
+msgstr "non hai código/saída no bloque %s en %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
-msgstr ""
+msgstr "ignorando o código da proba –doctest– non válido: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
-msgstr ""
+msgstr "==================== duración de lectura máis lenta ====================="
#: sphinx/ext/extlinks.py:82
#, python-format
msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
-msgstr ""
+msgstr "a ligazón con codificación forte %r podería substituírse por unha ligazón externa (probe a usar %r no seu lugar)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
-msgstr ""
+msgstr "A directiva Graphviz non pode ter como argumento tanto o contido como o nome de ficheiro"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
-msgstr ""
+msgstr "Non se atopou o ficheiro Graphviz externo %r ou fallou a súa lectura"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
-msgstr ""
+msgstr "Ignorando a directiva «graphviz» sen contido."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
-msgstr ""
+msgstr "Débese estabelecer a ruta camiño executábel «graphviz_dot»! %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
-msgstr ""
+msgstr "Non é posíbel executar a orde «dot» %r (necesario para a saída de graphviz), comprobe o axuste de graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2656,9 +2710,9 @@ msgid ""
"%r\n"
"[stdout]\n"
"%r"
-msgstr ""
+msgstr "«dot» saíu cun erro:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2666,37 +2720,37 @@ msgid ""
"%r\n"
"[stdout]\n"
"%r"
-msgstr ""
+msgstr "«dot» non produciu un ficheiro de saída:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
-msgstr ""
+msgstr "«graphviz_output_format» debe ser un de «png», «svg», mais é %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
-msgstr ""
+msgstr "código de «dot» %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[gráfico: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
-msgstr ""
+msgstr "[gráfico]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
"\n"
"Traceback: %s"
-msgstr ""
+msgstr "Non é posíbel executar a orde de conversión de imaxe %r. «sphinx.ext.imgconverter» precisa, de xeito predeterminado, de «ImageMagick». Asegúrese de que estea instalado ou defina a opción «image_converter» nunha orde personalizada de conversión.\n\nRastrexo: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2704,314 +2758,319 @@ msgid ""
"%r\n"
"[stdout]\n"
"%r"
-msgstr ""
+msgstr "«convert» saíu cun erro:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
-msgstr ""
+msgstr "non é posíbel executar a orde de conversión %r, comprobe o axuste «image_converter»"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
-msgstr ""
+msgstr "Non é posíbel executar a orde «LaTeX» %r (necesario para a representación matemática), comprobe o axuste «imgmath_latex»"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
-msgstr ""
+msgstr "Non é posíbel executar a orde «%s» %r (necesario para a representación matemática), comprobe o axuste «imgmath_%s»"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
-msgstr ""
+msgstr "amosar látex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
-msgstr ""
+msgstr "látex en liña %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
-msgstr ""
+msgstr "Ligazón a esta ecuación"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
-msgstr ""
+msgstr "o inventario de «intersphinx» moveuse: %s-> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
-msgstr ""
+msgstr "cargando o inventario «intersphinx» dende %s…"
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
-msgstr ""
+msgstr "atopáronse algúns incidentes algúns dos inventarios, mais tiñan alternativas funcionais:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
-msgstr ""
+msgstr "non foi posíbel acadar ningún dos inventarios cos seguintes incidentes:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "(en %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
+msgstr "(en %s)"
+
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
-msgstr ""
+msgstr "obxectivo de referencia externo %s:%s non atopado: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
-msgstr ""
+msgstr "o identificador «intersphinx» %r non é unha cadea. É ignorado."
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
-msgstr ""
+msgstr "Produciuse un fallo ao ler «intersphinx_mapping[%s]», é ignorado: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
-msgstr ""
+msgstr "[fontes]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
-msgstr ""
+msgstr "Tarefa pendente"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
-msgstr ""
+msgstr "Atopouse a entrada de tarefa pendente: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
-msgstr ""
+msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr ""
+msgstr "(O <<original entry>> está situado en %s, liña %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
-msgstr ""
+msgstr "entrada orixinal"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
-msgstr ""
+msgstr "destacando o código do módulo..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
-msgstr ""
+msgstr "[documentos]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
-msgstr ""
+msgstr "Código do módulo"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr ""
+msgstr "<h1>Código fonte para %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
-msgstr ""
+msgstr "Vista xeral: código do módulo"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
-msgstr ""
+msgstr "<h1>Todos os módulos para os que está dispoñíbel o código</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
-msgstr ""
+msgstr "valor incorrecto para a opción «member-order»: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
-msgstr ""
+msgstr "valor incorrecto para a opción «class-doc-from option»: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
-msgstr ""
+msgstr "sinatura non válida para «auto%s» (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
-msgstr ""
+msgstr "produciuse un erro ao formatar argumentos para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
-msgstr ""
+msgstr "autodoc: non foi posíbel determinar %s.%s (%r) para documentarse, presentouse a seguinte excepción:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
"\"module\" or \"currentmodule\" directive in the document, or giving an "
"explicit module name)"
-msgstr ""
+msgstr "descoñecesei que módulo importar para a documentación automática de %r (probae a poñer unha directiva «module» ou «currentmodule» no documento, ou indicar un nome explícito de módulo)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
-msgstr ""
+msgstr "Detectouse un obxecto simulado: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
-msgstr ""
+msgstr "produciuse un erro ao formatar a sinatura para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
-msgstr ""
+msgstr "«::» no nome do «automodule» non ten sentido"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
-msgstr ""
+msgstr "argumentos de sinatura ou anotación de retorno indicados para o «automodule» %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
-msgstr ""
+msgstr "__all__ debería ser unha lista de cadeas, non %r (no módulo %s) -- __all__ é ignorado"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
-msgstr ""
+msgstr "falta o atributo mencionado na opción «:members:»: módulo %s, atributo %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao obter unha sinatura de función para: %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao obter unha sinatura do construtor para: %s:%s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
-msgstr ""
+msgstr "Bases: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
-msgstr ""
+msgstr "falta o atributo %s no obxecto %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
-msgstr ""
+msgstr "alias de %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
-msgstr ""
+msgstr "alias de TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao obter unha sinatura de método para: %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
-msgstr ""
+msgstr "Atopáronse __slots__ non válidos en %s. É ignorado."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao analizar un valor de argumento predeterminado para %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao actualizar a sinatura de %r: non se atopou o parámetro: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
-msgstr ""
+msgstr "Produciuse un fallo ao analizar «type_comment» para %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
-msgstr ""
+msgstr "referencias de «autosummary» excluídas do documento %r. É ignorado."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
-msgstr ""
+msgstr "autosummar»: Non se atopou o ficheiro «stub» %r. Comprobe o axuste «autosummary_generate»."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
-msgstr ""
+msgstr "Un resumo automático con lendas precisa a opción «:toctree:». É ignorado."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
"Possible hints:\n"
"%s"
-msgstr ""
+msgstr "autosummary: produciuse un fallo ao importar %s.\nSuxestións posíbeis\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
-msgstr ""
+msgstr "produciuse un fallo ao analizar o nome %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
-msgstr ""
+msgstr "produciuse un fallo ao importar o obxecto %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
-msgstr ""
+msgstr "autosummary_generate: non se atopou o ficheiro: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3020,17 +3079,17 @@ msgstr ""
msgid ""
"autosummary: failed to determine %r to be documented, the following exception was raised:\n"
"%s"
-msgstr ""
+msgstr "autosummary: non foi posíbel determinar se %r foi documentado, produciuse a seguinte excepción:\n%s"
#: sphinx/ext/autosummary/generate.py:470
#, python-format
msgid "[autosummary] generating autosummary for: %s"
-msgstr ""
+msgstr "[autosummary] xerando «autosummary» para: %s"
#: sphinx/ext/autosummary/generate.py:474
#, python-format
msgid "[autosummary] writing to %s"
-msgstr ""
+msgstr "[autosummary] está escribindo en %s"
#: sphinx/ext/autosummary/generate.py:517
#, python-format
@@ -3038,7 +3097,7 @@ msgid ""
"[autosummary] failed to import %s.\n"
"Possible hints:\n"
"%s"
-msgstr ""
+msgstr "[autosummary] produciuse un fallo ao importar %s.\nSuxestións posíbeis\n%s"
#: sphinx/ext/autosummary/generate.py:690
msgid ""
@@ -3053,548 +3112,546 @@ msgid ""
"``sphinx.ext.autosummary`` Python module and can be read using::\n"
"\n"
" pydoc sphinx.ext.autosummary\n"
-msgstr ""
+msgstr "\nXera ReStructuredText usando directivas de resumo automático «autosummary».\n\nsphinx-autogen é unha interface para sphinx.ext.autosummary.generate.\nXera os ficheiros reStructuredText a partir das directivas de resumo automático «autosummary» contidas nos ficheiros de entrada indicados.\n\nO formato da directiva de resumo automático «autosummary» está documentado\nno módulo de Python ``sphinx.ext.autosummary`` e pódese ler usando::\n\n pydoc sphinx.ext.autosummary\n\n"
#: sphinx/ext/autosummary/generate.py:707
msgid "source files to generate rST files for"
-msgstr ""
+msgstr "ficheiros fonte para xerar ficheiros rST para"
#: sphinx/ext/autosummary/generate.py:711
msgid "directory to place all output in"
-msgstr ""
+msgstr "directorio onde colocar toda a saída"
#: sphinx/ext/autosummary/generate.py:714
#, python-format
msgid "default suffix for files (default: %(default)s)"
-msgstr ""
+msgstr "sufixo predeterminado para ficheiros (predeterminado: %(default)s)"
#: sphinx/ext/autosummary/generate.py:718
#, python-format
msgid "custom template directory (default: %(default)s)"
-msgstr ""
+msgstr "directorio de modelos personalizados (predeterminado: %(default)s)"
#: sphinx/ext/autosummary/generate.py:722
#, python-format
msgid "document imported members (default: %(default)s)"
-msgstr ""
+msgstr "membros importados do documento (predeterminado: %(default)s)"
#: sphinx/ext/autosummary/generate.py:726
#, python-format
msgid ""
"document exactly the members in module __all__ attribute. (default: "
"%(default)s)"
-msgstr ""
+msgstr "documentar exactamente os membros no atributo __all__ do módulo. (predeterminado: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
-msgstr ""
+msgstr "Argumentos de palabras clave"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
-msgstr ""
+msgstr "Exemplo"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
-msgstr ""
+msgstr "Exemplos"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
-msgstr ""
+msgstr "Notas"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
-msgstr ""
+msgstr "Outros parámetros"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
-msgstr ""
+msgstr "Recibe"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
-msgstr ""
+msgstr "Referencias"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
-msgstr ""
+msgstr "Advirte"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
-msgstr ""
+msgstr "Rendementos"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
-msgstr ""
+msgstr "conxunto de valores non válidos (falta a chave de peche): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
-msgstr ""
+msgstr "conxunto de valores non válidos (falta a chave de apertura): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
-msgstr ""
+msgstr "literal de cadea mal construído (falta a comiña de peche): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
-msgstr ""
+msgstr "literal de cadea mal construído (falta a comiña de apertura): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
-msgstr ""
+msgstr "Atención"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
-msgstr ""
+msgstr "Precaución"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
-msgstr ""
+msgstr "Perigo"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
-msgstr ""
+msgstr "Erro"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
-msgstr ""
+msgstr "Suxestión"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
-msgstr ""
+msgstr "Importante"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
-msgstr ""
+msgstr "Nota"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
-msgstr ""
+msgstr "Ver tamén"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
-msgstr ""
+msgstr "Truco"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
-msgstr ""
+msgstr "Advertencia"
#: sphinx/templates/latex/longtable.tex_t:52
#: sphinx/templates/latex/sphinxmessages.sty_t:8
msgid "continued from previous page"
-msgstr ""
+msgstr "continúa da páxina anterior"
#: sphinx/templates/latex/longtable.tex_t:63
#: sphinx/templates/latex/sphinxmessages.sty_t:9
msgid "continues on next page"
-msgstr ""
+msgstr "continúa na páxina seguinte"
#: sphinx/templates/latex/sphinxmessages.sty_t:10
msgid "Non-alphabetical"
-msgstr ""
+msgstr "Non alfabético"
#: sphinx/templates/latex/sphinxmessages.sty_t:12
msgid "Numbers"
-msgstr ""
+msgstr "Números"
#: sphinx/templates/latex/sphinxmessages.sty_t:13
msgid "page"
-msgstr ""
+msgstr "páxina"
#: sphinx/themes/agogo/layout.html:38 sphinx/themes/basic/globaltoc.html:10
#: sphinx/themes/basic/localtoc.html:12 sphinx/themes/scrolls/layout.html:41
msgid "Table of Contents"
-msgstr ""
+msgstr "Ãndice"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
-msgstr ""
+msgstr "Busca"
#: sphinx/themes/agogo/layout.html:46 sphinx/themes/basic/searchbox.html:16
#: sphinx/themes/basic/searchfield.html:18
msgid "Go"
-msgstr ""
+msgstr "Ir"
#: sphinx/themes/agogo/layout.html:90 sphinx/themes/basic/sourcelink.html:15
msgid "Show Source"
-msgstr ""
+msgstr "Amosar o código fonte"
#: sphinx/themes/basic/defindex.html:11
msgid "Overview"
-msgstr ""
+msgstr "Vista xeral"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Dámoslle a benvida! Isto é"
#: sphinx/themes/basic/defindex.html:16
msgid "the documentation for"
-msgstr ""
+msgstr "a documentación para"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "última actualización"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
-msgstr ""
+msgstr "Ãndices e táboas:"
#: sphinx/themes/basic/defindex.html:23
msgid "Complete Table of Contents"
-msgstr ""
+msgstr "Ãndice completo"
#: sphinx/themes/basic/defindex.html:24
msgid "lists all sections and subsections"
-msgstr ""
+msgstr "lista todas as seccións e subseccións"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr ""
+msgstr "buscar esta documentación"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
-msgstr ""
+msgstr "Ãndice global de módulos"
#: sphinx/themes/basic/defindex.html:29
msgid "quick access to all modules"
-msgstr ""
+msgstr "acceso rápido a todos os módulos"
#: sphinx/themes/basic/defindex.html:31
msgid "all functions, classes, terms"
-msgstr ""
+msgstr "todas as funcións, clases, termos"
#: sphinx/themes/basic/genindex-single.html:33
#, python-format
msgid "Index &ndash; %(key)s"
-msgstr ""
+msgstr "Ãndice &ndash; %(key)s"
#: sphinx/themes/basic/genindex-single.html:61
#: sphinx/themes/basic/genindex-split.html:24
#: sphinx/themes/basic/genindex-split.html:38
#: sphinx/themes/basic/genindex.html:73
msgid "Full index on one page"
-msgstr ""
+msgstr "Ãndice completo nunha páxina"
#: sphinx/themes/basic/genindex-split.html:16
msgid "Index pages by letter"
-msgstr ""
+msgstr "Ãndice de páxinas por letra"
#: sphinx/themes/basic/genindex-split.html:25
msgid "can be huge"
-msgstr ""
+msgstr "pode ser enorme"
#: sphinx/themes/basic/layout.html:26
msgid "Navigation"
-msgstr ""
+msgstr "Navegación"
#: sphinx/themes/basic/layout.html:126
#, python-format
msgid "Search within %(docstitle)s"
-msgstr ""
+msgstr "Buscar dentro do/a %(docstitle)s"
#: sphinx/themes/basic/layout.html:135
msgid "About these documents"
-msgstr ""
+msgstr "Sobre estes documentos"
#: sphinx/themes/basic/layout.html:144 sphinx/themes/basic/layout.html:188
#: sphinx/themes/basic/layout.html:190
msgid "Copyright"
-msgstr ""
+msgstr "Dereitos de autoría"
#: sphinx/themes/basic/layout.html:194 sphinx/themes/basic/layout.html:200
#, python-format
msgid "&#169; %(copyright_prefix)s %(copyright)s."
-msgstr ""
+msgstr "&#169; %(copyright_prefix)s %(copyright)s."
#: sphinx/themes/basic/layout.html:212
#, python-format
msgid "Last updated on %(last_updated)s."
-msgstr ""
+msgstr "Última actualización o %(last_updated)s."
#: sphinx/themes/basic/layout.html:215
#, python-format
msgid ""
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
+msgstr "Creado usando <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
msgid "Search %(docstitle)s"
-msgstr ""
+msgstr "Buscar %(docstitle)s"
#: sphinx/themes/basic/relations.html:12
msgid "Previous topic"
-msgstr ""
+msgstr "Tema anterior"
#: sphinx/themes/basic/relations.html:14
msgid "previous chapter"
-msgstr ""
+msgstr "capítulo anterior"
#: sphinx/themes/basic/relations.html:19
msgid "Next topic"
-msgstr ""
+msgstr "Seguinte tema"
#: sphinx/themes/basic/relations.html:21
msgid "next chapter"
-msgstr ""
+msgstr "seguinte capítulo"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
+msgstr "Active JavaScript para activar a función\n de busca."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
-msgstr ""
+msgstr "Ao buscar varias palabras só se amosan as coincidencias que\n conteñan todas as palabras."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
+msgstr "buscar"
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
-msgstr ""
+msgstr "Busca rápida"
#: sphinx/themes/basic/sourcelink.html:12
msgid "This Page"
-msgstr ""
+msgstr "Esta páxina"
#: sphinx/themes/basic/changes/frameset.html:5
#: sphinx/themes/basic/changes/versionchanges.html:12
#, python-format
msgid "Changes in Version %(version)s &#8212; %(docstitle)s"
-msgstr ""
+msgstr "Cambios na versión %(version)s &#8212; %(docstitle)s"
#: sphinx/themes/basic/changes/rstsource.html:5
#, python-format
msgid "%(filename)s &#8212; %(docstitle)s"
-msgstr ""
+msgstr "%(filename)s &#8212; %(docstitle)s"
#: sphinx/themes/basic/changes/versionchanges.html:17
#, python-format
msgid "Automatically generated list of changes in version %(version)s"
-msgstr ""
+msgstr "Lista xerada automaticamente de cambios na versión %(version)s"
#: sphinx/themes/basic/changes/versionchanges.html:18
msgid "Library changes"
-msgstr ""
+msgstr "Cambios na biblioteca"
#: sphinx/themes/basic/changes/versionchanges.html:23
msgid "C API changes"
-msgstr ""
+msgstr "Cambios na API C"
#: sphinx/themes/basic/changes/versionchanges.html:25
msgid "Other changes"
-msgstr ""
+msgstr "Outros cambios"
+
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Resultados da busca"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "A súa busca non coincide con ningún documento. Asegúrese de que todas as palabras estean escritas correctamente e de que seleccionou categorías abondo."
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
-msgstr ""
+msgstr "Busca finalizada, atoparonse ${resultCount} páxinas coincidentes coa consulta de busca."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
-msgstr ""
+msgstr "Buscando"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
-msgstr ""
+msgstr "Preparando a busca…"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
-msgstr ""
+msgstr ", en "
#: sphinx/themes/basic/static/sphinx_highlight.js:112
msgid "Hide Search Matches"
-msgstr ""
+msgstr "Agochar as coincidencias da busca"
#: sphinx/themes/classic/layout.html:20
#: sphinx/themes/classic/static/sidebar.js_t:57
msgid "Collapse sidebar"
-msgstr ""
+msgstr "Contraer a barra lateral"
#: sphinx/themes/classic/static/sidebar.js_t:48
msgid "Expand sidebar"
-msgstr ""
+msgstr "Expandir a barra lateral"
#: sphinx/themes/haiku/layout.html:24
msgid "Contents"
-msgstr ""
+msgstr "Contidos"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
-msgstr ""
+msgstr "non foi posíbel calcular o progreso da tradución!"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
-msgstr ""
+msgstr "non hai ningún elemento traducidos!"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
-msgstr ""
+msgstr "atopouse un índice baseado en 4 columnas. Pode ser un erro das extensións que usa: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
-msgstr ""
+msgstr "A nota a rodapé [%s] non está referenciada."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
-msgstr ""
+msgstr "A nota a rodapé [#] non está referenciada."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
-msgstr ""
+msgstr "referencias de notas a rodapé inconsistentes na mensaxe traducida. orixinal: {0}, traducida: {1}"
#: sphinx/transforms/i18n.py:245
msgid ""
"inconsistent references in translated message. original: {0}, translated: "
"{1}"
-msgstr ""
+msgstr "referencias inconsistentes na mensaxe traducida. orixinal: {0}, traducida: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
-msgstr ""
+msgstr "referencias de citas inconsistentes na mensaxe traducida. orixinal: {0}, traducida: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
-msgstr ""
+msgstr "referencias de termos inconsistentes na mensaxe traducida. orixinal: {0}, traducida: {1}"
#: sphinx/transforms/post_transforms/__init__.py:116
msgid ""
"Could not determine the fallback text for the cross-reference. Might be a "
"bug."
-msgstr ""
+msgstr "Non foi posíbel determinar o texto alternativo para a referencia cruzada. Pode ser un fallo."
#: sphinx/transforms/post_transforms/__init__.py:158
#, python-format
msgid "more than one target found for 'any' cross-reference %r: could be %s"
-msgstr ""
+msgstr "atopouse máis dun obxectivo para «calquera» referencia cruzada %r: podería ser %s"
#: sphinx/transforms/post_transforms/__init__.py:209
#, python-format
msgid "%s:%s reference target not found: %s"
-msgstr ""
+msgstr "%s:%s non se atopa o destino da referencia: %s"
#: sphinx/transforms/post_transforms/__init__.py:212
#, python-format
msgid "%r reference target not found: %s"
-msgstr ""
+msgstr "%r non se atopa o destino da referencia: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
-msgstr ""
+msgstr "Non foi posíbel recuperar a imaxe remota: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
-msgstr ""
+msgstr "Non foi posíbel recuperar a imaxe remota: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
-msgstr ""
+msgstr "Formato de imaxe descoñecido: %s…"
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
-msgstr ""
+msgstr "caracteres fonte non codificábeis, substituíndo por «?»: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
-msgstr ""
+msgstr "omitido"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
-msgstr ""
+msgstr "produciuse un fallo"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
-msgstr ""
+msgstr "Problema no dominio %s: suponse que o campo usa o rol «%s», mais ese rol non está no dominio."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
-msgstr ""
+msgstr "directiva ou nome de rol descoñecido: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
-msgstr ""
+msgstr "tipo de nodo descoñecido: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
-msgstr ""
+msgstr "produciuse un erro de lectura: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
-msgstr ""
+msgstr "produciuse un erro de escritura: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
-msgstr ""
+msgstr "«local_dir» %s non existe"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
-msgstr ""
+msgstr "Formato de data non válido. Acoute a cadea entre comiñas simples se quere xerala directamente: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
-msgstr ""
+msgstr "%r é obsoleto para as entradas do índice (dende a entrada %r). No seu canto empregue «pair: %s»."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
-msgstr ""
+msgstr "A arbore de índice –toctree– contén unha referencia a un ficheiro inexistente %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
-msgstr ""
+msgstr "produciuse unha excepción mentres se avalía só a expresión directiva: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
-msgstr ""
+msgstr "non se atopou o rol predeterminado %s"
#: sphinx/writers/html5.py:100 sphinx/writers/html5.py:109
msgid "Link to this definition"
@@ -3603,61 +3660,61 @@ msgstr "Ligazón a esta definición"
#: sphinx/writers/html5.py:397
#, python-format
msgid "numfig_format is not defined for %s"
-msgstr ""
+msgstr "numfig_format non está definido por %s"
#: sphinx/writers/html5.py:407
#, python-format
msgid "Any IDs not assigned for %s node"
-msgstr ""
+msgstr "Calquera ID non asignado ao nodo %s"
#: sphinx/writers/html5.py:462
msgid "Link to this term"
msgstr "Ligazón a este termo"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr "Ligazón a este título"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr "Ligazón a esta táboa"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr "Ligazón a este código"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr "Ligazón a esta imaxe"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
-msgstr "Ligazón a esta árbore de índice"
+msgstr "Ligazón a esta árbore de índice –toctree–"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
-msgstr ""
+msgstr "Non foi posíbel obter o tamaño da imaxe. A opción «:scale:» é ignorada."
#: sphinx/writers/latex.py:335
#, python-format
msgid "unknown %r toplevel_sectioning for class %r"
-msgstr ""
+msgstr "«toplevel_sectioning» %r descoñecido para a clase %r"
#: sphinx/writers/latex.py:386
msgid "too large :maxdepth:, ignored."
-msgstr ""
+msgstr "«:maxdepth:» é demasiado grande, é ignorado."
#: sphinx/writers/latex.py:625
msgid "document title is not a single Text node"
-msgstr ""
+msgstr "o título do documento non é un único nodo de tipo «Text»"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
-msgstr ""
+msgstr "o nodo do título non foi atopado na sección, tema, táboa, admonición ou barra lateral"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Notas a rodapé"
@@ -3669,27 +3726,27 @@ msgstr "indícanse tanto a opción «tabularcolumns» como «:widths:». Ignoras
#: sphinx/writers/latex.py:1388
#, python-format
msgid "dimension unit %s is invalid. Ignored."
-msgstr "a unidade de dimensión %s non é válida. Ignorado."
+msgstr "a unidade de dimensión %s non é válida. É ignorada."
#: sphinx/writers/latex.py:1722
#, python-format
msgid "unknown index entry type %s found"
msgstr "atopouse o tipo descoñecido de entrada de índice %s"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[imaxe: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[imaxe]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
-msgstr "a lenda non se atopa nunha figura."
+msgstr "a lenda non está nunha figura."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
-msgstr "tipo de nodo non implementado: %r"
+msgstr "tipo de nodo sen implementar: %r"
diff --git a/sphinx/locale/he/LC_MESSAGES/sphinx.js b/sphinx/locale/he/LC_MESSAGES/sphinx.js
index cd02a75..5b915b0 100644
--- a/sphinx/locale/he/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/he/LC_MESSAGES/sphinx.js
@@ -56,5 +56,5 @@ Documentation.addTranslations({
"search this documentation": "\u05d7\u05e4\u05e9 \u05d1\u05ea\u05d9\u05e2\u05d5\u05d3 \u05d6\u05d4",
"the documentation for": ""
},
- "plural_expr": "(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3"
+ "plural_expr": "(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2"
}); \ No newline at end of file
diff --git a/sphinx/locale/he/LC_MESSAGES/sphinx.mo b/sphinx/locale/he/LC_MESSAGES/sphinx.mo
index cb6c4a9..bb54fbd 100644
--- a/sphinx/locale/he/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/he/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/he/LC_MESSAGES/sphinx.po b/sphinx/locale/he/LC_MESSAGES/sphinx.po
index fe07947..5bb04fc 100644
--- a/sphinx/locale/he/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/he/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,16 +8,16 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FIRST AUTHOR <EMAIL@ADDRESS>, 2011\n"
"Language-Team: Hebrew (http://app.transifex.com/sphinx-doc/sphinx-1/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: he\n"
-"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
+"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
#: sphinx/application.py:157
#, python-format
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:331 sphinx/theming.py:377
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "רמת המודול"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(בתוך"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "×ינדקס"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "הב×"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "הקוד×"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "תיעוד %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "×ינדקס"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "מהדורה"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "מחבר הקטע:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "מחבר המודול:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "מחבר הקוד:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "מחבר:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
+msgstr "השתנה בגרסה %s"
+
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
+msgstr " ×œ× ×ž×•×ž×œ×¥ לשימוש מגרסה %s"
+
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "פרמטרי×"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
+msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "משתנה"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "פונקציה"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
+msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "מ×קרו"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
+msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "פונקציה"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "מחלקה"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
-msgstr "חדש בגרסה %s"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
-msgstr "השתנה בגרסה %s"
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr "מודול"
-#: sphinx/domains/changeset.py:25
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "Deprecated since version %s"
-msgstr " ×œ× ×ž×•×ž×œ×¥ לשימוש מגרסה %s"
+msgid "duplicate %s description of %s, other %s in %s"
+msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/math.py:63
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:213
#, python-format
-msgid "%s (C++ %s)"
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "מחלקה"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "פרמטרי×"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "משתנה"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "מ×קרו"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
-msgstr "מודול"
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "משתני×"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr ""
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "משתני×"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "משתנה סביבה; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "משתנה סביבה"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "מודול ×ינדקס"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "דף חיפוש"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[מקור]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "לעשות"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "הטקסט המקורי"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[תיעוד]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>הר××” קוד מקור ל %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>כל ×”×ž×•×“×•×œ×™× ×©×™×© ×œ×”× ×§×•×“ זמין</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "תשומת לב"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "זהירות"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "סכנה"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "שגי××”"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "רמז"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "חשוב"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "הערה"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "ר××” ×’×"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "טיפ"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "×זהרה"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "חיפוש"
@@ -3342,34 +3401,22 @@ msgstr "× ×•×©× ×”×‘×"
msgid "next chapter"
msgstr "פרק הב×"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "×× × ×”×¤×¢×œ ×’'×ו×סקריפט ×¢\"מ ל×פשר ×ת\n החיפוש."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "חיפוש"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "תוצ×ות החיפוש"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "חיפוש מהיר"
@@ -3406,20 +3453,30 @@ msgstr ""
msgid "Other changes"
msgstr "×©×™× ×•×™×™× ×חרי×"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "תוצ×ות החיפוש"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr "הרחב סרגל צד"
msgid "Contents"
msgstr "תוכן"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "הערות שוליי×"
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[תמונה]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/hi/LC_MESSAGES/sphinx.mo b/sphinx/locale/hi/LC_MESSAGES/sphinx.mo
index 3a2983a..4533fd5 100644
--- a/sphinx/locale/hi/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/hi/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/hi/LC_MESSAGES/sphinx.po b/sphinx/locale/hi/LC_MESSAGES/sphinx.po
index 60d6bb0..8d0384a 100644
--- a/sphinx/locale/hi/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hi/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Sumanjali Damarla <damarlasumanjali@gmail.com>, 2020\n"
"Language-Team: Hindi (http://app.transifex.com/sphinx-doc/sphinx-1/language/hi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: hi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -41,104 +41,104 @@ msgstr "सà¥à¤°à¥‹à¤¤ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ और गंतवà¥à¤¯
msgid "Running Sphinx v%s"
msgstr "सà¥à¤«à¤¿à¤‚कà¥à¤¸ %s संसà¥à¤•à¤°à¤£ चल रहा है"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "इस परियोजना में सà¥à¤«à¤¿à¤‚कà¥à¤¸ का कम से कम %s संसà¥à¤•à¤°à¤£ चाहिठऔर इसलिठइस संसà¥à¤•à¤°à¤£ से बनाना संभव नहीं है."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "परिणाम निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ बनाई जा रही है"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "%s आयाम को सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ करते हà¥à¤:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'सà¥à¤¥à¤¾à¤ªà¤¨à¤¾' को जैसा कि अभी कोनà¥à¥ž.पाई में परिभाषित किया गया है, पाइथन से निरà¥à¤¦à¥‡à¤¶à¤¿à¤¤ नहीं है. कृपया इसकी परिभाषा में परिवरà¥à¤¤à¤¨ करके इसे निरà¥à¤¦à¥‡à¤¶ योगà¥à¤¯ करà¥à¤® बनाà¤à¤‚. कोनà¥à¥ž.पाई को सà¥à¤«à¤¿à¤‚कà¥à¤¸ के आयाम की तरह वà¥à¤¯à¤µà¤¹à¤¾à¤° के लिठइसकी आवशà¥à¤•à¤¯à¤¤à¤¾ है."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "[%s] अनà¥à¤µà¤¾à¤¦ पà¥à¤¾ जा रहा है..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "संपनà¥à¤¨"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "अंतरà¥à¤¨à¤¿à¤°à¥à¤®à¤¿à¤¤ संदेशों में उपलबà¥à¤§ नहीं है"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "रकà¥à¤·à¤¿à¤¤ सà¥à¤¥à¤¿à¤¤à¤¿ को लागू किया जा रहा है"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "असफल: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "किसी निरà¥à¤®à¤¾à¤¤à¤¾ को नहीं चà¥à¤¨à¤¾ गया, मानक उपयोग: à¤à¤šà¥.टी.à¤à¤®.à¤à¤²."
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "सफल हà¥à¤†"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "समसà¥à¤¯à¤¾à¤“ं के साथ समापà¥à¤¤ हà¥à¤†"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "%s निरà¥à¤®à¤¾à¤£, चेतावनी %s (चेतावनी को गलती माने)| "
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "%s समà¥à¤ªà¥‚रà¥à¤£, %s चेतावनी."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "%s निरà¥à¤®à¤¿à¤¤."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "निरà¥à¤¦à¥‡à¤¶à¤• ककà¥à¤·à¤¾ #node class# %r पहले से पंजीकृत है, इसके अभà¥à¤¯à¤¾à¤—त निरसà¥à¤¤ हो जाà¤à¤‚गे "
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "निरà¥à¤¦à¥‡à¤¶ %r पहले से पंजीकृत है, यह निरसà¥à¤¤ हो जाà¤à¤—ा"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "भूमिका %r पहले से पंजीकृत है, यह निरसà¥à¤¤ हो जाà¤à¤—ी"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr "%s आयाम यह घोषित नहीं करता कि यह समानांतर पाठन के लिठसà¥à¤°à¤•à¥à¤·à¤¿à¤¤ है. यह मानते हà¥à¤ की à¤à¤¸à¤¾ नहीं है - कृपया आयाम के लेखक को जांच करने और सà¥à¤ªà¤·à¥à¤Ÿ वà¥à¤¯à¤•à¥à¤¤ करने के लिठकहें."
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "समानांतर पठन के लिठयह %s विसà¥à¤¤à¤¾à¤° अथवा आयाम सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ नहीं है | "
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr "%s आयाम यह घोषित नहीं करता कि यह समानांतर लेखन के लिठसà¥à¤°à¤•à¥à¤·à¤¿à¤¤ है. यह मानते हà¥à¤ की à¤à¤¸à¤¾ नहीं है - कृपया आयाम के लेखक को जांच करने और सà¥à¤ªà¤·à¥à¤Ÿ वà¥à¤¯à¤•à¥à¤¤ करने के लिठकहें."
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "समानांतर लेखन के लिठ%s विसà¥à¤¤à¤¾à¤° अथवा आयाम सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ नहीं है | "
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "%s पर काम कर रहे हैं"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "विनà¥à¤¯à¤¾à¤¸ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ में कोनà¥à¥ž.पाय #conf.py# फाइल (%s) नहीं है "
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "शबà¥à¤¦à¤•à¥‹à¤· विनà¥à¤¯à¤¾à¤¸ मान %r की उलà¥à¤²à¤‚घन नहीं किया जा सकता, अनदेखा किया गया (पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• अवयव का मान रखने के लिठ%r का उपयोग करें)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "विनà¥à¤¯à¤¾à¤¸ मान %r के लिठअमानà¥à¤¯ संखà¥à¤¯à¤¾ %r, अनदेखा किया गया"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "असमरà¥à¤¥à¤¿à¤¤ पà¥à¤°à¤•à¤¾à¤° के साथ विनà¥à¤¯à¤¾à¤¸ मान %r का उलà¥à¤²à¤‚घन नहीं किया जा सकता, अनदेखा किया गया"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "आरोहण में अजà¥à¤žà¤¾à¤¤ विनà¥à¤¯à¤¾à¤¸ मान %r, अनदेखा किया गया"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "à¤à¤¸à¤¾ कोई विनà¥à¤¯à¤¾à¤¸ मान नहीं है: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "विनà¥à¤¯à¤¾à¤¸ मान %r पहले से विदà¥à¤¯à¤®à¤¾à¤¨ है"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "आपकी विनà¥à¤¯à¤¾à¤¸ फाइल में रचनाकà¥à¤°à¤® की तà¥à¤°à¥à¤Ÿà¤¿ है: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "विनà¥à¤¯à¤¾à¤¸ फाइल (अथवा इसके दà¥à¤µà¤¾à¤°à¤¾ आयातित पà¥à¤°à¤­à¤¾à¤—ों) दà¥à¤µà¤¾à¤°à¤¾ sys.exit() का आहà¥à¤µà¤¾à¤¨ किया गया"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,291 +235,328 @@ msgid ""
"%s"
msgstr "विनà¥à¤¯à¤¾à¤¸ फाइल में पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® के योगà¥à¤¯ तà¥à¤°à¥à¤Ÿà¤¿ है:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "विनà¥à¤¯à¤¾à¤¸ मान `source_suffix' में अकà¥à¤·à¤°-समूह, अकà¥à¤·à¤°-समूहों की सूची, अथवा कोष की अनà¥à¤®à¤¤à¤¿ है. लेकिन `%r' दिया गया है."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "भाग %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "चितà¥à¤° %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "सारणी %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "सूची %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "`{name}` विनà¥à¤¯à¤¾à¤¸ मान, {candidates} में से à¤à¤• होना चाहिà¤, परनà¥à¤¤à¥ `{current}` दिया गया है."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "विनà¥à¤¯à¤¾à¤¸ मान `{name}' का पà¥à¤°à¤•à¤¾à¤° `{current.__name__}' है; अपेकà¥à¤·à¤¿à¤¤ {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "विनà¥à¤¯à¤¾à¤¸ मान `{name}' का पà¥à¤°à¤•à¤¾à¤° `{current.__name__}' है; मानक `{default.__name__}' का पà¥à¤°à¤¯à¥‹à¤— किया गया."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r नहीं मिला, अनदेखा किया गया."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "%r घटना पहले से विदà¥à¤¯à¤®à¤¾à¤¨ है"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "अजà¥à¤žà¤¾à¤¤ घटना नाम: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "आयाम %s की needs_extensions मान में आवशà¥à¤•à¤¤à¤¾ है, पर यह नहीं चà¥à¤¾à¤¯à¤¾ गया है."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "इस परियोजना में आयाम %s का कम से कम %s संसà¥à¤•à¤°à¤£ चाहिठइसलिठउपलबà¥à¤§ संसà¥à¤•à¤°à¤£ (%s) से बनाना संभव नहीं है."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "पिगमेंटस लेकà¥à¤¸à¤° नाम %r अजà¥à¤žà¤¾à¤¤ है"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "निरà¥à¤®à¤¾à¤£ वरà¥à¤— %s का कोई \"नाम\" भाव नहीं है"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "निरà¥à¤®à¤¾à¤¤à¤¾ %r पहले से (%s पà¥à¤°à¤­à¤¾à¤— में) उपलबà¥à¤§ है"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "निरà¥à¤®à¤¾à¤¤à¤¾ नाम %s पंजीकृत नहीं है अथवा पà¥à¤°à¤µà¥‡à¤¶ सà¥à¤¥à¤¾à¤¨ पर उपलबà¥à¤§ नहीं है."
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "निरà¥à¤®à¤¾à¤¤à¤¾ नाम %s पंजीकृत नहीं है"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "अधिकारकà¥à¤·à¥‡à¤¤à¥à¤° %s पहले से पंजीकृत है"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "अधिकारकà¥à¤·à¥‡à¤¤à¥à¤° %s अभी पंजीकृत नहीं है"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "%r निरà¥à¤¦à¥‡à¤¶ पहले से अधिकार-कà¥à¤·à¥‡à¤¤à¥à¤° %s में पंजीकृत है, "
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "%r भूमिका पहले से अधिकार-कà¥à¤·à¥‡à¤¤à¥à¤° %s में पंजीकृत है, "
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "%r अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾ पहले से अधिकार-कà¥à¤·à¥‡à¤¤à¥à¤° %s में पंजीकृत है"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "%r object_type पहले से पंजीकृत है"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "%r crossref_type पहले से पंजीकृत है"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r पहले से पंजीकृत है"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "%r का source_parser पहले से पंजीकृत है"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "%s का सà¥à¤°à¥‹à¤¤ वà¥à¤¯à¤¾à¤–à¥à¤¯à¤¾à¤¤à¤¾ पंजीकृत नहीं है"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "%r के लिठअनà¥à¤µà¤¾à¤¦à¤• पहले से विदà¥à¤¯à¤®à¤¾à¤¨ है"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "add_node() के kwargs à¤à¤• (visit, depart) फंकà¥à¤¶à¤¨ टपल #function tuple# होने चाहिà¤: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r पहले से पंजीकृत है"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "%r आयाम को %sसंसà¥à¤•à¤°à¤£ से सà¥à¤«à¤¿à¤‚कà¥à¤¸ में समà¥à¤®à¤¿à¤²à¤¿à¤¤ किया जा चà¥à¤•à¤¾ है; आयाम की उपेकà¥à¤·à¤¾ की गयी."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "मौलिक अपवाद:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "%s आयाम का आयात नहीं किया जा सका"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "आयाम %r में कोई सेटअप #setup()# कारक नहीं है; कà¥à¤¯à¤¾ यह वासà¥à¤¤à¤µ में सà¥à¤«à¤¿à¤‚कà¥à¤¸ का परिवरà¥à¤§à¤• पà¥à¤°à¤­à¤¾à¤— है?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "इस परियोजना में पà¥à¤°à¤¯à¥à¤•à¥à¤¤ %s परिवरà¥à¤§à¤• को सà¥à¤«à¤¿à¤‚कà¥à¤¸ का कम से कम %s संसà¥à¤•à¤°à¤£ चाहिà¤; इसलिठइस संसà¥à¤•à¤°à¤£ से बनाना संभव नहीं है."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "परिवरà¥à¤§à¤• %r के सेटअप() करà¥à¤® से à¤à¤• असहाय वसà¥à¤¤à¥ वापस मिली है; इसको 'कà¥à¤› नहीं' अथवा मेटाडाटा कोश भेजना चाहिठथा"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "पाइथन अभिवृदà¥à¤§à¤¿ पà¥à¤°à¤¸à¥à¤¤à¤¾à¤µ; पी.ई.पी. %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "रà¥à¤ªà¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ %r में कोई \"रूप\" मान नहीं है"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "रà¥à¤ªà¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ %r में कोई अनà¥à¤—त मान नहीं है"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "%r नाम से कोई रूप नहीं मिला, %r दà¥à¤µà¤¾à¤°à¤¾ अनà¥à¤—त"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "विनà¥à¤¯à¤¾à¤¸ मान %s.%s खोजे गठकिसी भी रूप विनà¥à¤¯à¤¾à¤¸ में नहीं दिखा"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "विनà¥à¤¯à¤¾à¤¸ का असमरà¥à¤¥à¤¿à¤¤ रूप विकलà¥à¤ª %r दिया गया"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "रà¥à¤ªà¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ के पथ में फाइल %r कोई पà¥à¤°à¤®à¤¾à¤£à¤¿à¤• ज़िप फाइल नहीं है या इसमें कोई रà¥à¤ªà¤µà¤¿à¤¨à¥à¤¯à¤¾à¤¸ नहीं सहेजा गया है"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "%r नामक कोई रूप विनà¥à¤¯à¤¾à¤¸ नहीं मिला (theme.conf अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -530,8 +572,8 @@ msgstr "%s निरà¥à¤®à¤¾à¤¤à¤¾ के लिठयोगà¥à¤¯ चितà¥
msgid "building [mo]: "
msgstr "निरà¥à¤®à¤¾à¤£à¤¾à¤§à¥€à¤¨ [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "परिणाम लिखा जा रहा है..."
@@ -580,7 +622,7 @@ msgstr "%d सà¥à¤°à¥‹à¤¤ फाइलें आदेश सà¥à¤¥à¤¾à¤¨ मà¥
msgid "targets for %d source files that are out of date"
msgstr "%d फाइलों के लकà¥à¤·à¥à¤¯ कालातीत है"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "निरà¥à¤®à¤¾à¤£à¤¾à¤§à¥€à¤¨ [%s]: "
@@ -589,50 +631,50 @@ msgstr "निरà¥à¤®à¤¾à¤£à¤¾à¤§à¥€à¤¨ [%s]: "
msgid "looking for now-outdated files... "
msgstr "अपà¥à¤°à¤šà¤²à¤¿à¤¤ फाइलों को चिनà¥à¤¹à¤¿à¤¤ किया जा रहा है..."
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d मिला"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "à¤à¤• भी नहीं मिला"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "सà¥à¤¥à¤¿à¤¤à¤¿ को परिरकà¥à¤·à¤¿à¤¤ किया जा रहा है"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "संगतता की जांच की जा रही है"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "कोई पà¥à¤°à¤¯à¥‹à¤œà¤¨ कालातीत नहीं है"
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "सà¥à¤¥à¤¿à¤¤à¤¿ का नवीनीकरण किया जा रहा है"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s जोड़ा गया, %s बदला गया, %s हटाया गया"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "सà¥à¤°à¥‹à¤¤à¥‹à¤‚ को पà¥à¤¾ जा रहा है..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "लेखन के लिठशेष लेखपतà¥à¤°: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "लेखपतà¥à¤° बनाठजा रहे हैं"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -641,36 +683,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "विषय-सूची पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ पायी गई: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "चितà¥à¤°à¥‹à¤‚ की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ बनाई जा रही है..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "चितà¥à¤°à¤²à¥‡à¤– फाइल %r नहीं पà¥à¤¾ जा सका: इसकी पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ बनाई जा रही है"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "चितà¥à¤°à¤²à¥‡à¤– फाइल %r की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ नहीं की जा सकी:%s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "चितà¥à¤°à¤²à¥‡à¤– फाइल %r नहीं लिखा जा सका:%s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "पिलो नहीं मिला - चितà¥à¤° फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ बनाई जा रही है"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -678,470 +720,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "%s के लिठअजà¥à¤žà¤¾à¤¤ लेख पà¥à¤°à¤•à¤¾à¤°, छोड़ा गया"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "%s फाइल को लिखा जा रहा है..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "संकà¥à¤·à¤¿à¤ªà¥à¤¤ विवरण फाइल %(outdir)s में है."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "%s संसà¥à¤•à¤°à¤£ में कोई परिवरà¥à¤¤à¤¨ नहीं हैं."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "सार फाइल को लिखा जा रहा है..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "अंतरà¥à¤¨à¤¿à¤°à¥à¤®à¤¿à¤¤"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "पà¥à¤°à¤­à¤¾à¤— सà¥à¤¤à¤°"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "सà¥à¤°à¥‹à¤¤ फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ बनाई जा रही है..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "परिवरà¥à¤¤à¤¨ सूची बनाने के लिठ%r को नहीं पà¥à¤¾ जा सका"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "मूक निरà¥à¤®à¤¾à¤¤à¤¾ से किसी फाइलों की उतà¥à¤ªà¤¤à¥à¤¤à¤¿ नहीं होती."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "ई-पब फाइल %(outdir)s में है."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_language\" (अथवा \"language\") खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_uid\" à¤à¤•à¥à¤¸.à¤à¤®à¥.à¤à¤². नाम होना चाहिà¤"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_title\" (अथवा \"html_title\") खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_author\" खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_contributor\" खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_description\" खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_publisher\" खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_copyright\" (अथवा \"copyright\") खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"epub_identifier\" खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "ई-पब3 के लिठविनà¥à¤¯à¤¾à¤¸ मान \"version\" खाली नहीं होना चाहिà¤"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "अमानà¥à¤¯ css_file: %r, उपेकà¥à¤·à¤¿à¤¤"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "सनà¥à¤¦à¥‡à¤¶ सूचीपतà¥à¤° %(outdir)s में हैं."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "%d नमूना फाइलों के लकà¥à¤·à¥à¤¯"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "नमूनों को पà¥à¤¾ जा रहा है..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "सनà¥à¤¦à¥‡à¤¶ सूचीपतà¥à¤°à¥‹à¤‚ को लिखा जा रहा है..."
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "उपरोकà¥à¤¤ परिणाम में अथवा %(outdir)s /output.txt में तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¤¾à¤ ढूà¤à¤¢à¤¨à¥‡ का पà¥à¤°à¤¯à¤¾à¤¸ "
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "खंडित कड़ी: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "पà¥à¤¸à¥à¤¤à¤¿à¤•à¤¾ पृषà¥à¤  %(outdir)sमें हैं."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "कोई \"man_pages\" विनà¥à¤¯à¤¾à¤¸ मान नहीं मिला; कोई नियमावली पृषà¥à¤  नहीं लिखे जाà¤à¤‚गे"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "लिखा जा रहा है"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" विनà¥à¤¯à¤¾à¤¸ मान अजà¥à¤žà¤¾à¤¤ लेखपतà¥à¤° %s का सनà¥à¤¦à¤°à¥à¤­ है"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "à¤à¤š.टी.à¤à¤®à¥.à¤à¤². पृषà¥à¤  %(outdir)sमें है."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "à¤à¤•à¤² लेखपतà¥à¤° संकलन किया जा रहा है"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "अतिरिकà¥à¤¤ फाइलों को लिखा जा रहा है"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "टेकà¥à¤¸à¤‡à¤¨à¥à¤«à¥‹ पृषà¥à¤  %(outdir)sमें हैं."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nइनà¥à¤¹à¥‡à¤‚ मेकइनà¥à¤«à¥‹ से चलाने के लिठउस निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ में 'मेक' आदेश चलायें\n(à¤à¤¸à¤¾ सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से करने के लिठयहाठ'मेक इनà¥à¤«à¥‹' आदेश का उपयोग करें)"
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "कोई \"texinfo_documents\" विनà¥à¤¯à¤¾à¤¸ मान नहीं मिला; कोई लेखपतà¥à¤° नहीं लिखे जाà¤à¤‚गे"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "\"texinfo_documents\" विनà¥à¤¯à¤¾à¤¸ मान अजà¥à¤žà¤¾à¤¤ लेखपतà¥à¤° %s का सनà¥à¤¦à¤°à¥à¤­ है"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "%s की पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ जारी"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "सनà¥à¤¦à¤°à¥à¤­à¥‹à¤‚ का विशà¥à¤²à¥‡à¤·à¤£ किया जा रहा है..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (में"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "टेकà¥à¤¸à¤‡à¤¨à¥à¤«à¥‹ सहायक फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ की जा रही है..."
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "मेकफाइल लिखने में तà¥à¤°à¥à¤Ÿà¤¿: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "पाठ फाइल %(outdir)s में हैं."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "%s फाइल लिखने में वà¥à¤¯à¤µà¤§à¤¾à¤¨: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "à¤à¤•à¥à¤¸.à¤à¤®à¥.à¤à¤². लेखपतà¥à¤° %(outdir)s में हैं."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "छदà¥à¤®-à¤à¤•à¥à¤¸.à¤à¤®à¥.à¤à¤². लेखपतà¥à¤° %(outdir)s में हैं."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "निरà¥à¤®à¤¾à¤£ सूचनापतà¥à¤° फाइल खंडित है: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "à¤à¤š.टी.à¤à¤®à¥.à¤à¤². पृषà¥à¤  %(outdir)sमें हैं."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "निरà¥à¤®à¤¾à¤£ सूचनापतà¥à¤° फाइल को नहीं पà¥à¤¾ जा सका: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "सामानà¥à¤¯ अनà¥à¤•à¥à¤°à¤®à¤¾à¤£à¤¿à¤•à¤¾"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "आगामी"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "पूरà¥à¤µà¤µà¤°à¥à¤¤à¥€"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "अनà¥à¤•à¥à¤°à¤®à¤¾à¤£à¤¿à¤•à¤¾ निरà¥à¤®à¤¿à¤¤ की जा रही है"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "अतिरिकà¥à¤¤ पृषà¥à¤  लिखे जा रहे हैं"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "उतारी गई फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ बनाई जा रही है..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "उतारी गई फाइलों %r की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ नहीं की जा सकी: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "सà¥à¤¥à¥ˆà¤¤à¤¿à¤• फाइल %r की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ नहीं की जा सकी"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "अतिरिकà¥à¤¤ फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿à¤¯à¤¾à¤‚ बनाये जा रहे है| "
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "अतिरिकà¥à¤¤ फाइल %r की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ नहीं की जा सकी"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "निरà¥à¤®à¤¾à¤£ फाइल को नहीं लिखा जा सका: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "खोज अनà¥à¤•à¥à¤°à¤®à¤¾à¤£à¤¿à¤•à¤¾ नहीं चढाई जा सकी, लेकिन सभी लेखपतà¥à¤° नहीं बनाठजाà¤à¤‚गे: अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾ अपूरà¥à¤£ रहेगी."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "पृषà¥à¤  %s html_sidebars में दो आकृतियों से मिलता है: %r %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "पृषà¥à¤  %s की पà¥à¤°à¤¸à¥à¤¤à¥à¤¤à¤¿ करते समय यूनिकोड तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆ. कृपया यह सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ कर लें कि सभी नॉन-असकी #non-ASCII# विहित विनà¥à¤¯à¤¾à¤¸ मान यूनिकोड अकà¥à¤·à¤°à¥‹à¤‚ में हैं."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "पृषà¥à¤  %s की पà¥à¤°à¤¸à¥à¤¤à¥à¤¤à¤¿ करते समय à¤à¤• तà¥à¤°à¥à¤Ÿà¤¿ हà¥à¤ˆ.\nकारण: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "विषयवसà¥à¤¤à¥à¤“ं का भंडार बनाया जा रहा है"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "%s में खोज अनà¥à¤•à¥à¤°à¤®à¤¾à¤£à¤¿à¤•à¤¾ भंडार बनाया जा रहा है"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "अमानà¥à¤¯ js_file: %r, उपेकà¥à¤·à¤¿à¤¤"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "कई math_renderers पंजीकृत हैं. लेकिन कोई math_renderers नहीं चà¥à¤¨à¤¾ गया है."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "अजà¥à¤žà¤¾à¤¤ math_renderer %r दिया गया."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ %r का असà¥à¤¤à¤¿à¤¤à¥à¤µ नहीं है"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path का पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ %r outdir में है| "
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ %r का असà¥à¤¤à¤¿à¤¤à¥à¤µ नहीं है"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path का पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ %r outdir में है| "
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "पà¥à¤°à¤¤à¥€à¤•à¤šà¤¿à¤¨à¥à¤¹ फाइल %r का असà¥à¤¤à¤¿à¤¤à¥à¤µ नहीं है"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "इषà¥à¤Ÿ चिनà¥à¤¹ फाइल %r का असà¥à¤¤à¤¿à¤¤à¥à¤µ नहीं है"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s दिगà¥à¤¦à¤°à¥à¤¶à¤¿à¤•à¤¾"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "लाटेकà¥à¤¸ लेखपतà¥à¤° %(outdir)s में हैं."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nइनà¥à¤¹à¥‡à¤‚ (pdf)latex से चलाने के लिठउस निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ में 'मेक' आदेश चलायें\n(à¤à¤¸à¤¾ सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से करने के लिठयहाठ'make latexpdf' आदेश का उपयोग करें)"
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "कोई \"latex_documents\" विनà¥à¤¯à¤¾à¤¸ मान नहीं मिला; कोई नहीं लिखे जाà¤à¤‚गे"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "\"latex_documents\" विनà¥à¤¯à¤¾à¤¸ मान अजà¥à¤žà¤¾à¤¤ लेखपतà¥à¤° %s का सनà¥à¤¦à¤°à¥à¤­ है"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "आवृतà¥à¤¤à¤¿"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "%r भाषा के लिठकोई बाबेल विकलà¥à¤ª नहीं "
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "टेकà¥à¤¸ सहायक फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ की जा रही है..."
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "टेकà¥à¤¸ सहायक फाइलों की पà¥à¤°à¤¤à¤¿à¤²à¤¿à¤ªà¤¿ की जा रही है..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "अतिरिकà¥à¤¤ फाइलों की पà¥à¤°à¤¤à¤¿à¤•à¥ƒà¤¤à¤¿ बनाई जा रही है"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1156,15 +1198,15 @@ msgstr "%r में कोई \"रूप\" मान नहीं है"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r में कोई \"%s \" मान नहीं है"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1223,8 +1265,8 @@ msgstr "तà¥à¤°à¥à¤Ÿà¤¿ की सूचना <https://github.com/sphinx-doc
msgid "job number should be a positive number"
msgstr "कारà¥à¤¯ संखà¥à¤¯à¤¾ à¤à¤• धनातà¥à¤®à¤• संखà¥à¤¯à¤¾ होनी चाहिà¤"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1256,257 +1298,264 @@ msgid "path to output directory"
msgstr "परिणाम निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ का पथ"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "पà¥à¤¨à¤°à¥à¤¨à¤¿à¤°à¥à¤®à¤¾à¤£ के लिठनिशà¥à¤šà¤¿à¤¤ फाइलों की सूची. यदि -a निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ है तो उपेकà¥à¤·à¤¾ कर दी जाà¤à¤—ी"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "सामानà¥à¤¯ विकलà¥à¤ª"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "पà¥à¤°à¤¯à¥‹à¤— के लिठनिरà¥à¤®à¤¾à¤¤à¤¾ (मानक: à¤à¤š.टी.à¤à¤®à¥.à¤à¤². #html#)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "सभी फाइलें लिखें (मानक: केवल नई और परिवरà¥à¤¤à¤¿à¤¤ फाइलें लिखें)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "सहेजी गयी परिसà¥à¤¥à¤¿à¤¤à¤¿ का पà¥à¤°à¤¯à¥‹à¤— न करें, सदैव सभी फाइलों को पà¥à¥‡à¤‚"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "संचित परिसà¥à¤¥à¤¿à¤¤à¤¿ और डॉक-टà¥à¤°à¥€ फाइलों का पथ (मानक: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "यदि संभव हो तो समानांतर N पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾à¤“ं में निरà¥à¤®à¤¾à¤£ करें (ऑटो #auto# विशेष मान दà¥à¤µà¤¾à¤°à¤¾ cpu-count को N पर लगा दिया जाà¤à¤—ा)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "पथ जहाठपर विनà¥à¤¯à¤¾à¤¸ फाइल (conf.py) सà¥à¤¥à¤¿à¤¤ है (मानक: SOURCEDIR के समरूप)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "किसी भी विनà¥à¤¯à¤¾à¤¸ फाइल का उपयोग ही न करें, मातà¥à¤° -D विकलà¥à¤ª"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "विनà¥à¤¯à¤¾à¤¸ फाइल के à¤à¤• मान का उलà¥à¤²à¤‚घन करें "
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "à¤à¤š.टी.à¤à¤®à¥.à¤à¤². के नमूने में राशि पà¥à¤°à¥‡à¤·à¤¿à¤¤ करें"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "नाम-पतà¥à¤° परिभाषित करें: केवल नाम-पतà¥à¤° वाले खणà¥à¤¡à¥‹à¤‚ का समावेश करें"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "गहन जांच का पालन करें, सभी अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤ संदरà¥à¤­à¥‹à¤‚ के बारे में सचेत करें"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ परिणामों के विकलà¥à¤ª"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "शबà¥à¤¦-पà¥à¤°à¤¯à¥‹à¤— बà¥à¤¾à¤à¤‚ (पà¥à¤¨à¤°à¤¾à¤µà¥ƒà¤¤à¥à¤¤à¤¿ की जा सकती है) "
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "à¤à¤¸.टी.डी आउट #stdout# पर कोई परिणाम नहीं, à¤à¤¸.टी.डी à¤à¤°à¤° #stderr# पर चेतावनियाठ"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "कà¥à¤› भी निरà¥à¤—मित नहीं, यहाठतक कि चेतावनी भी नहीं"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "रंगीन परिणाम ही दिखाà¤à¤ (मानक: सà¥à¤µà¤¤à¤ƒ अनà¥à¤®à¤¾à¤¨à¤¿à¤¤)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "रंगीन परिणाम नहीं दिखाà¤à¤ (मानक: सà¥à¤µà¤¤à¤ƒ अनà¥à¤®à¤¾à¤¨à¤¿à¤¤)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "चेतावनियाठ(और तà¥à¤°à¥à¤Ÿà¤¿à¤¯à¤¾à¤) दी गई फाइल में लिखें"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "चेतावनियों को अशà¥à¤¦à¥à¤§à¤¿ मानें"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "अपवाद होने पर पूरा विलोम-अनà¥à¤—मन देखें"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "अपवाद होने पर पी.डी.बी. चलाà¤à¤‚"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "-a विकलà¥à¤ª और फाइल के नामों को समà¥à¤®à¤¿à¤²à¤¿à¤¤ नहीं किया जा सकता"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "चेतावनी फाइल %r नहीं खोली जा सकी: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D विकलà¥à¤ª का मान नाम = मान के रूप में होना आवशà¥à¤¯à¤• है"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A विकलà¥à¤ª का मान नाम = मान के रूप में होना आवशà¥à¤¯à¤• है"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "पà¥à¤°à¤­à¤¾à¤—ों में से डॉकà¥-सà¥à¤Ÿà¥à¤°à¤¿à¤‚ग सà¥à¤µà¤¤à¤ƒà¤¸à¤®à¥à¤®à¤¿à¤²à¤¿à¤¤ करें"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "डॉकà¥-टेसà¥à¤Ÿ अंशों के निरà¥à¤¦à¥‡à¤¶ भाग की सà¥à¤µà¤¤à¤ƒ जाà¤à¤š करें"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "भिनà¥à¤¨ परियोजनाओं के सà¥à¤«à¤¿à¤‚कà¥à¤¸ पà¥à¤°à¤²à¥‡à¤–ों का पारसà¥à¤ªà¤°à¤¿à¤• समà¥à¤¬à¤¨à¥à¤§ करने दें"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "वह \"शेष\" पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿à¤¯à¤¾à¤ लिख लें, जिनà¥à¤¹à¥‡à¤‚ निरà¥à¤®à¤¾à¤£ के समय दिखाया या छिपाया जा सकता है"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "पà¥à¤°à¤²à¥‡à¤–ों की वà¥à¤¯à¤¾à¤ªà¥à¤¤à¤¿ की जाà¤à¤š करें"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "गणित को समà¥à¤®à¤¿à¤²à¤¿à¤¤ करें, पी.à¤à¤¨.जी. अथवा à¤à¤¸.वी.जी. में चितà¥à¤°à¤¿à¤¤"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "गणित को समà¥à¤®à¤¿à¤²à¤¿à¤¤ करें, दिगà¥à¤¦à¤°à¥à¤¶à¤• में मैथजाकà¥à¤¸ #MathJax# दà¥à¤µà¤¾à¤°à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "विनà¥à¤¯à¤¾à¤¸ मान के आधार पर सामिगà¥à¤°à¥€ का सशरà¥à¤¤ समावेश"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "पाइथन विषयवसà¥à¤¤à¥à¤“ं के पà¥à¤°à¤²à¥‡à¤–ों के सà¥à¤°à¥‹à¤¤ निरà¥à¤¦à¥‡à¤¶ की कड़ी जोड़ें"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "गिटहब GitHub पर लेखपतà¥à¤° पà¥à¤°à¤•à¤¾à¤¶à¤¿à¤¤ करने के लिठ.nojekyll फाइल बनाà¤à¤‚"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "कृपया à¤à¤• मानà¥à¤¯ पथ का नाम दें"
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "कृपया कà¥à¤› वाकà¥à¤¯à¤¾à¤‚श लिखें"
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "%s में से à¤à¤• चà¥à¤¨à¥‡à¤‚"
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "कृपया हाठके लिठ'y' अथवा नहीं के लिठ'n' मातà¥à¤° दें. "
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "कृपया à¤à¤• फाइल पà¥à¤°à¤¤à¥à¤¯à¤¯ दें, जैसे कि '.rst' अथवा '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "सà¥à¤«à¤¿à¤‚कà¥à¤¸ %s तà¥à¤µà¤°à¤¿à¤¤-आरंभ #sphinx-quickstart# उपकरण के लिठअभिननà¥à¤¦à¤¨"
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "कृपया निमà¥à¤¨ विनà¥à¤¯à¤¾à¤¸à¥‹à¤‚ के लिठमान पà¥à¤°à¤¦à¤¾à¤¨ करें (मानक मान, यदि कोषà¥à¤ à¤• में हो तो, सà¥à¤µà¥€à¤•à¤¾à¤° करने के लिठà¤à¤¨à¥à¤Ÿà¤° दबाà¤à¤)"
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "चà¥à¤¨à¤¾ हà¥à¤† बà¥à¤¨à¤¿à¤¯à¤¾à¤¦à¥€ तथा मूल सà¥à¤¥à¤¾à¤¨: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "आलेख का बà¥à¤¨à¤¿à¤¯à¤¾à¤¦à¥€ सà¥à¤¥à¤¾à¤¨ बताà¤à¤‚."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "आलेख का बà¥à¤¨à¤¿à¤¯à¤¾à¤¦à¥€ पथ"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "तà¥à¤°à¥à¤Ÿà¤¿: à¤à¤• मौजूदा conf.py फाइल दिठगठमूल पथ में पà¥à¤°à¤¾à¤ªà¥à¤¤ हà¥à¤ˆ है."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "सà¥à¤«à¤¿à¤‚कà¥à¤¸-तà¥à¤µà¤°à¤¿à¤¤-आरमà¥à¤­ #sphinx-quickstart# मौजूदा सà¥à¤«à¤¿à¤‚कà¥à¤¸ परियोजनाओं पर पà¥à¤¨à¤°à¥à¤²à¥‡à¤–न नहीं करेगा."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "कृपया à¤à¤• नया मूल पथ दें (अथवा निकलने हेतॠसिरà¥à¤« à¤à¤¨à¥à¤Ÿà¤° #Enter# कर दें)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "आपके पास Sphinx दà¥à¤µà¤¾à¤°à¤¾ बनाई गई फाइलों को सहेजने के लिठदो विकलà¥à¤ª हैं.\nया तो आप मूल सà¥à¤¥à¤¾à¤¨ में ही \"_build\" निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ पà¥à¤°à¤¯à¥‹à¤— करें, अथवा\nमूल पथ में भिनà¥à¤¨ \"सà¥à¤°à¥‹à¤¤\" और \"build\" निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ पà¥à¤°à¤¯à¥‹à¤— करें."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "विभिनà¥à¤¨ सà¥à¤°à¥‹à¤¤ और निरà¥à¤®à¤¾à¤£ डायरेकà¥à¤Ÿà¤°à¥€ (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "मूल निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ के अनà¥à¤¦à¤°, दो और निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ बनाई जाà¤à¤à¤—ी;\nपरिवरà¥à¤§à¤¿à¤¤ à¤à¤š.टी.à¤à¤®à¥.à¤à¤². नमूनों के लिठ\"_templates\" और परिवरà¥à¤§à¤¿à¤¤ रà¥à¤ªà¤ªà¤¤à¥à¤°à¥‹à¤‚ और अनà¥à¤¯ सà¥à¤¥à¥ˆà¤¤à¤¿à¤• फाइलों के लिठ\"_static\"\nआप अधोरेखा के सà¥à¤¥à¤¾à¤¨ पर अनà¥à¤¯ पूरà¥à¤µ-पà¥à¤°à¤¤à¥à¤¯à¤¯ (जैसे कि \".\") का पà¥à¤°à¤¯à¥‹à¤— कर सकते हैं."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "नमूने और सà¥à¤¥à¥ˆà¤¤à¤¿à¤• डायरेकà¥à¤Ÿà¤°à¥€ के लिठपूरà¥à¤µ-पà¥à¤°à¤¤à¥à¤¯à¤¯"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "परियोजना का नाम बनाये गठपà¥à¤°à¤ªà¤¤à¥à¤°à¥‹à¤‚ में बहà¥à¤¤ से सà¥à¤¥à¤¾à¤¨à¥‹à¤‚ पर पà¥à¤°à¤¯à¥à¤•à¥à¤¤ होगा."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "परियोजना का नाम"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "लेखक(कों) का नाम"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "परियोजना संसà¥à¤•à¤°à¤£"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "परियोजना आवृतà¥à¤¤à¤¿"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "यदि पà¥à¤°à¤²à¥‡à¤–ों को अंगà¥à¤°à¥‡à¤œà¥€ के अलावा अनà¥à¤¯ किसी भाषा में लिखा जाना है,\nतो यहाठपर आप भाषा का कूटशबà¥à¤¦ दे सकते हैं. सà¥à¤«à¤¿à¤‚कà¥à¤¸ तदपà¥à¤°à¤¾à¤‚त,\nजो वाकà¥à¤¯à¤¾à¤‚श बनाता है उसे उस भाषा में अनà¥à¤µà¤¾à¤¦à¤¿à¤¤ करेगा.\n\nमानà¥à¤¯ भाषा कूटशबà¥à¤¦ सूची यहाठपर देखें\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "परियोजना की भाषा"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "सà¥à¤°à¥‹à¤¤ फाइल का पà¥à¤°à¤¤à¥à¤¯à¤¯"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "आपने मà¥à¤–à¥à¤¯ लेखपतà¥à¤° का नाम दें (पà¥à¤°à¤¤à¥à¤¯à¤¯ रहित)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "तà¥à¤°à¥à¤Ÿà¤¿: मà¥à¤–à¥à¤¯ फाइल %s चà¥à¤¨à¥‡ हà¥à¤ मूल पथ में पहले से उपलबà¥à¤§ है."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "सà¥à¤«à¤¿à¤‚कà¥à¤¸-तà¥à¤µà¤°à¤¿à¤¤-आरमà¥à¤­ मौजूदा फाइलों पर पà¥à¤¨à¤°à¥à¤²à¥‡à¤–न नहीं करेगा."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "कृपया à¤à¤• नया फाइल नाम दें, अथवा मौजूदा फाइल का पà¥à¤¨à¤°à¥à¤¨à¤¾à¤®à¤•à¤°à¤£ करें और à¤à¤¨à¥à¤Ÿà¤° दबाà¤à¤"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "इनमें से कौन सा सà¥à¤«à¤¿à¤‚कà¥à¤¸ आयाम पà¥à¤°à¤¯à¥‹à¤— करना है, इंगित करें:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "टिपà¥à¤ªà¤£à¥€: imgmath और mathjax à¤à¤• साथ समरà¥à¤¥ नहीं हो सकते. imgmath को अचिनà¥à¤¹à¤¿à¤¤ कर दिया गया है."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "मेकफाइल बनाà¤à¤‚? (हाठके लिठy/ ना के लिठn)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "विंडोज़ कमांड फाइल बनाà¤à¤‚? (हाठके लिठy/ ना के लिठn)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "फाइल बनाई जा रही है ...%s"
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "फाइल %s पहले से उपसà¥à¤¥à¤¿à¤¤ है, छोड़ दी गई."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "समापà¥à¤¤: à¤à¤• पà¥à¤°à¤¾à¤°à¤‚भिक निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ का ढांचा बना दिया गया है."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nसà¥à¤«à¤¿à¤‚कà¥à¤¸ परियोजना के लिठआवशà¥à¤¯à¤• फाइल बनाà¤à¤‚.\n\nसà¥à¤«à¤¿à¤‚कà¥à¤¸-तà¥à¤µà¤°à¤¿à¤¤-आरमà¥à¤­ à¤à¤• संवादपूरà¥à¤£ उपकरण है जो आपकी परियोजना के \nबारे में कà¥à¤› पà¥à¤°à¤¶à¥à¤¨ पूछकर पूरी पà¥à¤°à¤²à¥‡à¤–ों की निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ और नमूना मेकफाइल \nबना देता है जिसे सà¥à¤«à¤¿à¤‚कà¥à¤¸-बिलà¥à¤¡ में पà¥à¤°à¤¯à¥‹à¤— किया जा सकता है.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "शांत ढंग "
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "ढांचे के विकलà¥à¤ª"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "यदि निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ हो तो विभिनà¥à¤¨ सà¥à¤°à¥‹à¤¤ और निरà¥à¤®à¤¾à¤£ पथ"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "_templates आदि में बिंदॠका बदलाव"
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "परोयोजना के मूलभूत विकलà¥à¤ª"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "परियोजना का नाम"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "लेखकों के नाम"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "परियोजना का संसà¥à¤•à¤°à¤£"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "परियोजना की आवृतà¥à¤¤à¤¿"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "लेखपतà¥à¤° की भाषा"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "सà¥à¤°à¥‹à¤¤ फाइल का पà¥à¤°à¤¤à¥à¤¯à¤¯"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "मà¥à¤–à¥à¤¯ लेखपतà¥à¤° का नाम"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "ई-पब पà¥à¤°à¤¯à¥‹à¤— करें"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "आयाम के विकलà¥à¤ª"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "आयाम %s सकà¥à¤·à¤® करें"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "सà¥à¤µà¥‡à¤šà¥à¤›à¤¿à¤¤ आयाम सकà¥à¤·à¤® करें"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "मेकफाइल और बैचफाइल का सरà¥à¤œà¤¨"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "मेकफाइल बनाà¤à¤‚"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "मेकफाइल नहीं बनाà¤à¤‚"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "बैचफाइल बनाà¤à¤‚"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "बैचफाइल नहीं बनाà¤à¤‚"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "Makefile/make.bat के लिठmake-mode का पà¥à¤°à¤¯à¥‹à¤— करें"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "Makefile/make.bat के लिठmake-mode का पà¥à¤°à¤¯à¥‹à¤— नहीं करें"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "परियोजना नमूनावृतà¥à¤¤à¤¿"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "नमूना फाइलों के लिठनमूना निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "नमूना चर-पद का निरूपण करें"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"शांत\" निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ है, परनà¥à¤¤à¥ कोई भी \"परियोजना\" अथवा \"लेखक\" निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ नहीं है."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "तà¥à¤°à¥à¤Ÿà¤¿: दिया गया पथ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ नहीं है, अथवा सà¥à¤«à¤¿à¤‚कà¥à¤¸ फाइलें पहले से उपसà¥à¤¥à¤¿à¤¤ हैं."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "सà¥à¤«à¤¿à¤‚कà¥à¤¸-तà¥à¤µà¤°à¤¿à¤¤-आरमà¥à¤­ केवल à¤à¤• खाली निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ में कारà¥à¤¯à¤¶à¥€à¤² हो सकती है. कृपया à¤à¤• नया मूल पथ निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ करें."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "अमानà¥à¤¯ नमूना चर-पद: %s"
@@ -1828,47 +1877,47 @@ msgstr "\"lineno-match\" का पà¥à¤°à¤¯à¥‹à¤— बिना जà¥à¤¡à¥€ \"l
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "लाइन बà¥à¤¯à¥Œà¤°à¤¾ %r: समà¥à¤®à¤¿à¤²à¤¿à¤¤ फाइल %r से कोई लाइन नहीं ली जा सकीं"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "विषय-सूची-संरचना में छोड़े गठलेखपतà¥à¤° %r का सनà¥à¤¦à¤°à¥à¤­ है"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "विषय-सूची-संरचना में अविदà¥à¤¯à¤®à¤¾à¤¨ लेखपतà¥à¤° %r का सनà¥à¤¦à¤°à¥à¤­ है"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "भाग के लेखक:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "पà¥à¤°à¤­à¤¾à¤— लेखक:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "निरà¥à¤¦à¥‡à¤¶ लेखक:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "लेखक:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1883,82 +1932,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "मापदणà¥à¤¡"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "पà¥à¤°à¤¦à¤¤à¥à¤¤ "
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "पà¥à¤°à¤¦à¤¤à¥à¤¤ पà¥à¤°à¤•à¤¾à¤° "
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "सदसà¥à¤¯"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "चर पद"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "फंकà¥à¤¶à¤¨"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "मैकà¥à¤°à¥‹"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "यà¥à¤—à¥à¤®"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "गणक"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "पà¥à¤°à¤—णक "
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "पà¥à¤°à¤•à¤¾à¤°"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "संसà¥à¤•à¤°à¤£ %s से नया "
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "संसà¥à¤•à¤°à¤£ %s से अलग "
msgid "Deprecated since version %s"
msgstr "संसà¥à¤•à¤°à¤£ %s से पà¥à¤°à¤¤à¤¿à¤¬à¤‚धित "
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "पà¥à¤°à¤¤à¤¿à¤°à¥‚प उदà¥à¤§à¤°à¤£ %s, दूसरी पà¥à¤°à¤¤à¤¿à¤•à¥ƒà¤¤à¤¿ %s में है "
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "उदà¥à¤§à¤°à¤£ [%s] सनà¥à¤¦à¤°à¥à¤­ कहीं नहीं है"
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "नमूना मानदणà¥à¤¡ "
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "देता है "
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "वरà¥à¤—"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "अवधारणा "
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (अंतरà¥à¤¨à¤¿à¤°à¥à¤®à¤¿à¤¤ फंकà¥à¤¶à¤¨)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s विधि)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (वरà¥à¤—)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (वैशà¥à¤µà¤¿à¤• चरपद अथवा अचर) "
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s लकà¥à¤·à¤£)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "चर "
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "देता है "
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "पà¥à¤°à¤¦à¤¤à¥à¤¤ "
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "पà¥à¤°à¤¦à¤¤à¥à¤¤ पà¥à¤°à¤•à¤¾à¤° "
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (पà¥à¤°à¤­à¤¾à¤—)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "फंकà¥à¤¶à¤¨"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "पदà¥à¤§à¤¤à¤¿"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "वरà¥à¤—"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "आंकड़े "
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "लकà¥à¤·à¤£"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "पà¥à¤°à¤­à¤¾à¤—"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "समीकरण का पà¥à¤°à¤¤à¤¿à¤°à¥‚प शीरà¥à¤·à¤• %s, दूसरी पà¥à¤°à¤¤à¤¿à¤•à¥ƒà¤¤à¤¿ %s में है "
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "अमानà¥à¤¯ math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "चर पद "
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (निरà¥à¤¦à¥‡à¤¶)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "उभारता है "
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (भूमिका)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "निरà¥à¤¦à¥‡à¤¶"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "भूमिका"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "मापदणà¥à¤¡"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "सदसà¥à¤¯"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "चर पद"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "मैकà¥à¤°à¥‹"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "यà¥à¤—à¥à¤®"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "गणक"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "पà¥à¤°à¤—णक "
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "पà¥à¤°à¤•à¤¾à¤°"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "नमूना मानदणà¥à¤¡ "
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "अवधारणा "
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s पà¥à¤°à¤­à¤¾à¤— में )"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s पà¥à¤°à¤­à¤¾à¤— में )"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (अंतरà¥à¤¨à¤¿à¤°à¥à¤®à¤¿à¤¤ चर पद)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (अंतरà¥à¤¨à¤¿à¤°à¥à¤®à¤¿à¤¤ वरà¥à¤—)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (%s वरà¥à¤— में)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s वरà¥à¤— विधि) "
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s सà¥à¤¥à¥ˆà¤¤à¤¿à¤• विधि)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "पाइथन पà¥à¤°à¤­à¤¾à¤— सूची"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "पà¥à¤°à¤­à¤¾à¤—"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "अवमानित "
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "अपवाद "
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "वरà¥à¤— विधि"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "सà¥à¤¥à¥ˆà¤¤à¤¿à¤• पदà¥à¤§à¤¤à¤¿"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "पारसà¥à¤ªà¤°à¤¿à¤•-सनà¥à¤¦à¤°à¥à¤­à¥‹à¤‚ के लिठà¤à¤• से अधिक लकà¥à¤·à¥à¤¯ मिले %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(अवमानित)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (निरà¥à¤¦à¥‡à¤¶)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (भूमिका)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "निरà¥à¤¦à¥‡à¤¶"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "भूमिका"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "चर पद "
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "उभारता है "
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "परिसà¥à¤¥à¤¿à¤¤à¤¿ चर पद; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "अशà¥à¤¦à¥à¤§ रूप विकलà¥à¤ª विवरण %r, अपेकà¥à¤·à¤¿à¤¤ पà¥à¤°à¤¾à¤°à¥‚प \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" अथवा \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "पारिभाषिक पद"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "वà¥à¤¯à¤¾à¤•à¤°à¤£ संकेत "
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "सनà¥à¤¦à¤°à¥à¤­ शीरà¥à¤·à¤•"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "परिसà¥à¤¥à¤¿à¤¤à¤¿ चर पद "
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "पà¥à¤°à¥‹à¤—à¥à¤°à¤¾à¤® विकलà¥à¤ª "
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "लेखपतà¥à¤°"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "पà¥à¤°à¤­à¤¾à¤— सूची"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "खोज पृषà¥à¤ "
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "पà¥à¤°à¤¤à¤¿à¤°à¥‚प शीरà¥à¤·à¤• %s, दूसरी पà¥à¤°à¤¤à¤¿à¤•à¥ƒà¤¤à¤¿ %s में है "
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig असमरà¥à¤¥ है. :numref: उपेकà¥à¤·à¤¿à¤¤ है."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "कड़ी का कोई शीरà¥à¤·à¤• नहीं है: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "अमानà¥à¤¯ numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "अमानà¥à¤¯ numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2326,35 +2380,35 @@ msgstr "विनà¥à¤¯à¤¾à¤¸ परिवरà¥à¤¤à¤¿à¤¤"
msgid "extensions changed"
msgstr "आयाम परिवरà¥à¤¤à¤¿à¤¤"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "निरà¥à¤®à¤¿à¤¤ परिसà¥à¤¥à¤¿à¤¤à¤¿ वरà¥à¤¤à¤®à¤¾à¤¨ संसà¥à¤•à¤°à¤£ नहीं है "
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "सà¥à¤°à¥‹à¤¤ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ परिवरà¥à¤¤à¤¿à¤¤ हो चà¥à¤•à¥€ है "
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "यह परिसà¥à¤¥à¤¿à¤¤à¤¿ चà¥à¤¨à¥‡ गठनिरà¥à¤®à¤¾à¤¤à¤¾ से मेल नहीं खाती, कृपया दूसरी डॉक-टà¥à¤°à¥€ निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ चà¥à¤¨à¥‡à¤‚. "
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "लेखपतà¥à¤°à¥‹à¤‚ के परà¥à¤¯à¤µà¥‡à¤•à¥à¤·à¤£ में असफलता %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "अधिकारकà¥à¤·à¥‡à¤¤à¥à¤° %r पंजीकृत नहीं है"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "लेखपतà¥à¤° किसी भी विषय-सूची-संरचना में समà¥à¤®à¤¿à¤²à¤¿à¤¤ नहीं है"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "सà¥à¤µà¤¯à¤‚-संदरà¥à¤­à¤¿à¤¤ विषय-सूची-संरचना मिली है. उपेकà¥à¤·à¤¾ की गई."
@@ -2378,39 +2432,39 @@ msgstr "अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾ की पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ क
msgid "Symbols"
msgstr "संकेत "
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "पारसà¥à¤ªà¤°à¤¿à¤• संदरà¥à¤­à¤¿à¤¤ विषय-सूची-संरचना सनà¥à¤¦à¤°à¥à¤­ पाठगà¤, उपेकà¥à¤·à¤¾ की जा रही है: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "विषय-सूची-संरचना में लेखपतà¥à¤° %r, जिसका कोई शीरà¥à¤·à¤• नहीं है, का सनà¥à¤¦à¤°à¥à¤­ है: कोई समà¥à¤¬à¤¨à¥à¤§ नहीं बनाया जा सकेगा"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "चितà¥à¤° फाइल पठनीय नहीं है: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "चितà¥à¤° फाइल %s पठनीय नहीं है: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "उतारी गई फाइल पठनीय नहीं है: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s में पहले से भाग संखà¥à¤¯à¤¾ नियत है (à¤à¤• के अनà¥à¤¦à¤° दूसरा अंकित विषय-सूची-संरचना)"
@@ -2420,7 +2474,7 @@ msgstr "%s में पहले से भाग संखà¥à¤¯à¤¾ नियà
msgid "Would create file %s."
msgstr "%s फाइल बन जाà¤à¤—ी."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\n<MODULE_PATH> में पाइथन पà¥à¤°à¤­à¤¾à¤— और पैकेज की पà¥à¤¨à¤°à¤¾à¤µà¤°à¥à¤¤à¤¿à¤¤ खोज करें और\nसà¥à¤µà¤¤à¤ƒà¤ªà¥à¤°à¤­à¤¾à¤— निरà¥à¤¦à¥‡à¤¶ दà¥à¤µà¤¾à¤°à¤¾ <OUTPUT_PATH> में पà¥à¤°à¤¤à¤¿ पैकेज à¤à¤• रेसà¥à¤Ÿ #reST# फाइल बनाà¤à¤‚.\n\n<EXCLUDE_PATTERN> फाइल और/ अथवा निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ सà¥à¤µà¤°à¥à¤ª हो सकते हैं\nजो निरà¥à¤®à¤¾à¤£ पà¥à¤°à¤•à¤¿à¤¯à¤¾ में छोड़ दिठजाà¤à¤‚गे.\n\nनोट: सामानà¥à¤¯à¤¤à¤¯à¤¾ यह सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ किसी पहले से बनाई गई फाइल पर पà¥à¤¨à¤°à¥à¤²à¥‡à¤–न नहीं करती."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "पà¥à¤°à¤­à¤¾à¤— से लेखपतà¥à¤° का पथ"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "fnmatch-style फाइल और/ अथवा निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ सà¥à¤µà¤°à¥à¤ª जो निरà¥à¤®à¤¾à¤£ पà¥à¤°à¤•à¥à¤°à¤¿à¤¯à¤¾ से छोड़ने हैं"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "सभी परिणामों को सहेजने के लिठनिरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "विषय-सूची में दिखाठजाने वाले उपपà¥à¤°à¤­à¤¾à¤—ों की अधिकतम गहराई (मानक: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "मौजूदा फाइलों पर पà¥à¤¨à¤°à¥à¤²à¥‡à¤–न करें"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "सांकेतिक कड़ियों का अनà¥à¤¸à¤°à¤£ करें. कलेकà¥à¤Ÿà¤¿à¤µ.रेसिपी.ऑमलेट के साथ पà¥à¤°à¤­à¤¾à¤µà¤¶à¤¾à¤²à¥€. "
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "फाइलों को बनाठबिना सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ चलाà¤à¤‚ "
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "पà¥à¤°à¤¤à¥à¤¯à¥‡à¤• पà¥à¤°à¤­à¤¾à¤— के आलेख उसके अपने पृषà¥à¤  में रखें"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "\"_private\" पà¥à¤°à¤­à¤¾à¤— को समà¥à¤®à¤¿à¤²à¤¿à¤¤ करें "
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "विषय-सूची की फाइल का नाम (मानक: पà¥à¤°à¤­à¤¾à¤—) "
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "विषय-सूची की फाइल न बनाà¤à¤‚ "
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "पà¥à¤°à¤­à¤¾à¤—/पैकेज पैकेजों का शीरà¥à¤·à¤• न बनाà¤à¤‚ (उदाहरणारà¥à¤¥, जब डॉकसà¥à¤Ÿà¥à¤°à¤¿à¤‚गà¥à¤¸ में यह पहले से हों) "
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr " मà¥à¤–à¥à¤¯ पà¥à¤°à¤­à¤¾à¤— के आलेख को उपपà¥à¤°à¤­à¤¾à¤— के आलेख से पहले रखें"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "पà¥à¤°à¤­à¤¾à¤— पथ की वà¥à¤¯à¤¾à¤–à¥à¤¯à¤¾ 'पी.ई.पी.-0420 निहित नामराशि विवरण' के आधार पर करें "
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "फाइल पà¥à¤°à¤¤à¥à¤¯à¤¯ (मानक: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "सà¥à¤«à¤¿à¤‚कà¥à¤¸-तà¥à¤µà¤°à¤¿à¤¤-आरमà¥à¤­ के साथ पूरà¥à¤£ परियोजना उतà¥à¤ªà¤¨à¥à¤¨ करें "
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "मोडà¥à¤¯à¥‚ल_पाथ #module_path# को सिस.पाथ #sys.path# में जोड़ें, जब --full दिया जाता है तब इसका पà¥à¤°à¤¯à¥‹à¤— होता है "
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "परियोजना का नाम (मानक: मूल पà¥à¤°à¤­à¤¾à¤— का नाम) "
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "परियोजना लेखक(गण), जब --full दिया जाता है तब इसका पà¥à¤°à¤¯à¥‹à¤— होता है "
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "परियोजना संसà¥à¤•à¤°à¤£, जब --full दिया जाता है तब इसका पà¥à¤°à¤¯à¥‹à¤— होता है "
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "परियोजना आवृतà¥à¤¤à¤¿, जब --full दिया जाता है तब इसका पà¥à¤°à¤¯à¥‹à¤— होता है "
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "आयाम विकलà¥à¤ª "
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s à¤à¤• निरà¥à¤¦à¥‡à¤¶à¤¿à¤•à¤¾ नहीं है. "
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "अमानà¥à¤¯ रेगà¤à¤•à¥à¤¸ #regex# %r, %s में "
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "सà¥à¤°à¥‹à¤¤à¥‹à¤‚ की वà¥à¤¯à¤¾à¤ªà¤•à¤¤à¤¾ की जांच पूरी, परिणाम %(outdir)spython.txt में देखें. "
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "अमानà¥à¤¯ रेगà¤à¤•à¥à¤¸ #regex# %r, coverage_c_regexes में "
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "पà¥à¤°à¤­à¤¾à¤— %s का आयत नहीं किया जा सका: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2598,24 +2652,24 @@ msgstr "'%s' à¤à¤• मानà¥à¤¯ पाईवरà¥à¤¶à¤¨ #pyversion# विà
msgid "invalid TestCode type"
msgstr "अमानà¥à¤¯ टेसà¥à¤Ÿà¤•à¥‹à¤¡ का पà¥à¤°à¤•à¤¾à¤° "
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "सà¥à¤°à¥‹à¤¤à¥‹à¤‚ में डॉकटेसà¥à¤Ÿà¥à¤¸ की जांच पूरी, परिणाम %(outdir)s/output.txt में देखें. "
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "%s भाग में %s पर कोई निरà¥à¤¦à¥‡à¤¶ / परिणाम नहीं: %s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "अमानà¥à¤¯ डॉकटेसà¥à¤Ÿ निरà¥à¤¦à¥‡à¤¶ की उपेकà¥à¤·à¤¾ की जा रही है: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "गà¥à¤°à¤¾à¤«à¤µà¤¿à¥› निरà¥à¤¦à¥‡à¤¶ में दोनों मापदंड, विषय-वसà¥à¤¤à¥ और फाइल का नाम, नहीं हो सकते"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "बाहरी गà¥à¤°à¤¾à¤«à¤µà¤¿à¥› फाइल %r नहीं मिली अथवा पढने में असफलता मिली"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "विषय-वसà¥à¤¤à¥ के बिना गà¥à¤°à¤¾à¤«à¤µà¤¿à¥› निरà¥à¤¦à¥‡à¤¶ की उपेकà¥à¤·à¤¾ की जा रही है. "
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "डॉट निरà¥à¤¦à¥‡à¤¶ %r नहीं चलाया जा सकता (गà¥à¤°à¤¾à¤«à¤µà¤¿à¥› परिणाम के लिठआवशà¥à¤¯à¤•), गà¥à¤°à¤¾à¤«à¤µà¤¿à¥›_डॉट मान की जांच करें"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr "डॉट तà¥à¤°à¥à¤Ÿà¤¿ के साथ बहार आ गया:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr "डॉट ने किसी परिणाम फाइल का नहीं बनाया:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "गà¥à¤°à¤¾à¤«à¤µà¤¿à¥›_आउटपà¥à¤Ÿ_फॉरà¥à¤®à¥‡à¤Ÿ का 'पी.à¤à¤¨.जी', 'à¤à¤¸.वी.जी.', होना आवशà¥à¤¯à¤• है, पर यह %r है"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "डॉट निरà¥à¤¦à¥‡à¤¶ %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graph: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graph]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr "परिवरà¥à¤¤à¤• तà¥à¤°à¥à¤Ÿà¤¿ के साथ बहार आ गया:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "लाटेकà¥à¤¸ आदेश %r नहीं चलाया जा सकता (गणित दिखाने के लिठआवशà¥à¤¯à¤•). आई.à¤à¤®à¥.जी.मैथ_लाटेकà¥à¤¸ मान की जाà¤à¤š करें"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s आदेश %r नहीं चलाया जा सकता (गणित दिखाने के लिठआवशà¥à¤¯à¤•). imgmath_%s मान की जाà¤à¤š करें"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "लाटेकà¥à¤¸ दिखाà¤à¤ %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "पंकà¥à¤¤à¤¿à¤¬à¤¦à¥à¤§ लाटेकà¥à¤¸ %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "इनà¥à¤Ÿà¤°à¤¸à¥à¤«à¤¿à¤‚कà¥à¤¸ सामान सà¥à¤¥à¤¾à¤¨à¤¾à¤‚तरित हो चà¥à¤•à¤¾ है: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "इनà¥à¤Ÿà¤°à¤¸à¥à¤«à¤¿à¤‚कà¥à¤¸ सामान को %s से चà¥à¤¾à¤¯à¤¾ जा रहा है ..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "कà¥à¤› चीजों के साथ कà¥à¤› समसà¥à¤¯à¤¾ है, लेकिन काम के दूसरे विकलà¥à¤ª उपलबà¥à¤§ हैं: "
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "कà¥à¤› चीजों पहà¥à¤à¤šà¤¨à¥‡ में असफलता मिली और यह समसà¥à¤¯à¤¾à¤à¤ मिलीं: "
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(%s v%s में)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(%s में)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "इनà¥à¤Ÿà¤°à¤¸à¥à¤«à¤¿à¤‚कà¥à¤¸ निरà¥à¤§à¤¾à¤°à¤• %r अकà¥à¤·à¤°à¤®à¤¾à¤²à¤¾ नहीं है. उपेकà¥à¤·à¤¿à¤¤"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[सà¥à¤°à¥‹à¤¤]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "अपूरà¥à¤£ "
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "अपूरà¥à¤£ पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ मिली: %s "
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<मूल पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<मूल पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿>> %s, पंकà¥à¤¤à¤¿ %d में उपसà¥à¤¥à¤¿à¤¤ है.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "मौलिक पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "पà¥à¤°à¤­à¤¾à¤— निरà¥à¤¦à¥‡à¤¶ विशिषà¥à¤Ÿ रूप से दरà¥à¤¶à¤¾à¤¯à¤¾ जा रहा है..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "पà¥à¤°à¤­à¤¾à¤— निरà¥à¤¦à¥‡à¤¶"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s का सà¥à¤°à¥‹à¤¤ निरà¥à¤¦à¥‡à¤¶ </h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "सिंहावलोकन: पà¥à¤°à¤­à¤¾à¤— निरà¥à¤¦à¥‡à¤¶"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>सभी पà¥à¤°à¤­à¤¾à¤— जिनके लिठनिरà¥à¤¦à¥‡à¤¶ उपलबà¥à¤§ है</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "सà¥à¤µà¤¤à¤ƒ %s (%r) के लिठअमानà¥à¤¯ हसà¥à¤¤à¤¾à¤•à¥à¤·à¤°"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "%s के पदों का पà¥à¤°à¤¾à¤°à¥‚प बनाने में वà¥à¤¯à¤µà¤§à¤¾à¤¨: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr "पता नहीं है कि कौन सा पà¥à¤°à¤­à¤¾à¤— सà¥à¤µà¤¤à¤ƒà¤ªà¥à¤°à¤²à¥‡à¤–न %r के लिठआयात करना है (लेखपतà¥à¤° में \"पà¥à¤°à¤­à¤¾à¤—\" या \"वरà¥à¤¤à¤®à¤¾à¤¨-पà¥à¤°à¤­à¤¾à¤—\" निरà¥à¤¦à¥‡à¤¶ रख कर देखें; अथवा सà¥à¤ªà¤·à¥à¤Ÿ पà¥à¤°à¤­à¤¾à¤— नाम देकर देखें)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "सà¥à¤µà¤¤à¤ƒ पà¥à¤°à¤­à¤¾à¤— नाम में \"::\" विवेकहीन है"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "सà¥à¤µà¤¤à¤ƒ-पà¥à¤°à¤­à¤¾à¤— %s के लिठहसà¥à¤¤à¤¾à¤•à¥à¤·à¤° पद अथवा पà¥à¤°à¤¤à¥à¤¯à¥à¤¤à¥à¤¤à¤°à¤¿à¤¤ टिपà¥à¤ªà¤£à¥€ पà¥à¤°à¤¦à¤¾à¤¨ की गई"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ अंतिम अकà¥à¤·à¤°à¤®à¤¾à¤²à¤¾ होनी चाहिà¤, न कि %r (%s पà¥à¤°à¤­à¤¾à¤— में) -- __all__ की उपेकà¥à¤·à¤¾ की जाà¤à¤—ी"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "आधार: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "%s गà¥à¤£ %s वसà¥à¤¤à¥ में अनà¥à¤ªà¤¸à¥à¤¥à¤¿à¤¤"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,26 +3055,26 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "पद-विचà¥à¤›à¥‡à¤¦à¤¨ में असफलता: %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "विषय-वसà¥à¤¤à¥ के आयात में असफलता: %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "ऑटोसमरी आतंरिक रूप से आर.à¤à¤¸.टी. फाइलें बनाता है. आपके सोरà¥à¤¸_सफिकà¥à¤¸ में आर.à¤à¤¸.टी. समà¥à¤®à¤¿à¤²à¤¿à¤¤ नहीं है. छोड़ा गया."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "मà¥à¤–à¥à¤¯ शबà¥à¤¦à¥‹à¤‚ के चर-पद"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "उदाहरण"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "कà¥à¤› उदाहरण"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "टिपà¥à¤ªà¤£à¤¿à¤¯à¤¾à¤"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "अनà¥à¤¯ मापदणà¥à¤¡"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "सनà¥à¤¦à¤°à¥à¤­"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "चेतावनी देता है"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "मिलता है"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "सावधानी"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "चेतावनी"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "खतरा"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "गलती"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "संकेत"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "महतà¥à¤¤à¥à¤µà¤ªà¥‚रà¥à¤£"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "टिपà¥à¤ªà¤£à¥€ "
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "यह भी देखिà¤"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "सलाह"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "चेतावनी"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr "विषय-सूची"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "खोज"
@@ -3345,34 +3404,22 @@ msgstr "अगला पà¥à¤°à¤•à¤°à¤£"
msgid "next chapter"
msgstr "अगला अधà¥à¤¯à¤¾à¤¯"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "खोज कारà¥à¤¯ के लिठजावा सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ का होना आवशà¥à¤¯à¤• है. कृपया जावा सà¥à¤•à¥à¤°à¤¿à¤ªà¥à¤Ÿ को शà¥à¤°à¥‚ करें."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "खोज"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "खोज परीणाम "
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "आपके खोज परिणामों में कोई पà¥à¤°à¤²à¥‡à¤– नहीं मिला. कृपया सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ करें कि सभी शबà¥à¤¦à¥‹à¤‚ की वरà¥à¤¤à¤¨à¥€ शà¥à¤¦à¥à¤§ है और आपने यथेषà¥à¤Ÿ शà¥à¤°à¥‡à¤£à¤¿à¤¯à¤¾à¤‚ चà¥à¤¨à¥€ हैं."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "तà¥à¤µà¤°à¤¿à¤¤ खोज"
@@ -3409,20 +3456,30 @@ msgstr "सी à¤.पी.आई. परिवरà¥à¤¤à¤¨"
msgid "Other changes"
msgstr "अनà¥à¤¯ परिवरà¥à¤¤à¤¨"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "खोज परीणाम "
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "आपके खोज परिणामों में कोई पà¥à¤°à¤²à¥‡à¤– नहीं मिला. कृपया सà¥à¤¨à¤¿à¤¶à¥à¤šà¤¿à¤¤ करें कि सभी शबà¥à¤¦à¥‹à¤‚ की वरà¥à¤¤à¤¨à¥€ शà¥à¤¦à¥à¤§ है और आपने यथेषà¥à¤Ÿ शà¥à¤°à¥‡à¤£à¤¿à¤¯à¤¾à¤‚ चà¥à¤¨à¥€ हैं."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "खोज जारी"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "खोज की तैयारी"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", में "
@@ -3443,30 +3500,30 @@ msgstr "किनारे का सà¥à¤¥à¤¾à¤¨ बà¥à¤¾à¤à¤‚"
msgid "Contents"
msgstr "विषय सामिगà¥à¤°à¥€"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "4 पंकà¥à¤¤à¤¿à¤¬à¤¦à¥à¤§ सूचियाठमिलीं. यह आपके दà¥à¤µà¤¾à¤°à¤¾ उपयोग किठगठआयाम की तà¥à¤°à¥à¤Ÿà¤¿ हो सकती है: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "पाद-टिपà¥à¤ªà¤£à¥€ [%s] का कोई सनà¥à¤¦à¤°à¥à¤­ नहीं है."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "पाद-टिपà¥à¤ªà¤£à¥€ [#] सनà¥à¤¦à¤°à¥à¤­ कहीं नहीं है"
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr "अनà¥à¤µà¤¾à¤¦à¤¿à¤¤ संदेश में असंगत पà¥à¤°à¤¸à¤‚ग. मूल: {0}, अनà¥à¤µà¤¾à¤¦à¤¿à¤¤: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "अनà¥à¤µà¤¾à¤¦à¤¿à¤¤ संदेश में असंगत उदà¥à¤§à¤°à¤£ के पà¥à¤°à¤¸à¤‚ग. मूल: {0}, अनà¥à¤µà¤¾à¤¦à¤¿à¤¤: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "दूरसà¥à¤¥ चितà¥à¤° नहीं लाया जा सका: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "दूरसà¥à¤¥ चितà¥à¤° नहीं लाया जा सका: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "अजà¥à¤žà¤¾à¤¤ चितà¥à¤° पà¥à¤°à¤¾à¤°à¥‚प: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "असाधनीय सà¥à¤°à¥‹à¤¤ अकà¥à¤·à¤°, \"?\" दà¥à¤µà¤¾à¤°à¤¾ बदले जा रहे हैं: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "छोड़ा "
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "असफल"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "अजà¥à¤žà¤¾à¤¤ बिंदॠपà¥à¤°à¤•à¤¾à¤°: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "अशà¥à¤¦à¥à¤§à¤¿ पाठन: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "अशà¥à¤¦à¥à¤§à¤¿ लेखन: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "अमानà¥à¤¯ तिथि पà¥à¤°à¤¾à¤°à¥‚प. यदि आप सीधे परिणाम में दरà¥à¤¶à¤¾à¤¨à¤¾ चाहते हैं तो अकà¥à¤·à¤°à¤®à¤¾à¤²à¤¾ को à¤à¤•à¤¾à¤•à¥€ उदà¥à¤§à¤°à¤£ चिनà¥à¤¹ दà¥à¤µà¤¾à¤°à¤¾ चिनà¥à¤¹à¤¿à¤¤ करें: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "विषय-सूची-संरचना में अविदà¥à¤¯à¤®à¤¾à¤¨ फाइल %r का सनà¥à¤¦à¤°à¥à¤­ है"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "केवल निरà¥à¤¦à¥‡à¤¶à¤• भाव का मूलà¥à¤¯à¤¾à¤‚कन करते समय अपवाद: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "मानक भूमिका '%s' नहीं मिली"
@@ -3617,27 +3674,27 @@ msgstr "%s बिंदॠके लिठकोई पहचान-चिनà
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "चितà¥à¤° का आकार नहीं मिल सका. :scale: विकलà¥à¤ª की उपेकà¥à¤·à¤¾ की जा रही है."
@@ -3654,13 +3711,13 @@ msgstr "अतà¥à¤¯à¤¾à¤§à¤¿à¤• अधिकतम गहराई # :maxdepth:
msgid "document title is not a single Text node"
msgstr "लेखपतà¥à¤° का शीरà¥à¤·à¤• à¤à¤•à¤² पाठ बिंदॠनहीं है"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "पाया गया शीरà¥à¤· बिंदॠकिसी भाग, पà¥à¤°à¤¸à¤‚ग, तालिका, विषय-पà¥à¤°à¤¬à¥‹à¤§ अथवा पारà¥à¤¶à¥à¤µ-सà¥à¤¥à¤¾à¤¨ में नहीं है"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "पाद टिपà¥à¤ªà¤£à¤¿à¤¯à¤¾à¤‚"
@@ -3679,20 +3736,20 @@ msgstr "परिमाण मातà¥à¤°à¤• %s अमानà¥à¤¯ है. उà
msgid "unknown index entry type %s found"
msgstr "अनà¥à¤•à¥à¤°à¤®à¤£à¤¿à¤•à¤¾ की पà¥à¤°à¤µà¤¿à¤·à¥à¤Ÿà¤¿ का पà¥à¤°à¤•à¤¾à¤° %s मिला"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[चितà¥à¤°: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[चितà¥à¤°]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "शीरà¥à¤·à¤• रेखाचितà¥à¤° के भीतर नहीं है"
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "अकारà¥à¤¯à¤¾à¤¨à¥à¤µà¤¿à¤¤ बिंदॠपà¥à¤°à¤•à¤¾à¤°: %r"
diff --git a/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo b/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo
index f1e1853..ff00478 100644
--- a/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po b/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po
index b1d83ed..41ea3c0 100644
--- a/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hi_IN/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Hindi (India) (http://app.transifex.com/sphinx-doc/sphinx-1/language/hi_IN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: hi_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/hr/LC_MESSAGES/sphinx.mo b/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
index 40dbdc2..925a52e 100644
--- a/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/hr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/hr/LC_MESSAGES/sphinx.po b/sphinx/locale/hr/LC_MESSAGES/sphinx.po
index e704ce1..b389a3c 100644
--- a/sphinx/locale/hr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hr/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Mario Šarić, 2015-2020\n"
"Language-Team: Croatian (http://app.transifex.com/sphinx-doc/sphinx-1/language/hr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: hr\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
@@ -38,104 +38,104 @@ msgstr "Izvorni i odredišni direktorij ne smiju biti jednaki"
msgid "Running Sphinx v%s"
msgstr "Izrada pomoću Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Ovaj projekt se ne može izgraditi s instaliranom verzijom, potrebno je instalirati Sphinx v%s ili višu verziju."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "izrada izlazne mape"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' koji je postavljen u conf.py nije moguće pozvati. Molimo izmijenite definiciju 'setup' funkcije kako bi ju mogli izvršiti iz Pythona. Ovo je potrebno kako bi conf.py imao karakter Sphinx proširenja. "
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "uÄitavanje prijevoda [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "napravljeno"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "neuspješno: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Nije odabran format, koristi se zadani: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "uspješno"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "završeno uz probleme"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "build %s, %s upozorenje."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "build %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr "%s proÅ¡irenje nema deklaraciju paralelnog Äitanja, uz pretpostavku da nije - zamolite autora za provjeru i postavljanje deklaracije"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr "%s proÅ¡irenje nema deklaraciju paralelnog Äitanja, uz pretpostavku da nije - zamolite autora za provjeru i postavljanje deklaracije"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "u konfiguracijskom direktoriju ne postoji datoteka conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "ne može se nadjaÄati osnovna konf. postavka %r, zanemarena je (koristite %r za postavljanje pojedinaÄnih elemenata)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "nepravilan broj %r za konf. vrijednost %r, zanemaruje se"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "ne može se nadjaÄati konf. vrijednost %r zbog nepodržanog tipa, zanemareno"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "nepoznata konfiguracijska vrijednost %r, zanemaruje se"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Ne postoji konfiguracijska vrijednost: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Konfiguracijska vrijednost %r već postoji"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Postoji sintaksna greška u konfiguracijskoj datoteci: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,291 +232,328 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Poglavlje %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Slika %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tablica %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Ispis %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r nije pronađen, zanemareno je."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Događaj %r već postoji"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nepoznato ime događaja: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Ovaj projekt treba proširenje %s najmanje u verziji %si stoga se ne može izraditi s postojećom verzijom (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Klasa %s nema \"name\" svojstvo"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Builder %r već postoji (u modulu %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Builder imena %s nije registriran ili dostupan pomoću poziva"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Builder %s nije registriran"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domena %s je već registrirana"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domena %s nije još registrirana"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser za %r je već registriran"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "proširenje %r se već nalazi u Sphinxu od verzije %s; ovo proširenje se zanemaruje."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Izvorna iznimka:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Proširenje %s ne može biti uvezena"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "proširenje %r nema funkciju setup(); radi li se o ispravnom Sphinx modulu proširenja?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "%s proširenje traži Sphinx verzije v%s; stoga projekt ne može biti izgrađen s ovom verzijom."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "proÅ¡irenje %r vratio je nepodržan objekt iz setup() funkcije; rezultat treba biti None ili rijeÄnik metapodataka"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "tema %r nema postavku \"theme\""
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "postavka %s.%s ne pojavljuje se u pretraženim konfiguracijama tema"
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "tema %r nema postavku \"inherit\""
+msgid "unsupported theme option %r given"
+msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "tema %r nije pronađena, nasljeđuje ju %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "datoteka %r iz teme nije ispravna (zip) arhiva ili ne sadrži temu"
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
-msgstr "postavka %s.%s ne pojavljuje se u pretraženim konfiguracijama tema"
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
-msgstr "datoteka %r iz teme nije ispravna (zip) arhiva ili ne sadrži temu"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "nema teme %r (nedostaje theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Ugrađeni dijelovi"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Nivo modula"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (u "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Opceniti abecedni indeks"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "abecedni indeks"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "naprijed"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "nazad"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentacija"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Abecedni popis"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Distribucija"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr "Ne može se koristiti \"lineno-match\" sa nespojivom grupom \"lines\""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Specifikacija retka %r: nema redaka preuzetih iz include datoteke %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor sekcije: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor modula: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor koda:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,82 +1929,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametri"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Vraća"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Vraća tip"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "Älan"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "varijabla"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcija"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tip"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Novo u verziji %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1967,346 +1944,423 @@ msgstr "Promijenjeno u verziji %s"
msgid "Deprecated since version %s"
msgstr "Zastarijelo od verzije %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parametri predloška"
-
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Baca (iznimke)"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "razred"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "koncept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (ugrađene funkcije)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metoda)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (razred)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globalna varijabla ili konstanta)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atribut)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumenti"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Baca (iznimke)"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Vraća"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Vraća tip"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcija"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metoda"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "razred"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "podaci"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "dvostruka oznaka jednakosti %s, drugo pojavljivanje u %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Varijable"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directive)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Podiže"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "Direktive"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "uloga"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametri"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "Älan"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "varijabla"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tip"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parametri predloška"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "koncept"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (u modulu %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (u modulu %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (ugrađene variable)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (ugrađen razred)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (razred u %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s metoda klase)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statiÄna metoda)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python indeks modula"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "Moduli"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Zastarjelo"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "izuzetak"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "metoda klase"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statiÄna metoda"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (zastarjelo)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directive)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (role)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "Direktive"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "uloga"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Varijable"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Podiže"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "varijabla okruženja; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "termin rjeÄnika"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "token gramatike"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "referentna oznaka"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "varijabla okruženja"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programske mogućnosti"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokument"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Popis modula"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Tražilica"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr "Simboli"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr "'%s' nije valjana pyversion opcija"
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz direktiva ne može imati i sadržaj i ime datoteke za argumente"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Vanjska Graphviz datoteka %r ne postoji ili se ne može Äitati"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ignoriranje \"graphviz\" direktive bez sadržaja."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot naredba %r ne može se pokrenuti (potrebna za graphviz izlaz), provjerite postavku graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format mora biti 'png' ili 'svg', ali je %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graph: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graph]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(u %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[source]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> se nalazi u %s, redak %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "izvorna stavka"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Kod modula"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Izvorni kod za %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Pregled: kod modula"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Svi moduli za koje je dostupan kod</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Osnovice: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumenti"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Primjeri"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Pozor"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Pažnja"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Opasnost"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Greška"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Savjet"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Važno"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Napomena"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Više informacija"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Savjet"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Upozorenje"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Traži"
@@ -3342,34 +3401,22 @@ msgstr "Sljedeća tema"
msgid "next chapter"
msgstr "sljedeće poglavlje"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Molimo omogućite JavaScript\n za djelovanje tražilice."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "traži"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Rezultati pretrage"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Zadanim uvjetima nije pronaÄ‘en dokument. Molim provjerite toÄnost upisanih rijeÄi i odabir oznaÄenih kategija."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Brzo pretraživanje"
@@ -3406,20 +3453,30 @@ msgstr "C API promjene"
msgid "Other changes"
msgstr "Ostale promjene"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Rezultati pretrage"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Zadanim uvjetima nije pronaÄ‘en dokument. Molim provjerite toÄnost upisanih rijeÄi i odabir oznaÄenih kategija."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Pretraživanje"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Priprema pretrage..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", u "
@@ -3440,30 +3497,30 @@ msgstr "Pokaži pomoćnu traku"
msgid "Contents"
msgstr "Sadržaj"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Fusnote"
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[slika: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[slika]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/hu/LC_MESSAGES/sphinx.mo b/sphinx/locale/hu/LC_MESSAGES/sphinx.mo
index da1462a..df44c62 100644
--- a/sphinx/locale/hu/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/hu/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/hu/LC_MESSAGES/sphinx.po b/sphinx/locale/hu/LC_MESSAGES/sphinx.po
index 7138d32..931f78a 100644
--- a/sphinx/locale/hu/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/hu/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Balázs Úr, 2020\n"
"Language-Team: Hungarian (http://app.transifex.com/sphinx-doc/sphinx-1/language/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -43,104 +43,104 @@ msgstr "A forráskönyvtár és célkönyvtár nem lehet azonos"
msgid "Running Sphinx v%s"
msgstr "Sphinx %s verzió futtatása"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Ez a projekt legalább a Sphinx %s verzióját igényli, és emiatt nem állítható össze ezzel a verzióval."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "kimeneti könyvtár elkészítése"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "a(z) %s kiterjesztés beállításakor:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "A „setupâ€, ahogy jelenleg a conf.py fájlban meg van határozva, nem meghívható Python függvény. Módosítsa a meghatározását, hogy meghívható függvénnyé tegye. Ez ahhoz szükséges, hogy a conf.py Sphinx kiterjesztésként viselkedjen."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "fordítások betöltése [%s]…"
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "kész"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "nem érhető el beépített üzenetekhez"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "pickle-t környezet betöltése"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "sikertelen: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Nincs összeállító kiválasztva, az alapértelmezett használata: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "sikerült"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "problémákkal befejeződött"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "%s összeállítás, %s figyelmeztetés (a figyelmeztetések hibákként való kezelésével)"
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "%s összeállítás, %s figyelmeztetés (a figyelmeztetések hibákként való kezelésével)"
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "%s összeállítás, %s figyelmeztetés."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "%s összeállítás, %s figyelmeztetés."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "%s összeállítás."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "a(z) %r csomópontosztály már regisztrálva van, a látogatói felül lesznek bírálva"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "a(z) %r direktíva már regisztrálva van, felül lesz bírálva"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -148,12 +148,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -161,70 +161,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "a beállítási könyvtár nem tartalmaz conf.py fájlt (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -232,290 +237,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "%s. bekezdés"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "%s. ábra"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "%s. táblázat"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "%s. felsorlás"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Fejlesztési Javaslatok; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -532,8 +574,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -582,7 +624,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -591,50 +633,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -643,36 +685,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -680,470 +722,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Beépített"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modul szint"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " ("
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ãltalános tárgymutató"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "nyitóoldal"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "következő"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "előző"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s dokumentáció"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Tárgymutató"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Kiadás"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1158,15 +1200,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1225,8 +1267,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1258,7 +1300,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1266,249 +1310,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1517,15 +1566,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1535,21 +1584,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1557,91 +1606,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1651,135 +1700,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "A megadott útvonal nem egy mappa vagy a sphinx állományok már léteznek."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1830,47 +1879,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Fejezet szerző: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Modul szerző: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Kód szerző: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Szerző: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1885,82 +1934,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Paraméterek"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Visszatérési érték"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Visszatérés típusa"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "tag"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "változó"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "függvény"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makró"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enumeráció"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerátor"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "típus"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Új a(z) %s verzióban"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1972,346 +1949,423 @@ msgstr "A %s verzióban változott"
msgid "Deprecated since version %s"
msgstr "Elavult a(z) %s verzió óta"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:82
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Sablonparaméterek"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Dob"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "osztály"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (beépített függvény)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metódus)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (osztály)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globális változó vagy konstans)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attribútum)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumentum"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Dob"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Visszatérési érték"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Visszatérés típusa"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "függvény"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metódus"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "osztály"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "adat"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribútum"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Változók"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktíva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Kivétel"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (szerepkör)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktíva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "szerepkör"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Paraméterek"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "tag"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "változó"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makró"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enumeráció"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerátor"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "típus"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Sablonparaméterek"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s modulban)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s modulban)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (beépített változó)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (beépített osztály)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (osztály %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s osztály metódus)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statikus metódus)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python Modul Mutató"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modulok"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Elavult"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "kivétel"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "osztály szintű metódus"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statikus metódus"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (elavult)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktíva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (szerepkör)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktíva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "szerepkör"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Változók"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Kivétel"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "környezeti változó; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "szójegyzék"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "nyelvtani jel"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "referencia cimke"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "környezeti változó"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "program opció"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modulok"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Keresés"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2328,35 +2382,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "forrás mappa megváltozott"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2380,39 +2434,39 @@ msgstr ""
msgid "Symbols"
msgstr "Szimbólumok"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2422,7 +2476,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2434,149 +2488,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s nem mappa"
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2600,24 +2654,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2628,32 +2682,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2663,7 +2717,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2673,27 +2727,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graph: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graph]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2701,7 +2755,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2711,173 +2765,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(%s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[source]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Tennivaló"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "eredeti bejegyzés"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modul forráskód"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s forráskódja</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Ãttekintés: modul forráskód"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Az összes modul, melynek forrása elérhető</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2885,112 +2944,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2998,25 +3057,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3090,99 +3149,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Figyelem"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Figyelem"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Veszély"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Hiba"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Tipp"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Fontos"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Megjegyzés"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Lásd még"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Javaslat"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Figyelem"
@@ -3214,7 +3273,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Keresés"
@@ -3347,34 +3406,22 @@ msgstr "Következő témakör"
msgid "next chapter"
msgstr "következő fejezet"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Kérem engedélyezze a JavaScriptet a kereső funkció\n használatához."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "keresés"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Keresési Eredmények"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "A keresése nem hozott eredményt. Ellenőrizze, a megadott kulcsszavakat és azt, hogy megfelelő számú kategória van-e kiválasztva."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Gyorskeresés"
@@ -3411,20 +3458,30 @@ msgstr "C API változások"
msgid "Other changes"
msgstr "Egyéb változások"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Keresési Eredmények"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "A keresése nem hozott eredményt. Ellenőrizze, a megadott kulcsszavakat és azt, hogy megfelelő számú kategória van-e kiválasztva."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Keresés folyamatban"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Felkészülés a keresésre..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", "
@@ -3445,30 +3502,30 @@ msgstr "Oldalsáv kinyitása"
msgid "Contents"
msgstr "Tartalom"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3480,13 +3537,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3513,90 +3570,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3619,27 +3676,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3656,13 +3713,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Lábjegyzetek"
@@ -3681,20 +3738,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[image: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[image]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/id/LC_MESSAGES/sphinx.mo b/sphinx/locale/id/LC_MESSAGES/sphinx.mo
index 3bf6ca8..f779db6 100644
--- a/sphinx/locale/id/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/id/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/id/LC_MESSAGES/sphinx.po b/sphinx/locale/id/LC_MESSAGES/sphinx.po
index 7a40b37..0b10c9d 100644
--- a/sphinx/locale/id/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/id/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: oon arfiandwi (OonID) <oon.arfiandwi@gmail.com>, 2023\n"
"Language-Team: Indonesian (http://app.transifex.com/sphinx-doc/sphinx-1/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -43,104 +43,104 @@ msgstr "Direktori sumber dan direktori tujuan tidak boleh sama"
msgid "Running Sphinx v%s"
msgstr "Menjalankan Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Proyek ini memerlukan sedikitnya Sphinx v%s dan maka itu tidak bisa dibangun dengan versi ini."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "membuat direktori keluaran"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "saat menyiapkan ekstensi %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' yang saat ini didefinisikan pada conf.py bukanlah sebuah Python callable. Silakan modifikasi definisinya untuk membuatnya menjadi fungsi callable. Hal ini diperlukan guna conf.py berjalan sebagai ekstensi Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "memuat terjemahan [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "selesai"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "tidak tersedia untuk built-in messages"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "memuat lingkungan yang diawetkan"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "gagal: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Tidak ada builder yang dipilih, menggunakan default: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "berhasil"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "selesai with masalah"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "bangun %s, %s peringatan (dengan peringatan dianggap sebagai kesalahan)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "build %s, %s peringatan."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "build %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "kelas simpul %r sudah terdaftar, pengunjungnya akan diganti"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "pengarahan %r sudah terdaftar, itu akan diganti"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "peran %r sudah terdaftar, itu akan diganti"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -148,12 +148,12 @@ msgid ""
"explicit"
msgstr "ekstensi %s tidak akan dinyatakan jika itu aman untuk pembacaan paralel, dengan anggapan itu tidak aman - silakan tanya pembuat ekstensi untuk memeriksa dan membuatnya eksplisit"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "ekstensi %s tidak aman untuk pembacaan paralel"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -161,70 +161,75 @@ msgid ""
"explicit"
msgstr " \nekstensi %s tidak akan dinyatakan jika itu aman untuk penulisan paralel, dengan anggapan itu tidak aman - silakan tanya pembuat ekstensi untuk memeriksa dan membuatnya eksplisit"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "ekstensi %s tidak aman untuk penulisan paralel"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "mengerjakan serial %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "direktori konfigurasi tidak berisi berkas conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "tidak dapat menulis ulang pengaturan direktori konfigurasi %r, mengabaikan (gunakan %r untuk mengatur elemen-elemen satuan)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "nomor %r yang salah untuk konfigurasi nilai %r, mengabaikan"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "tidak dapat menulis ulang pengaturan konfigurasi %r dengan tipe yang tidak didukung, mengabaikan"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "nilai konfigurasi %r yang tidak dikenal pada penulisan ulang, mengabaikan"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Tidak terdapat nilai konfigurasi demikian: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Nilai konfigurasi %r sudah ada"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Ada kesalahan sintaksis dalam file konfigurasi Anda: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Berkas konfigurasi (atau salah satu dari modul terimpor) disebut sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -232,291 +237,328 @@ msgid ""
"%s"
msgstr "Terdapat kesalahan programmable dalam berkas konfigurasi anda:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "Nilai konfigurasi `source_suffix 'mengharapkan sebuah string, daftar string, atau kamus. Tetapi `%r' diberikan."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Bab %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Gambar. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabel %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Daftar %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "Nilai konfigurasi `{name}` harus salah satu dari {candidates}, tapi `{current}` diberikan."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "Nilai konfigurasi `{name}' memiliki tipe `{current.__name__}'; diharapkan {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "Nilai konfigurasi `{name}` bertipe `{current.__name__}', default menjadi `{default.__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r tidak ditemukan, diabaikan."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Event %r sudah ada"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nama event tidak dikenal: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "Ekstensi %s diperlukan oleh pengaturan needs_extensions, tapi itu tidak dimuat."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Proyek ini memerlukan ekstensi %s sedikitnya pada versi %s dan maka itu tidak bisa dibangun dengan versi yang dimuat (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Nama Pygments lexer %r tidak diketahui"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Class Builder %s tidak punya atribut \"name\""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Builder %r sudah ada (di modul %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Nama Builder %s todal terdaftar atau tersedia melalui entry point"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Nama Builder %s tidak terdaftar"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domain %s telah terdaftar"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domain %s belum didaftarkan"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "Pengarahan %r sudah terdaftar di domain %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "Peran %r sudah terdaftar di domain %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "Indeks %r sudah terdaftar ke domain %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "object_type %r telah didaftarkan"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "crossref_type %r telah didaftarkan"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r telah didaftarkan"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser untuk %r telah didaftarkan"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Parser sumber untuk %s tidak terdaftar"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Penerjemah untuk %r sudah ada"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwargs untuk add_node() harus berupa (visit, depart) function tuple: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r telah terdaftar"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "ekstensi %r telah digabungkan dengan Sphinx sejak versi %s; ekstensi diabaikan."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Eksepsi orisinal:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Tidak dapat mengimpor ekstensi %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "ekstensi %r tidak memiliki fungsi setup(); apa itu benar-benar sebuah modul ekstensi Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Ekstensi %s yang digunakan proyek ini memerlukan sedikitnya Sphinx v%s; maka itu tidak bisa dibangun dengan versi ini."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "ekstensi %r mengembalikan objek yang tidak didukung dari fungsi setup() nya; seharusnya mengembalikan None atau dictionary metadata"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "nomor PEP %s tidak valid"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "nomor RFC tidak valid %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "tema %r tidak memiliki pengaturan \"tema\""
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "tema %r tidak memiliki pengaturan \"inherit\""
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "tema berjudul %r tidak ditemukan, inherited oleh %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "pengaturan %s.%s terjadi pada tak satupun konfigurasi tema yang dicari"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "opsi tema yang tidak didukung %r diberikan"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "berkas %r pada path tema merupakan berkas zip yang tidak valid atau tidak berisi tema"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "tema bernama %r tidak ditemukan (kehilangan theme.conf?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -532,8 +574,8 @@ msgstr "gambar yang sesuai untuk builder %s tidak ditemukan: %s"
msgid "building [mo]: "
msgstr "membangun [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "menulis keluaran... "
@@ -582,7 +624,7 @@ msgstr "%d berkas sumber diberikan di command line"
msgid "targets for %d source files that are out of date"
msgstr "target untuk %d berkas sumber yang telah usang"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "membangun [%s]: "
@@ -591,50 +633,50 @@ msgstr "membangun [%s]: "
msgid "looking for now-outdated files... "
msgstr "mencari berkas yang kini-usang... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d ditemukan"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "tidak ditemukan apapun"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "lingkungan pengawetan"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "memeriksa konsistensi"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "tidak ada target yang usang."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "memperbarui lingkungan:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s ditambahkan, %s diubah, %s dihapus"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "membaca sumber... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "docnames yang akan ditulis: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "menyiapkan dokumen"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -643,36 +685,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "entri ToC ganda ditemukan: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "menyalin gambar... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "tidak dapat membaca berkas gambar %r: menyalin gambar sebagai gantinya"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "tidak dapat menyalin berkas gambar %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "tidak dapat menulis berkas gambar %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow tidak ditemukan - menyalin berkas gambar"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -680,470 +722,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "mimetype yang tidak dikenal untuk %s, mengabaikan"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "menulis %s berkas..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Berkas tinjauan berada di %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "tidak ada pengubahan dalam versi %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "menulis berkas ringkasan..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Modul Internal"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Level Modul"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "menyalin berkas sumber..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "tidak dapat membaca %r untuk pembuatan changelog"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "Builder contoh tidak menghasilkan berkas apapun."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "Berkas ePub berada di %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "nilai conf \"epub_language\" (atau \"language\") tidak seharsunya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "nilai conf \"epub_uid\" harus berupa XML NAME untuk EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "nilai conf \"epub_title\" (atau \"html_title\") tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "nilai conf \"epub_author\" tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "nilai conf \"epub_contributor\" tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "nilai conf \"epub_description\" tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "nilai conf \"epub_publisher\" tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "nilai conf \"epub_copyright\" (atau \"copyright\") tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "nilai conf \"epub_identifier\" tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "bilai conf \"version\" tidak seharusnya kosong untuk EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "css_file yang salah: %r, mengabaikan"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Katalog pesan berada di %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "target untuk %d berkas templat"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "membaca templat... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "menulis katalog pesan... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Mencari kesalahan sembarang dalam keluaran di atas atau di %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "tautan rusak: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Halaman manual berada di %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "tidak ditemukan nilai konfigurasi \"man_pages\"; halaman manual tidak akan ditulis"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "penulisan"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" nilai konfigurasi mengacu pada dokumen tidak diketahui %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Halaman HTML berada di %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "merakit dokumen tunggal"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "menulis file tambahan"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Berkas Texinfo berada di %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nJalankan 'make' di direktori tersebut untuk menjalankannya melalui makeinfo\n(gunakan 'make info' di sini untuk melakukannya secara otomatis)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "tidak ditemukan nilai konfigurasi \"texinfo_documents\"; dokumen tidak akan ditulis"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "nilai konfigurasi \"texinfo_documents\" mereferensikan dokumen yang tidak dikenal %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "memroses %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "memecahkan referensi..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (dalam "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "menyalin berkas pendukung Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "kesalahan menulis berkas Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Berkas teks berada di %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "kesalahan menulis berkas %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Berkas XML berada di %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Berkas pseudo-XML berada di %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "berkas info build rusak: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Halaman HTML berada di %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Gagal membaca berkas info build: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Indeks Umum"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "berikut"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "sebelum"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "menghasilkan indeks"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "menulis halaman tambahan"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "menyalin berkas yang dapat diunduh... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "tidak dapat menyalin berkas yang dapat diunduh %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "menyalin file statis"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "tidak dapat menyalin berkas statik %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "menyalin berkas tambahan"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "tidak dapat menyalin berkas ekstra %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Gagal menulis berkas info build: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "indeks pencarian tidak dapat dimuat, tapi tidak semua dokumen akan dibangun: indeks akan jadi tidak lengkap."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "halaman %s sebanding dengan dua pola dalam html_sidebars: %r dan %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "kesalahan Unicode terjadi saat render halaman %s. Silakan pastikan semua nilai konfigurasi yang berisi konten non-ASCII adalah string Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Kesalahan terjadi saat render halaman %s.\nAlasan: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "menyisihkan persediaan obyek"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "js_file yang salah: %r, mengabaikan"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Banyak math_renderers teregistrasi. Namun tidak satu pun math_renderer yang dipilih."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "math_renderer %r yang tidak diketahui diberikan."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "entri html_extra_path %r tidak ada"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "entri html_static_path %r tidak ada"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "berkas logo %r tidak ada"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "berkas favicon %r tidak ada"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Dokumentasi %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Berkas LaTeX berada di %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nJalankan 'make' di direktori tersebut untuk menjalankannya melalui (pdf)latex\n(gunakan 'make latexpdf' di sini untuk melakukannya secara otomatis)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "tidak ditemukan nilai konfigurasi \"latex_documents\"; dokumen tidak akan ditulis"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "nilai konfigurasi \"latex_documents\" mereferensikan dokumen yang tidak dikenal %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indeks"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Rilis"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "tidak ada opsi Babel yang dikenal untuk bahasa %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "menyalin berkas pendukung TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "menyalin berkas pendukung TeX... "
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "menyalin berkas tambahan"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1158,15 +1200,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr "Gagal mendapatkan docname!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1225,8 +1267,8 @@ msgstr "Laporan bug dapat diisi pada tracker di <https://github.com/sphinx-doc/s
msgid "job number should be a positive number"
msgstr "job number seharusnya sebuah bilangan positif"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1258,257 +1300,264 @@ msgid "path to output directory"
msgstr "path ke direktori output"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "daftar berkas spesifik yang dibuat ulang. Diabaikan jika -a ditentukan"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "opsi umum"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "builder yang digunakan (default: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "tulis semua berkas (default: hanya tulis berkas yang baru dan diubah)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "jangan pakai saved environment, selalu baca semua berkas"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "path untuk the cached environment dan berkas doctree (default: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "build secara parallel dengan N processes jika memungkinkan (nilai spesial \"auto\" akan menetapkan N ke cpu-count)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "path tempat berkas konfigurasi (conf.py) berada (default: sama seperti SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "jalankan tanpa berkas sama sekali, hanya opsi -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "override sebuah aturan di berkas konfigurasi"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "masukkan sebuah nilai ke templat HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "define tag: masukkan blok \"only\" dengan TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "mode nit-picky, ingatkan tentang semua referensi yang hilang"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "opsi output konsol"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "tingkatkan verbosity (dapat diulang)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "tanpa output pada stdout, hanya peringatan pada stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "tanpa output sama sekali, peringatan sekalipun"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "siarkan output berwarna (default: auto-detect)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "jangan siarkan output berwarna (default: auto-detect)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "tulis peringatan (dan galat) pada berkas terpilih"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "ubah peringatan menjadi galat"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "dengan -W, lanjutkan saat mendapat peringatan"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "tampilkan traceback penuh pada eksepsi"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "jalankan Pdb pada eksepsi"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "tidak dapat menggabungkan opsi -a dan nama berkas"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "tidak dapat membuka berkas peringatan %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "argumen opsi -D harus dalam bentuk name=value"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "argumen opsi -A harus dalam bentuk name=value"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "masukkan docstrings secara otomatis dari modules"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "uji snippet kode secara otomatis pada blok doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "tautkan antara dokumentasi Sphinx dari berbagai proyek"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "tulis entri \"todo\" yang dapat ditampilan atau disembunyikan dalam build"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "periksa coverage dokumentasi"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "masukkan math, yang dirender sebagai gambar PNG atau SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "masukkan math, yang dirender di perambah sebagai gambar PNG atau SVG"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "inklusi bersyarat untuk isi berdasarkan nilai konfig"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "masukkan tautan ke sumber kode untuk objek Python yang terdokumentasi"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "buat berkas .nojekyll untuk menerbitkannya di halaman GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Mohon masukkan nama path yang sah."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Mohon masukan teks."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Mohon masukkan satu dari %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Mohon ketik salah satu dari 'y' atau 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Mohon masukkan satu suffiks berkas, contohnya '.rst' atau '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Selamat datang ke alat quickstart Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Silakan masukkan nilai untuk pengaturan berikut (cukup tekan Enter to\nmenerima nilai bawaan, jika diberikan dalam tanda kurung)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Masukkan jalur root untuk dokumentasi."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Root path dokumentasi"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Galat: berkas conf.py telah ditemukan dalam root path terpilih."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart tidak akan menulis ulang proyek Sphinx yang ada."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Silakan masukkan root path baru (atau tekan Enter untuk keluar)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Pisahkan direktori source dan build (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Nama prefiks untuk dir templat dan static"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "Nama proyek akan muncul di beberapa tempat dalam dokumentasi yang dibuat."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Nama proyek"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Nama(-nama) pembuat"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1517,15 +1566,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Versi proyek"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Rilis proyek"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1535,21 +1584,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Bahasa proyek"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Akhiran berkas sumber"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1557,91 +1606,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Nama dokumen master Anda (tanpa akhiran)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Kesalahan: file master %s telah ditemukan di jalur utama yang dipilih."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart tidak akan menimpa berkas yang sudah ada."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Silakan masukkan nama file baru, atau ganti nama file yang ada dan tekan Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Tunjukkan ekstensi Sphinx berikut mana yang harus diaktifkan:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Catatan: imgmath dan mathjax tidak dapat diaktifkan secara bersamaan. imgmath telah diubah tidak pilih."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Buat Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Buat berkas perintah Windows? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Membuat file %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "File %s sudah ada, lewati."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Selesai: Struktur direktori awal telah dibuat."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "di mana \"pembangun\" adalah salah satu pembangun yang didukung, mis. html, lateks, atau periksa tautan."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1651,135 +1700,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nHasilkan file yang diperlukan untuk proyek Sphinx. \n\nsphinx-quickstart adalah alat interaktif yang menanyakan beberapa pertanyaan tentang proyek Anda \ndan kemudian menghasilkan direktori dokumentasi lengkap dan contoh \nMakefile untuk digunakan dengan sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "mode diam"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "root proyek"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Opsi struktur"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "jika ditentukan, pisahkan direktori sumber dan pembangunan"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "pengganti dot di _templates dll."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Opsi dasar proyek"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "nama proyek"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "nama penulis"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "versi proyek"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "rilis proyek"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "bahasa dokumen"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "akhiran berkas sumber"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "nama dokumen utama"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "gunakan epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Opsi ekstensi"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "aktifkan ekstensi %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "aktifkan ekstensi berubah-ubah"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Pembuatan Makefile dan Batchfile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "buat makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "jangan membuat makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "buat batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "jangan membuat batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "gunakan mode-make untuk Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "jangan gunakan make-mode untuk Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Membuat templat proyek"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "direktori templat untuk berkas templat"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "mendefinisikan variabel templat"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"quiet\" ditentukan, tetapi tidak ada \"project\" atau \"author\" yang ditentukan."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Kesalahan: jalur yang ditentukan bukan direktori, atau file sphinx sudah ada."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart hanya menghasilkan direktori kosong. Silakan tentukan jalur utama baru."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Variabel templat tidak valid: %s"
@@ -1830,47 +1879,47 @@ msgstr "Tidak dapat menggunakan \"lineno-match\" dengan rangkaian \"baris\" yang
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Spesifikasi baris %r: tidak ada baris yang ditarik dari berkas %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree berisi referensi ke dokumen yang dikecualikan %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree berisi referensi ke dokumen yang tidak ada %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Penyusun bagian:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Penyusun modul: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Penulis kode:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Penyusun: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1885,82 +1934,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parameter"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "Nilai kembalian"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Kembali"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Return type"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "anggota"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabel"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "fungsi"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "struct"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "union"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipe"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Baru pada versi %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1972,346 +1949,423 @@ msgstr "Berubah pada versi %s"
msgid "Deprecated since version %s"
msgstr "Ditinggalkan sejak versi %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "kutipan rangkap %s, contoh lain dalam %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Kutipan [%s] tidak dirujuk."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parameter Templat"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Throws"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "class"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "konsep"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (fungsi built-in)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (method %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (class)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variabel global atau konstan)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atribut %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumen"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Throws"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Kembali"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Return type"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (module)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "fungsi"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "method"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "class"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "duplikasi label persamaan %s, misalnya di %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "Math_eqref_format tidak valid: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variabel"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktif)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Raises"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktif"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "opsi-direktif"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "role"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parameter"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Nilai kembalian"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "anggota"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabel"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "struct"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "union"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipe"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parameter Templat"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "konsep"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (di modul %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (di modul %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variabel built-in)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (class built-in)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (class di %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (method class %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (method static %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Indeks Modul Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modul"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Akan ditinggalkan"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "eksepsi"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "method class"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "method static"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "property"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "lebih dari satu target ditemukan untuk referensi silang %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (obsolet)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktif)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (role)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktif"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "opsi-direktif"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variabel"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Raises"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variabel environment; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Deskripsi opsi salah bentuk %r, seharusnya terlihat seperti \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" atau \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "opsi baris perintah"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "Daftar Istilah kata sulit harus didahului dengan baris kosong"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "Daftar istilah kata sulit tidak boleh dipisahkan oleh garis kosong"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "Daftar istilah kata sulit tampaknya salah format, periksa indentasi"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "daftar istilah"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "token grammar"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "label referensi"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variabel environment"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opsi program"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokumen"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Indeks Modul"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Pencarian Halaman"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "label rangkap %s, contoh lain dalam %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig dinonaktifkan. :numref: diabaikan."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "tautan tidak memiliki teks: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "numfig_format tidak valid: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "numfig_format tidak valid: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "label yang tidak ditentukan: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2328,35 +2382,35 @@ msgstr "konfigurasi berubah"
msgid "extensions changed"
msgstr "ekstensi berubah"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "membangun lingkungan bukan versi saat ini"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "direktori sumber telah berubah"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Lingkungan ini tidak kompatibel dengan pembangun yang dipilih, silakan pilih direktori doctree lain."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Gagal memindai dokumen dalam %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Domain %r tidak terdaftar"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "dokumen tidak termasuk dalam toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "totree referensikan sendiri ditemukan. Diabaikan"
@@ -2380,39 +2434,39 @@ msgstr "tipe entri indeks tidak dikenal %r"
msgid "Symbols"
msgstr "Simbol"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "referensi toctree melingkar terdeteksi, mengabaikan: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree berisi referensi ke dokumen %r yang tidak memiliki judul: tidak ada tautan yang akan dihasilkan"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "berkas gambar tidak dapat dibaca: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "berkas gambar %s tidak dapat dibaca: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "berkas unduhan tidak dapat dibaca: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s sudah diberi nomor bagian (penomoran bersarang toctree?)"
@@ -2422,7 +2476,7 @@ msgstr "%s sudah diberi nomor bagian (penomoran bersarang toctree?)"
msgid "Would create file %s."
msgstr "Akan membuat berkas %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2434,149 +2488,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nLihat secara rekursif dalam <MODULE_PATH> untuk modul dan paket Python dan buat \nsatu berkas reST dengan arahan automodule per paket di <OUTPUT_PATH>. \n\n<EXCLUDE_PATTERN> dapat berupa pola berkas dan/atau direktori yang akan \ndikecualikan dari pembuatan. \n\nCatatan: Secara bawaan skrip ini tidak akan menimpa berkas yang sudah dibuat."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "jalur ke modul ke dokumen"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "Berkas gaya-fnmatch dan/atau pola direktori untuk dikecualikan dari pembuatan"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "direktori untuk menempatkan semua keluaran"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "kedalaman maksimum submodul untuk ditampilkan di TOC (bawaan: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "menimpa file yang ada"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "ikuti tautan simbolik. Berdaya bila digabungkan dengan collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "operasikan skrip tanpa membuat file"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "letakkan dokumentasi untuk setiap modul di halamannya sendiri"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "termasuk modul \"_private\""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "nama file daftar isi (bawaan: modul)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "jangan membuat berkas daftar isi"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "jangan membuat judul untuk paket modul/paket (mis. ketika docstrings sudah berisi hal tersebut)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "letakkan dokumentasi modul sebelum dokumentasi submodul"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "menafsirkan jalur modul sesuai dengan spesifikasi namespaces implisit PEP-0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "akhiran berkas (bawaan: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "menghasilkan proyek penuh dengan sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "menambahkan module_path ke sys.path, digunakan ketika --full diberikan"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "nama proyek (bawaan: nama modul utama)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "penulis-(penulis) proyek, digunakan ketika --full diberikan"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "versi proyek, digunakan ketika --full diberikan"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "rilis proyek, digunakan ketika --full diberikan, bawaan ke --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "opsi ekstensi"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s bukan direktori."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "regex tidak valid %r dalam %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Pengujian cakupan di sumber selesai, lihat hasilnya dalam %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "%r regex tidak valid di coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "modul %s tidak dapat diimpor: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2600,24 +2654,24 @@ msgstr "'%s' bukan opsi pyversion yang valid"
msgid "invalid TestCode type"
msgstr "tipe TestCode tidak valid"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Pengujian dokumen di sumber selesai, lihat hasil dalam %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "tidak ada kode/keluaran dalam blok %s pada %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "mengabaikan kode dokumen yang tidak valid: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== durasi membaca paling lambat ======================="
@@ -2628,32 +2682,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Pengarahan Graphviz tidak dapat memiliki konten dan argumen nama berkas sekaligus"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Berkas Graphviz eksternal %r tidak ditemukan atau gagal dibaca"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Mengabaikan pengarahan \"graphviz\" tanpa konten."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "perintah dot %r tidak dapat dioperasikan (diperlukan untuk keluaran graphviz), periksa pengaturan graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2663,7 +2717,7 @@ msgid ""
"%r"
msgstr "dot keluar dengan kesalahan: \n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2673,27 +2727,27 @@ msgid ""
"%r"
msgstr "dot tidak menghasilkan berkas output: \n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format harus salah satu dari 'png', 'svg', tetapi %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "kode dot %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graph: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graph]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2701,7 +2755,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2711,173 +2765,178 @@ msgid ""
"%r"
msgstr "convert keluar dengan kesalahan: \n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "Perintah LaTeX %r tidak dapat dioperasikan (diperlukan untuk tampilan matematika), periksa pengaturan imgmath_latex"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s perintah %r tidak dapat dioperasikan (diperlukan untuk tampilan matematika), periksa pengaturan imgmath_%s"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "tampilkan latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "inline latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "pengimpanan intersphinx telah dipindahkan: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "memuat penyimpanan intersphinx dari %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "mengalami beberapa masalah dengan beberapa inventaris, tetapi mereka memiliki alternatif berfungsi:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "gagal mencapai salah satu inventaris dengan masalah berikut:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(di %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(dalam %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "pengenal intersphinx %r bukan string. Diabaikan"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[sumber]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "Entri TODO ditemukan: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> terletak di %s, baris %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "entri asli"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "menyoroti kode modul..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Kode modul"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Kode sumber untuk %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Tinjauan: kode modul"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Semua modul dimana kode tersedia</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "tanda tangan tidak valid untuk outo %s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "kesalahan saat memformat argumen untuk %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2885,112 +2944,112 @@ msgid ""
"explicit module name)"
msgstr "tidak tahu modul mana yang akan diimpor untuk autodocumenting %r (coba letakkan pengarahan \"module\" atau \"currentmodule\" dalam dokumen, atau berikan nama modul yang eksplisit)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" dalam nama automodule tidak masuk akal"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "argumen tanda tangan atau anotasi kembalian diberikan untuk automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ harus berupa daftar string, bukan %r (dalam modul %s) -- mengabaikan __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Basis: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "atribut hilang %s dalam objek %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2998,26 +3057,26 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "gagal mengurai nama %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "gagal mengimpor objek %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary menghasilkan file .rst secara internal. Tapi source_suffix Anda tidak mengandung .rst. Dilewati."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3090,99 +3149,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumen Kata Kunci"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Contoh"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Contoh-contoh"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Catatan"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Parameter lainnya"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Referensi"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Peringatkan"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Hasil"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Pehatian"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Hati-hati"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Bahaya"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Kesalahan"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Petunjuk"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Penting"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Catatan"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Lihat juga"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Peringatan"
@@ -3214,7 +3273,7 @@ msgid "Table of Contents"
msgstr "Daftar Isi"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Pencarian"
@@ -3347,34 +3406,22 @@ msgstr "Topik berikutnya"
msgid "next chapter"
msgstr "bab berikutnya"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Tolong aktifkan JavaScript untuk melakukan pencarian.\n "
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Mencari beberapa kata hanya menunjukkan kecocokan yang mengandung\n    semua kata."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "pencarian"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Hasil Pencarian"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Tidak ada dokumen yang cocok dengan pencarian anda. Pastikan semua kata ditulis dengan benar dan sudah memilih cukup kategori."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Pencarian cepat"
@@ -3411,20 +3458,30 @@ msgstr "Perubahan API C"
msgid "Other changes"
msgstr "Perubahan lain"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Hasil Pencarian"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Tidak ada dokumen yang cocok dengan pencarian anda. Pastikan semua kata ditulis dengan benar dan sudah memilih cukup kategori."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Pencarian"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Penyiapkan pencarian..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", di"
@@ -3445,30 +3502,30 @@ msgstr "Buka sidebar"
msgid "Contents"
msgstr "Konten"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "4 kolom berdasarkan indeks ditemukan. Ini mungkin bug ekstensi yang Anda gunakan: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Catatan kaki [%s] tidak dirujuk."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Catatan kaki [#] tidak dirujuk."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3480,13 +3537,13 @@ msgid ""
"{1}"
msgstr "referensi yang tidak konsisten dalam pesan yang diterjemahkan. asli: {0}, diterjemahkan: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "referensi kutipan tidak konsisten dalam pesan yang diterjemahkan. asli: {0}, diterjemahkan: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3513,90 +3570,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "Tidak dapat mengambil gambar jarak jauh: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "Tidak dapat mengambil gambar jarak jauh: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Format gambar tidak dikenal: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "karakter sumber undecodable, menggantinya dengan \"?\": %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "dilewati"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "gagal"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "tipe simpul tidak dikenal: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "kesalahan membaca: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "kesalahan menulis: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Format tanggal tidak valid. Kutip string dengan kutipan tunggal jika Anda ingin menampilkannya secara langsung: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctree berisi ref ke berkas yang tidak ada %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "pengecualian saat mengevaluasi hanya ekspresi pengarahan: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "peran bawaan %s tidak ditemukan"
@@ -3619,27 +3676,27 @@ msgstr "Tidak ada ID apa pun yang ditugaskan untuk simpul %s"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "Tidak dapat memperoleh ukuran gambar. :scale: option diabaikan."
@@ -3656,13 +3713,13 @@ msgstr ":maxdepth: terlalu besar, diabaikan."
msgid "document title is not a single Text node"
msgstr "judul dokumen bukan simpul Text tunggal"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "simpul judul tidak ditemui dalam bagian, topik, tabel, peringatan atau sisi bilah"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Catatan kaki"
@@ -3681,20 +3738,20 @@ msgstr "unit dimensi %s tidak valid. Diabaikan"
msgid "unknown index entry type %s found"
msgstr "entri indeks tidak diketahui ditemukan tipe %s"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[gambar: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[gambar]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "keterangan tidak di dalam gambar."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "tipe simpul tidak diterapkan: %r"
diff --git a/sphinx/locale/is/LC_MESSAGES/sphinx.mo b/sphinx/locale/is/LC_MESSAGES/sphinx.mo
index e7df902..cb66b27 100644
--- a/sphinx/locale/is/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/is/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/is/LC_MESSAGES/sphinx.po b/sphinx/locale/is/LC_MESSAGES/sphinx.po
index d6090cc..35c3a11 100644
--- a/sphinx/locale/is/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/is/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Tryggvi Kalman <tkj3@hi.is>, 2021\n"
"Language-Team: Icelandic (http://app.transifex.com/sphinx-doc/sphinx-1/language/is/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: is\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Kafli %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Mynd %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tafla %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listi %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Almennt yfirlit"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "yfirlit"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "næsta"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "fyrri"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Yfirlit"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Útgáfa"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Leitarsíða"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Athugið"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Aðgát"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Hætta"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Villa"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Ãbending"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Mikilvægt"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Athugasemd"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Sjá einnig"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Ãbending"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Aðvörun"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr "Efnisyfirlit"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Leit"
@@ -3342,34 +3401,22 @@ msgstr "Næsta efni"
msgid "next chapter"
msgstr "næsti kafli"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "leita"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Leitarniðurstöður"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Leitin bar ekki árangur. Vinsamlegast gangið úr skugga um að orðin séu rétt skrifuð og að þú hafir valið nægilega marga flokka."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Flýtileit"
@@ -3406,20 +3453,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Leitarniðurstöður"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Leitin bar ekki árangur. Vinsamlegast gangið úr skugga um að orðin séu rétt skrifuð og að þú hafir valið nægilega marga flokka."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Leitar"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Undirbýr leit..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[mynd: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[mynd]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.mo b/sphinx/locale/it/LC_MESSAGES/sphinx.mo
index 03822e4..71f07bd 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.po b/sphinx/locale/it/LC_MESSAGES/sphinx.po
index 780d728..d795eeb 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Antonari Palmio, 2022\n"
"Language-Team: Italian (http://app.transifex.com/sphinx-doc/sphinx-1/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -43,104 +43,104 @@ msgstr "La cartella sorgente e la cartella di destinazione non possono essere id
msgid "Running Sphinx v%s"
msgstr "Sto eseguendo Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Questo progetto necessita almeno di Sphinx v%s per cui non può essere creato con la versione attuale."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "sto creando la cartella di output"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "caricamento traduzioni [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "fatto"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "terminato con problemi"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -148,12 +148,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -161,70 +161,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -232,290 +237,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Sezione %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabella %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listato %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "il primary_domain %r non è stato trovato, tralasciato."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -532,8 +574,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -582,7 +624,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -591,50 +633,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -643,36 +685,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -680,470 +722,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Builtins"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Al livello del modulo"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (in "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Indice generale"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indice"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "successivo"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "precedente"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s documentazione"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indice"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Release"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1158,15 +1200,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1225,8 +1267,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1258,7 +1300,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1266,249 +1310,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1517,15 +1566,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1535,21 +1584,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1557,91 +1606,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1651,135 +1700,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1830,47 +1879,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autore della sezione: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autore del modulo: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autore del codice: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autore: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1885,82 +1934,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametri"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Ritorna"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tipo di ritorno"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membro"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabile"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funzione"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumeratore"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipo"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nuovo nella versione %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1972,346 +1949,423 @@ msgstr "Cambiato nella versione %s"
msgid "Deprecated since version %s"
msgstr "Deprecato dalla versione %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:82
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parametri del modello"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Solleva"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "classe"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "concetto"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (funzione built-in)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metodo)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (classe)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variabile globale o costante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attributo)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Parametri"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Solleva"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Ritorna"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipo di ritorno"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modulo)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funzione"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metodo"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "classe"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dati"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attributo"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modulo"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "etichetta dell'equazione %s duplicata, altra istanza in %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variabili"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direttiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Solleva"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (ruolo)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direttiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "ruolo"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametri"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membro"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabile"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumeratore"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipo"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parametri del modello"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concetto"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (nel modulo %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (nel modulo %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variabile built-in)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (classe built-in)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (classe in %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s metodo della classe)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s metodo statico)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Indice del modulo Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduli"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Deprecato"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "eccezione"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "metodo della classe"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "metodo statico"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (deprecato)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direttiva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (ruolo)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direttiva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "ruolo"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variabili"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Solleva"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variabile d'ambiente, %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "voce del glossario"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "elemento grammaticale"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "etichetta di riferimento"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variabile d'ambiente"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opzione del programma"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "documento"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Indice dei moduli"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Cerca"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2328,35 +2382,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2380,39 +2434,39 @@ msgstr ""
msgid "Symbols"
msgstr "Simboli"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2422,7 +2476,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2434,149 +2488,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2600,24 +2654,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2628,32 +2682,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2663,7 +2717,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2673,27 +2727,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[grafico: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[grafico]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2701,7 +2755,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2711,173 +2765,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(in %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[sorgente]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Da fare"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<elemento originale>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(L'<<elemento originale>> si trova in %s, linea %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "riga originale"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documenti]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Codice del modulo"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Codice sorgente per %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Vista generale: codice del modulo"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Tutti i moduli di cui è disponibile il codice</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2885,112 +2944,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr " Basi: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2998,25 +3057,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3090,99 +3149,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argomenti parole chiave"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Esempi"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Attenzione"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Attenzione"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Pericolo"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Errore"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Suggerimento"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Importante"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Nota"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Vedi anche"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Suggerimento"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Avvertimento"
@@ -3214,7 +3273,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Cerca"
@@ -3347,34 +3406,22 @@ msgstr "Argomento successivo"
msgid "next chapter"
msgstr "capitolo successivo"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Attiva JavaScript per abilitare la funzioneâŽ\ndi ricerca."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "cerca"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Risultati della ricerca"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "La tua ricerca non corrisponde a nessun documento. Verifica che tutte le parole siano scritte correttamente e di aver scelto un numero sufficiente di categorie."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Ricerca veloce"
@@ -3411,20 +3458,30 @@ msgstr "Modifiche nelle API C"
msgid "Other changes"
msgstr "Altre modifiche"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Risultati della ricerca"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "La tua ricerca non corrisponde a nessun documento. Verifica che tutte le parole siano scritte correttamente e di aver scelto un numero sufficiente di categorie."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Cerca"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Preparo la ricerca..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", in "
@@ -3445,30 +3502,30 @@ msgstr "Espandi la barra laterale"
msgid "Contents"
msgstr "Contenuti"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3480,13 +3537,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3513,90 +3570,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3619,27 +3676,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3656,13 +3713,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Note a piè di pagina"
@@ -3681,20 +3738,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[immagine: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[immagine]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.mo b/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
index 239d4d3..fe8da59 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ja/LC_MESSAGES/sphinx.po b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
index 2c6335d..50668b6 100644
--- a/sphinx/locale/ja/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ja/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -24,14 +24,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Tetsuo Koyama <tkoyama010@gmail.com>, 2020-2023\n"
"Language-Team: Japanese (http://app.transifex.com/sphinx-doc/sphinx-1/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -54,104 +54,104 @@ msgstr "出力先ディレクトリã«ã¯ã‚½ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ç•°ãªã‚‹
msgid "Running Sphinx v%s"
msgstr "Sphinx v%s を実行中"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "ã“ã®ãƒ—ロジェクトã¯Sphinx v%s以é™ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ãªã‘ã‚Œã°ãƒ“ルドã§ãã¾ã›ã‚“。"
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "出力先ディレクトリを作æˆã—ã¦ã„ã¾ã™"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "拡張機能ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—中 %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "conf.pyã«ã‚ã‚‹'setup'ã¯Pythonã®callableã§ã¯ã‚ã‚Šã¾ã›ã‚“。定義を修正ã—ã¦callableã§ã‚る関数ã«ã—ã¦ãã ã•ã„。ã“ã‚Œã¯conf.pyãŒSphinxæ‹¡å¼µã¨ã—ã¦å‹•ä½œã™ã‚‹ã®ã«å¿…è¦ã§ã™ã€‚"
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "翻訳カタログをロードã—ã¦ã„ã¾ã™ [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "完了"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "翻訳ãŒç”¨æ„ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "ä¿å­˜ã•ã‚ŒãŸç’°å¢ƒãƒ‡ãƒ¼ã‚¿ã‚’読ã¿è¾¼ã¿ä¸­"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "失敗: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "ビルダーãŒé¸æŠžã•ã‚Œã¦ã„ãªã„ã®ã§ã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã® html を使用ã—ã¾ã™"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "æˆåŠŸ"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "完了(å•é¡Œã‚り)"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "警告%sã€%sをビルドã—ã¾ã™ï¼ˆè­¦å‘Šã¯ã‚¨ãƒ©ãƒ¼ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ï¼‰ã€‚"
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "警告%sã€%sをビルドã—ã¾ã™ï¼ˆè­¦å‘Šã¯ã‚¨ãƒ©ãƒ¼ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™ï¼‰ã€‚"
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "ビルド %s, %s warning."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "ビルド %s, %s 警告."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "ビルド %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "nodeクラス %r ã¯æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™ã€‚visitor関数ã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "ディレクティブ %r ã¯æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™ã€‚ディレクティブã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "ロール %r ã¯æ—¢ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™ã€‚ロールã¯ä¸Šæ›¸ãã•ã‚Œã¾ã™"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -159,12 +159,12 @@ msgid ""
"explicit"
msgstr "æ‹¡å¼µ %s ã¯ä¸¦åˆ—読ã¿è¾¼ã¿ãŒå¯èƒ½ã‹ã©ã†ã‹ã‚’宣言ã—ã¦ã„ãªã„ãŸã‚ã€ãŠãらã並列読ã¿è¾¼ã¿ã«å¯¾å¿œã—ã¦ã„ãªã„ã§ã—ょã†ã€‚æ‹¡å¼µã®å®Ÿè£…者ã«é€£çµ¡ã—ã¦ã€æ˜Žç¤ºã—ã¦ã‚‚らã£ã¦ãã ã•ã„。"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "%sæ‹¡å¼µã¯ä¸¦åˆ—読ã¿è¾¼ã¿ã«å¯¾ã—ã¦å®‰å…¨ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -172,70 +172,75 @@ msgid ""
"explicit"
msgstr "æ‹¡å¼µ %s ã¯ä¸¦åˆ—書ãè¾¼ã¿ãŒå¯èƒ½ã‹ã©ã†ã‹ã‚’宣言ã—ã¦ã„ãªã„ãŸã‚ã€ãŠãらã並列書ãè¾¼ã¿ã«å¯¾å¿œã—ã¦ã„ãªã„ã§ã—ょã†ã€‚æ‹¡å¼µã®å®Ÿè£…者ã«é€£çµ¡ã—ã¦ã€æ˜Žç¤ºã—ã¦ã‚‚らã£ã¦ãã ã•ã„。"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "%sæ‹¡å¼µã¯ä¸¦åˆ—書ãè¾¼ã¿ã«å¯¾ã—ã¦å®‰å…¨ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "直列㧠%sã—ã¾ã™"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "conf.py ãŒè¨­å®šãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«å­˜åœ¨ã—ã¾ã›ã‚“ (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "無効ãªè¨­å®šå€¤ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: 'language = None' 。設定を有効ãªè¨€èªžã‚³ãƒ¼ãƒ‰ã«æ›´æ–°ã—ã¦ãã ã•ã„。 'en' (英語)ã«ãƒ•ã‚©ãƒ¼ãƒ«ãƒãƒƒã‚¯ã—ã¦ã„ã¾ã™ã€‚"
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "設定値ã®è¾žæ›¸ %r ã¯ä¸Šæ›¸ããªã„ãŸã‚無視ã•ã‚Œã¾ã—㟠(%r を使ã£ã¦å€‹åˆ¥ã«è¨­å®šã—ã¦ãã ã•ã„)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "%r ã¯è¨­å®šå€¤ %r ã®æ­£ã—ã„値ã§ã¯ãªã„ãŸã‚無視ã•ã‚Œã¾ã—ãŸ"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "%r ã¯æ­£ã—ã„åž‹ã§ã¯ãªã„ãŸã‚無視ã•ã‚Œã¾ã—ãŸ"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "ä¸æ˜Žãªè¨­å®šå€¤ %r ã«ã‚ˆã‚‹ä¸Šæ›¸ãã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸ"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "%s ã¨ã„ã†è¨­å®šå€¤ã¯ã‚ã‚Šã¾ã›ã‚“"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "設定値 %r ã¯æ—¢ã«ç™»éŒ²æ¸ˆã¿ã§ã™"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "設定ファイルã«æ–‡æ³•ã‚¨ãƒ©ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "設定ファイル(ã‚ã‚‹ã„ã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ãŸã©ã‚Œã‹ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ï¼‰ãŒsys.exit()を呼ã³ã¾ã—ãŸ"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -243,291 +248,328 @@ msgid ""
"%s"
msgstr "設定ファイルã«ãƒ—ログラム上ã®ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚Šã¾ã™:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "設定値 `source_suffix' ã« `%r' ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸãŒã€æ–‡å­—列ã€æ–‡å­—列ã®ãƒªã‚¹ãƒˆã€è¾žæ›¸ã€ã®ã„ãšã‚Œã‹ã‚’指定ã—ã¦ãã ã•ã„。"
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "%s ç« "
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "図 %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "表 %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "リスト %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr " 設定値 `{name}` ã« `{current}` ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸãŒã€ {candidates} ã®ã„ãšã‚Œã‹ã‚’指定ã—ã¦ãã ã•ã„。"
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "設定値 `{name}' ã« `{current.__name__}' åž‹ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€ {permitted} 型を指定ã—ã¦ãã ã•ã„。"
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "設定値 `{name}' ã« `{current.__name__}' åž‹ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã™ã€‚デフォルト値㯠`{default.__name__}' ã§ã™ã€‚"
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。無視ã—ã¾ã™ã€‚"
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "v2.0以é™ã€Sphinxã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ \"index \" ã‚’root_docã¨ã—ã¦ä½¿ç”¨ã—ã¦ã„ã¾ã™ã€‚conf.pyã« \"root_doc = 'contents'\" を追加ã—ã¦ãã ã•ã„。"
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "イベント %r ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "ä¸æ˜Žãªã‚¤ãƒ™ãƒ³ãƒˆå: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "イベント %r ã®ãƒãƒ³ãƒ‰ãƒ© %r ã§ä¾‹å¤–ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "needs_extensions設定㧠%s æ‹¡å¼µãŒè¦æ±‚ã•ã‚Œã¦ã„ã¾ã™ãŒã€ãã®æ‹¡å¼µãŒã‚ã‚Šã¾ã›ã‚“。"
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "ã“ã®ãƒ—ロジェクトã¯æ‹¡å¼µ %s ã® %s 以é™ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒå¿…è¦ãªãŸã‚ã€ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³(%s)ã§ã¯ãƒ“ルドã§ãã¾ã›ã‚“。"
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments ã« %r ã¨ã„ã†lexerãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "ドキュメント \"%s\" ã§è¤‡æ•°ã®ãƒ•ã‚¡ã‚¤ãƒ«ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: %r\nビルドã«ã¯ %r を使用ã—ã¦ãã ã•ã„。"
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "ビルダークラス %s ã«ã¯\"name\"属性ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "ビルダー %r (モジュール %s) ãŒã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "ビルダーå %s ã¯ç™»éŒ²ã•ã‚Œã¦ãŠã‚‰ãšã€entry pointã«ã‚‚ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "ビルダーå %s ã¯ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "ドメイン %s ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "ドメイン %s ã¯ã¾ã ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "ディレクティブ %r ã¯æ—¢ã«%sドメインã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "ロール %r ã¯æ—¢ã«ãƒ‰ãƒ¡ã‚¤ãƒ³%sã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "インデックス %r ã¯ã™ã§ã«%sドメインã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "object_type %r ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "classref_type %r ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "%r ã®source_parserã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "%s ã®source_parserã¯ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "%r ã®Translatorã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "add_node() ã®ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰å¼•æ•°ã¯ (visit, depart) ã®å½¢å¼ã§é–¢æ•°ã‚’タプルã§æŒ‡å®šã—ã¦ãã ã•ã„: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "math renderer %s ã¯ã™ã§ã«ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "æ‹¡å¼µ %r ã¯Sphinxã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³%sã§Sphinxã«çµ±åˆã•ã‚Œã¦ã„ã¾ã™ã€‚ã“ã®æ‹¡å¼µã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "å…ƒã®ä¾‹å¤–:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "æ‹¡å¼µ %s ã‚’importã§ãã¾ã›ã‚“"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "æ‹¡å¼µ %r ã«ã¯ setup() 関数ãŒã‚ã‚Šã¾ã›ã‚“。ã“ã‚Œã¯æœ¬å½“ã«Sphinxæ‹¡å¼µã§ã™ã‹ï¼Ÿ"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "ã“ã®ãƒ—ロジェクトã§ä½¿ã‚ã‚Œã¦ã„ã‚‹æ‹¡å¼µ %s ã¯Sphinx v%s 以é™ãŒå¿…è¦ãªãŸã‚ã€ç¾åœ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã§ã¯ãƒ“ルドã§ãã¾ã›ã‚“。"
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "æ‹¡å¼µ %r ã®setup()関数ãŒã€å¯¾å¿œã—ã¦ã„ãªã„オブジェクトを返ã—ã¾ã—ãŸã€‚Noneã¾ãŸã¯ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿è¾žæ›¸ã‚’è¿”ã—ã¦ãã ã•ã„"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "無効ãªPEPç•ªå· %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "無効ãªRFCç•ªå· %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "テーマ %r ã« \"theme\" 設定ãŒã‚ã‚Šã¾ã›ã‚“"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "テーマ %r ã« \"inherit\" 設定ãŒã‚ã‚Šã¾ã›ã‚“"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "テーマ %r ㌠%r ã‹ã‚‰ç¶™æ‰¿ã•ã‚Œã¦ã„ã¾ã™ãŒã€è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "設定 %s.%s ãŒãƒ†ãƒ¼ãƒžè¨­å®šã«ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„テーマオプション %r ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "テーマパス上ã®ãƒ•ã‚¡ã‚¤ãƒ« %r ã¯æ­£ã—ã„zipファイルã§ã¯ãªã„ã‹ã€ãƒ†ãƒ¼ãƒžã‚’å«ã‚“ã§ã„ã¾ã›ã‚“"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "テーマ %r ãŒã‚ã‚Šã¾ã›ã‚“(theme.confãŒè¦‹ã¤ã‹ã‚‰ãªã„?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -543,8 +585,8 @@ msgstr "%sビルダーå‘ã‘ã®ç”»åƒå½¢å¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
msgid "building [mo]: "
msgstr "ビルド中 [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "出力中..."
@@ -593,7 +635,7 @@ msgstr "コマンドラインã§æŒ‡å®šã•ã‚ŒãŸ%d件ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«"
msgid "targets for %d source files that are out of date"
msgstr "æ›´æ–°ã•ã‚ŒãŸ %d 件ã®ã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "ビルド中 [%s]: "
@@ -602,50 +644,50 @@ msgstr "ビルド中 [%s]: "
msgid "looking for now-outdated files... "
msgstr "æ›´æ–°ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’探ã—ã¦ã„ã¾ã™... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d 件見ã¤ã‹ã‚Šã¾ã—ãŸ"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "環境データをä¿å­˜ä¸­"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "æ•´åˆæ€§ã‚’ãƒã‚§ãƒƒã‚¯ä¸­"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "æ›´æ–°ãŒå¿…è¦ãªå¯¾è±¡ã¯ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "環境データを更新中"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s 件追加, %s 件更新, %s 件削除"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "ソースを読ã¿è¾¼ã¿ä¸­..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "書ã込むdocname: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "ドキュメントã®å‡ºåŠ›æº–備中"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -654,36 +696,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "TocエントリーãŒé‡è¤‡ã—ã¦ã„ã¾ã™: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "ç”»åƒã‚’コピー中... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ« %r ã‚’PILã§èª­ã¿è¾¼ã‚ãªã„ãŸã‚ã€ãã®ã¾ã¾ã‚³ãƒ”ーã—ã¾ã™"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ« %r をコピーã§ãã¾ã›ã‚“: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ« %r を書ãè¾¼ã‚ã¾ã›ã‚“: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "PillowãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã¾ã›ã‚“。代ã‚ã‚Šã«ç”»åƒã‚’コピーã—ã¾ã™"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "mimetype を書ãè¾¼ã¿ä¸­..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "META-INF/container.xml を書ãè¾¼ã¿ä¸­..."
@@ -691,470 +733,470 @@ msgstr "META-INF/container.xml を書ãè¾¼ã¿ä¸­..."
msgid "writing content.opf file..."
msgstr "content.opf を書ãè¾¼ã¿ä¸­..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "ä¸æ˜Žãªmimetype %sã®ãŸã‚無視ã—ã¾ã™"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "tox.ncx を書ãè¾¼ã¿ä¸­..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "ファイル %s を書ãè¾¼ã¿ä¸­..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "ファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™"
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã§ã®å¤‰æ›´ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "概è¦ãƒ•ã‚¡ã‚¤ãƒ«ã‚’書ã出ã—中..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "組ã¿è¾¼ã¿"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "モジュールレベル"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "ソースファイルをコピー中..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "Changelog作æˆä¸­ã« %r を読ã¿è¾¼ã‚ã¾ã›ã‚“ã§ã—ãŸ"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "dummyビルダーã¯ãƒ•ã‚¡ã‚¤ãƒ«ã‚’出力ã—ã¾ã›ã‚“"
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "ePubファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "nav.xhtml を書ãè¾¼ã¿ä¸­..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_language\" (ã‚ã‚‹ã„㯠\"language\") ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "EPUB3ã§ã¯è¨­å®šå€¤ \"epub_uid\" ã¯XML NAMEã«ã™ã‚‹ã¹ãã§ã™"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_title\" (ã‚ã‚‹ã„㯠\"html_title\") ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_author\" ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_contributor\" ãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_description\" ãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_publisher\" ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_copyright\" (ã‚ã‚‹ã„㯠\"copyright\") ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"epub_identifier\" ã®æŒ‡å®šãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "EPUB3出力ã§ã¯è¨­å®šå€¤ \"version\" ãŒå¿…è¦ã§ã™"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "無効㪠css_file %r ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸ"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "メッセージカタログã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "指定ã•ã‚ŒãŸ %d 件ã®ãƒ†ãƒ³ãƒ—レートファイル"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "テンプレートã®èª­ã¿è¾¼ã¿ä¸­..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "メッセージカタログを出力中... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "上記ã®å‡ºåŠ›çµæžœã€ã¾ãŸã¯ %(outdir)s /output.txt を見ã¦ã‚¨ãƒ©ãƒ¼ã‚’確èªã—ã¦ãã ã•ã„"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "リンクãŒåˆ‡ã‚Œã¦ã„ã¾ã™: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "linkcheck_allowed_redirects 内ã®æ­£è¦è¡¨ç¾ã®ã‚³ãƒ³ãƒ‘イルã«å¤±æ•—ã—ã¾ã—ãŸ: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "マニュアルページ㯠%(outdir)s ã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "設定値 \"man_pages\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。マニュアルページã¯æ›¸ã‹ã‚Œã¾ã›ã‚“"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "書ãè¾¼ã¿ä¸­"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "設定値 \"man_pages\" ãŒä¸æ˜Žãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ %s ã‚’å‚ç…§ã—ã¦ã„ã¾ã™"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML ページã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "ドキュメントを1ページã«ã¾ã¨ã‚ã¦ã„ã¾ã™"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "追加ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’出力"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfoファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nmakeinfo コマンドã§å‡¦ç†ã™ã‚‹ãŸã‚ã€ãã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ 'make' を実行ã—ã¦ãã ã•ã„。\n(ã“れを自動的ã«è¡Œã†ã«ã¯ã€ã“ã“㧠'make info' を使用ã—ã¦ãã ã•ã„)。"
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "設定値 \"texinfo_documents\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。ドキュメントã¯æ›¸ãè¾¼ã¾ã‚Œã¾ã›ã‚“"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "設定値 \"texinfo_documents\" ã¯ã€ä¸æ˜Žãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ %s ã‚’å‚ç…§ã—ã¦ã„ã¾ã™"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "処ç†ä¸­ %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "å‚照を解決ã—ã¦ã„ã¾ã™..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (in "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "Texinfo 関連ファイルをコピーã—ã¦ã„ã¾ã™"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "Makefile ã®æ›¸ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "テキストファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "ファイル書ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼ %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XMLファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "pseudo-XMLファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "build info ファイルãŒå£Šã‚Œã¦ã„ã¾ã™: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTMLページã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "build info ファイルã®èª­ã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%Y年%m月%d日"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "ç·åˆç´¢å¼•"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "索引"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "次ã¸"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "å‰ã¸"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "索引を生æˆä¸­"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "追加ã®ãƒšãƒ¼ã‚¸ã‚’出力中"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "ダウンロードファイルをコピー中..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "ダウンロードファイル %r をコピーã§ãã¾ã›ã‚“: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "html_static_file 内ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚³ãƒ”ーã«å¤±æ•—ã—ã¾ã—ãŸ: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "é™çš„ファイルをコピー中"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "é™çš„ファイル %r をコピーã§ãã¾ã›ã‚“"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "extraファイルをコピー中"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "extraファイル %r をコピーã§ãã¾ã›ã‚“ã§ã—ãŸ"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "build info ファイル %r ã®å‡ºåŠ›ã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "検索インデックスを読ã¿è¾¼ã‚ãšã€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆãƒ“ルドã®ä¸€éƒ¨ãŒä¸å®Œå…¨ã§ã™ã€‚"
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "ページ %s ãŒhtml_sidebarsã®è¤‡æ•°ã®ãƒ‘ターンã«ä¸€è‡´ã—ã¾ã—ãŸ: %r 㨠%r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "ページ%sã®èª­ã¿è¾¼ã¿ä¸­ã«UnicodeエラーãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚éžã‚¢ã‚¹ã‚­ãƒ¼æ–‡å­—ã‚’å«ã‚€è¨­å®šå€¤ã¯å…¨ã¦Unicode文字列ã«ã—ã¦ãã ã•ã„。"
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "%sページã®ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚\nç†ç”±: %r "
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "オブジェクト インベントリを出力"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "%s ã®æ¤œç´¢ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’出力"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "無効㪠js_file %r ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸ"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "複数㮠math_renderer ãŒç™»éŒ²ã•ã‚Œã¦ã„ã¾ã™ã€‚ã—ã‹ã— math_renderer ã¯é¸æŠžã•ã‚Œã¦ã„ã¾ã›ã‚“。"
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "ä¸æ˜Žãª math_renderer %r ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸã€‚"
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path %r ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path %r ãŒoutdir内ã«é…ç½®ã•ã‚Œã¾ã™"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path %r ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path %r ãŒoutdir内ã«é…ç½®ã•ã‚Œã¾ã™"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "ロゴファイル %r ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon ファイル %r ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s ドキュメント"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeXファイルã¯%(outdir)sã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\n(pdf)latex コマンドã§å‡¦ç†ã™ã‚‹ãŸã‚ã«ã€ãã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ 'make' を実行ã—ã¦ãã ã•ã„。\n(ã“れを自動的ã«è¡Œã†ã«ã¯ã€ã“ã“㧠'make latexpdf' を使用ã—ã¦ãã ã•ã„)。"
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "設定値 \"latex_documents\" ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。ドキュメントã¯æ›¸ãè¾¼ã¾ã‚Œã¾ã›ã‚“"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "設定値 \"latex_documents\" ã¯ã€ä¸æ˜Žãªãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ %s ã‚’å‚ç…§ã—ã¦ã„ã¾ã™"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "索引"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "リリース"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "%r 言語å‘ã‘㮠既知㮠Babel オプションã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "TeX 関連ファイルをコピーã—ã¦ã„ã¾ã™"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "TeX 関連ファイルをコピー中..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "追加ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’コピーã—ã¦ã„ã¾ã™"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "ä¸æ˜Žãªè¨­å®šå€¤ latex_elements[%r] ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸã€‚"
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "ä¸æ˜Žãªãƒ†ãƒ¼ãƒžã‚ªãƒ—ション latex_theme_options[%r] ã¯ç„¡è¦–ã•ã‚Œã¾ã—ãŸã€‚"
@@ -1169,15 +1211,15 @@ msgstr "%r ã« \"theme\" 設定ãŒã‚ã‚Šã¾ã›ã‚“"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r ã« \"%s\" 設定ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1236,8 +1278,8 @@ msgstr "ãƒã‚°å ±å‘Šã¯ã“ã¡ã‚‰ã«ãŠé¡˜ã„ã—ã¾ã™ <https://github.com/sphinx
msgid "job number should be a positive number"
msgstr "ジョブ番å·ã¯æ­£æ•°ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "詳ã—ãã¯ã€<https://www.sphinx-doc.org/>を見ã¦ãã ã•ã„。"
@@ -1269,257 +1311,264 @@ msgid "path to output directory"
msgstr "出力先ディレクトリã¸ã®ãƒ‘ス"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "å†æ§‹ç¯‰ã™ã‚‹ãŸã‚ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒªã‚¹ãƒˆã€‚ -a ãŒæŒ‡å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ç„¡è¦–ã•ã‚Œã¾ã™"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "一般的ãªã‚ªãƒ—ション"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "使用ã™ã‚‹ãƒ“ルダー(デフォルト:html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "ã™ã¹ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«æ›¸ã込む(デフォルト: æ–°è¦ãƒ•ã‚¡ã‚¤ãƒ«ã¾ãŸã¯å¤‰æ›´ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã®ã¿ï¼‰"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "ä¿å­˜ã•ã‚ŒãŸç’°å¢ƒã¯ä½¿ã‚ãšã€å¸¸ã«å…¨ã¦ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’読ã¿è¾¼ã‚€"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "キャッシュã•ã‚ŒãŸç’°å¢ƒã¨Doctreeファイルã¸ã®ãƒ‘ス(デフォルト:OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "å¯èƒ½ãªå ´åˆã€ãƒ“ルドを N 個ã®ãƒ—ロセスã§ä¸¦åˆ—実行ã™ã‚‹ï¼ˆç‰¹åˆ¥ãªå€¤ \"auto\" 㯠N ã‚’ cpu-count ã«è¨­å®šã™ã‚‹ï¼‰"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "設定ファイル(conf.py)ãŒã‚る場所ã®ãƒ‘ス(デフォルト:SOURCEDIRã¨åŒã˜å ´æ‰€ï¼‰"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "設定ファイルを使用ã›ãšã€-Dオプションã®ã¿ã‚’使用"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "設定ファイルã®è¨­å®šã‚’上書ãã™ã‚‹"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "HTMLテンプレートã«å€¤ã‚’渡ã™"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "定義タグ: TAG ブロック\"ã®ã¿\"å«ã‚€"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "nit-picky モード。ä¸è¶³ã—ã¦ã„ã‚‹ã™ã¹ã¦ã®å‚ç…§ã«ã¤ã„ã¦è­¦å‘Šã™ã‚‹"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "コンソール出力オプション"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "精度ã®å¢—加(繰り返ã—å¯èƒ½ï¼‰"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "標準出力ã«ã¯å‡ºåŠ›ã›ãšã€æ¨™æº–エラー出力ã«è­¦å‘Šã‚’出ã™ã®ã¿"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "何も出力ã›ãšã€è­¦å‘Šã‚‚ã—ãªã„"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "色分ã‘ã§å‡ºåŠ›ã™ã‚‹ï¼ˆãƒ‡ãƒ•ã‚©ãƒ«ãƒˆï¼šè‡ªå‹•æ¤œå‡ºï¼‰"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "色分ã‘ã®å‡ºåŠ›ã‚’ã—ãªã„(デフォルト:自動検出)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "指定ファイルã«è­¦å‘Šï¼ˆãŠã‚ˆã³ã‚¨ãƒ©ãƒ¼ï¼‰ã‚’書ã込む"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "警告をエラーã¨ã—ã¦æ‰±ã†"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "-Wを指定ã™ã‚‹ã¨ã€è­¦å‘ŠãŒè¡¨ç¤ºã•ã‚ŒãŸã¨ãã¯å®Ÿè¡Œã‚’続ã‘ã‚‹"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "例外時ã«ãƒ•ãƒ«ãƒˆãƒ¬ãƒ¼ã‚¹ãƒãƒƒã‚¯ã‚’表示ã™ã‚‹"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "例外ãŒç™ºç”Ÿã—ãŸã¨ãã«Pdbを実行ã™ã‚‹"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "-aオプションã¨ãƒ•ã‚¡ã‚¤ãƒ«åを組ã¿åˆã‚ã›ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "警告ファイル %r ã‚’é–‹ã‘ã¾ã›ã‚“: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-Dオプション引数㯠name = value ã®å½¢å¼ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-Aオプション引数㯠name = value ã®å½¢å¼ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "モジュールã‹ã‚‰è‡ªå‹•çš„ã« docstring を挿入ã™ã‚‹"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "doctest ブロック内ã®ã‚³ãƒ¼ãƒ‰ã‚¹ãƒ‹ãƒšãƒƒãƒˆã‚’自動的ã«ãƒ†ã‚¹ãƒˆã™ã‚‹"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "ç•°ãªã‚‹ãƒ—ロジェクトã®Sphinxドキュメント間ã®ãƒªãƒ³ã‚¯"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "ビルド時ã«è¡¨ç¤ºã¾ãŸã¯éžè¡¨ç¤ºã«ã§ãã‚‹ \"todo\" エントリを書ã"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "ドキュメントã®é©ç”¨ç¯„囲を確èªã™ã‚‹"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "PNG ã¾ãŸã¯ SVG ç”»åƒã¨ã—ã¦ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•ã‚ŒãŸæ•°å­¦ã‚’å«ã‚€"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "MathJax ã«ã‚ˆã£ã¦ãƒ–ラウザã«ãƒ¬ãƒ³ãƒ€ãƒªãƒ³ã‚°ã•ã‚ŒãŸæ•°å­¦ã‚’å«ã‚€"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "設定値ã«åŸºã¥ãコンテンツã®æ¡ä»¶ä»˜ã包å«"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "文書化ã•ã‚ŒãŸ Python オブジェクトã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã¸ã®ãƒªãƒ³ã‚¯ã‚’å«ã‚ã‚‹"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "GitHub ページã«ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’公開ã™ã‚‹ãŸã‚ã® .nojekyll ファイルを作æˆã™ã‚‹"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "有効ãªãƒ‘スåを入力ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "何ã‹å…¥åŠ›ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "%sã®ã„ãšã‚Œã‹ã‚’入力ã—ã¦ãã ã•ã„。 "
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "'y' ã¾ãŸã¯ 'n' を入力ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "ファイルã®æ‹¡å¼µå­ã‚’入力ã—ã¦ãã ã•ã„。例: '.rst' ã¾ãŸã¯ '.txt'。"
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Sphinx %s クイックスタートユーティリティã¸ã‚ˆã†ã“ã。"
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "以下ã®è¨­å®šå€¤ã‚’入力ã—ã¦ãã ã•ã„(Enter キーã®ã¿æŠ¼ã—ãŸå ´åˆã€\nã‹ã£ã“ã§å›²ã¾ã‚ŒãŸå€¤ã‚’デフォルト値ã¨ã—ã¦å—ã‘入れã¾ã™ï¼‰ã€‚"
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "é¸æŠžã•ã‚ŒãŸãƒ«ãƒ¼ãƒˆãƒ‘ス: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "ドキュメントã®ãƒ«ãƒ¼ãƒˆãƒ‘スを入力ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "ドキュメントã®ãƒ«ãƒ¼ãƒˆãƒ‘ス"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "エラー:é¸æŠžã•ã‚ŒãŸãƒ«ãƒ¼ãƒˆãƒ‘スã«æ—¢å­˜ã® conf.py ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚"
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart ã¯ã€æ—¢å­˜ã® Sphinx プロジェクトを上書ãã—ã¾ã›ã‚“。"
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "æ–°ã—ã„ルートパスを入力ã—ã¦ãã ã•ã„(ã¾ãŸã¯ Enter を押ã™ã“ã¨ã§çµ‚了ã—ã¾ã™ï¼‰ã€‚"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Sphinx 出力用ã®ãƒ“ルドディレクトリをé…ç½®ã™ã‚‹æ–¹æ³•ã¯2ã¤ã‚ã‚Šã¾ã™ã€‚\nルートパス内ã«ã‚ã‚‹ \"_build\" ディレクトリを使ã†ã‹ã€\nルートパス内㫠\"source\" 㨠\"build\" ディレクトリを分ã‘る方法ã§ã™ã€‚"
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "ソースディレクトリã¨ãƒ“ルドディレクトリを分ã‘る(y / n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "プロジェクトã®ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã« 2ã¤ä»¥ä¸Šã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒä½œæˆã•ã‚Œã¾ã™ã€‚\nカスタマイズã—ãŸHTMLテンプレート用ã®\"_templates\"ディレクトリã¨ã€ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã—ãŸã‚¹ã‚¿ã‚¤ãƒ«ã‚·ãƒ¼ãƒˆç­‰ã‚’ç½®ã\"_static\"ディレクトリãŒã‚ã‚Šã¾ã™ã€‚\nã“れらã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯ \"_\" ã§å§‹ã¾ã£ã¦ã„ã¾ã™ãŒã€åˆ¥ã®æ–‡å­—(\".\"ãªã©)ã§å§‹ã¾ã‚‹ã‚ˆã†ã«æŒ‡å®šã§ãã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "テンプレートã¨é™çš„ディレクトリã®åå‰ãƒ—レフィックス"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "プロジェクトåã¯ã€ãƒ“ルドã•ã‚ŒãŸãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®ã„ãã¤ã‹ã®å ´æ‰€ã«ã‚ã‚Šã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "プロジェクトå"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "著者å(複数å¯ï¼‰"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1528,15 +1577,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx ã«ã¯ã€ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã«å¯¾ã—㦠\"ãƒãƒ¼ã‚¸ãƒ§ãƒ³\" 㨠\"リリース\" ã¨ã„ã†æ¦‚念ãŒ\nã‚ã‚Šã¾ã™ã€‚å„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯è¤‡æ•°ã®ãƒªãƒªãƒ¼ã‚¹ã‚’æŒã¤ã“ã¨ãŒã§ãã¾ã™ã€‚\n例ãˆã°ã€Python ã ã¨ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒ 2.5 ã‚„ 3.0 ã®ã‚ˆã†ã«åˆ†ã‹ã‚Œã¦ã„るよã†ã«ã€\nリリースも 2.5.1 ã‚„ 3.0a1 ã®ã‚ˆã†ã«åˆ†ã‘ã¦æŒã¤ã“ã¨ãŒã§ãã¾ã™ã€‚ã‚‚ã—ã“ã®ã‚ˆã†ãªå¤šé‡æ§‹æˆãŒå¿…è¦ãªã„å ´åˆã¯ã€\n両方をåŒã˜å€¤ã«è¨­å®šã™ã‚‹ã ã‘ã§ã™ã€‚"
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "プロジェクトã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "プロジェクトã®ãƒªãƒªãƒ¼ã‚¹"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1546,21 +1595,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "ドキュメントを英語以外ã®è¨€èªžã§æ›¸ãå ´åˆã¯ã€\n 言語コードã§è¨€èªžã‚’é¸æŠžã§ãã¾ã™ã€‚Sphinx ã¯ç”Ÿæˆã—ãŸãƒ†ã‚­ã‚¹ãƒˆã‚’ãã®è¨€èªžã«ç¿»è¨³ã—ã¾ã™ã€‚\n\nサãƒãƒ¼ãƒˆã•ã‚Œã¦ã„るコードã®ãƒªã‚¹ãƒˆã«ã¤ã„ã¦ã¯ã€\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language ã‚’å‚ç…§ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "プロジェクトã®è¨€èªž"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "ソースファイルã®ãƒ•ã‚¡ã‚¤ãƒ«åã®æ‹¡å¼µå­ã€‚一般的ã«ã¯ã€\".txt\"ã¾ãŸã¯\".rst \"ã®ã©ã¡ã‚‰ã‹ã§ã™ã€‚ã“ã®æ‹¡å¼µå­ã‚’æŒã¤ãƒ•ã‚¡ã‚¤ãƒ«ã ã‘ãŒãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¨ã¿ãªã•ã‚Œã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "ソース・ファイルサフィックス"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1568,91 +1617,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "1ã¤ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ã€\"コンテンツツリー\"ã®æœ€ä¸Šä½ãƒŽãƒ¼ãƒ‰ã¨\n見ãªã•ã‚Œã‚‹ã¨ã„ã†ç‚¹ã§ç‰¹åˆ¥ã§ã™ã€‚ã¤ã¾ã‚Šã€ãã‚Œã¯ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«ãŠã‘る階層構造ã®ãƒ«ãƒ¼ãƒˆã§ã‚ã‚‹\nã¨ã„ã†ã“ã¨ã§ã™ã€‚通常ã€ã“れ㯠\"index\" ã§ã™ãŒã€\n\"index\" ドキュメントãŒã‚«ã‚¹ã‚¿ãƒ ãƒ†ãƒ³ãƒ—レートã®å ´åˆã€ã“れを別ã®ãƒ•ã‚¡ã‚¤ãƒ«åã«è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "マスター文書ã®åå‰ï¼ˆæ‹¡å¼µå­ã‚’除ã)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "エラー:マスタファイル %s ã¯ã€é¸æŠžã•ã‚ŒãŸãƒ«ãƒ¼ãƒˆãƒ‘ス上ã§æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart ã¯æ—¢å­˜ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’上書ãã—ã¾ã›ã‚“。"
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "æ–°ã—ã„ファイルåを入力ã™ã‚‹ã‹ã€æ—¢å­˜ã®ãƒ•ã‚¡ã‚¤ãƒ«ã®åå‰ã‚’変更ã—ã¦Enterキーを押ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "次㮠Sphinx 拡張機能ã®ã†ã¡ã©ã‚Œã‚’有効ã«ã™ã‚‹ã‹ã‚’指定ã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "注:imgmath 㨠mathjax ã‚’åŒæ™‚ã«æœ‰åŠ¹ã«ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。 imgmath ã¯æœªé¸æŠžã«ãªã‚Šã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Makefile 㨠Windows コマンドファイルã¯ç”Ÿæˆã™ã‚‹ã“ã¨ãŒã§ãã‚‹ã®ã§ã€\n後ã¯å®Ÿè¡Œã™ã‚‹ã ã‘ã§ã™ã€‚例ãˆã°ã€ç›´æŽ¥ sphinx-build を実行ã™ã‚‹ä»£ã‚ã‚Šã« `make html` ã‚’\n実行ã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Makefile を作æˆã—ã¾ã™ã‹ï¼Ÿ (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Windows コマンドファイルを作æˆã—ã¾ã™ã‹ï¼Ÿï¼ˆy/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "ファイル %s を作æˆã—ã¦ã„ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "ファイル %s ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã®ã§ã‚¹ã‚­ãƒƒãƒ—ã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "終了:åˆæœŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªæ§‹é€ ãŒä½œæˆã•ã‚Œã¾ã—ãŸã€‚"
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "マスターファイル %s を作æˆã—ã¦\nä»–ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’作æˆã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "次ã®ã‚ˆã†ã« Makefile を使ã£ã¦ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’作æˆã—ã¾ã™ã€‚\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "次ã®ã‚ˆã†ã«ã€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’構築ã™ã‚‹ã«ã¯ sphinx-build コマンドを使用ã—ã¦ãã ã•ã„。\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "\"builder\" ã¯ã‚µãƒãƒ¼ãƒˆã•ã‚Œã¦ã„るビルダー㮠1 ã¤ã§ã™ã€‚ 例: html, latex, ã¾ãŸã¯ linkcheck。"
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1662,135 +1711,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nSphinx プロジェクトã«å¿…è¦ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã—ã¾ã™ã€‚\n\nsphinx-quickstart ã¯ã€ã„ãã¤ã‹ã®è³ªå•ã§ã‚ãªãŸã®\nプロジェクトを生æˆã™ã‚‹ãŸã‚ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¨ã€sphinx-build ã¨ä¸€ç·’ã«ä½¿ãˆã‚‹\nサンプルã®Makefileを作æˆã—ã¦ãれるインタラクティブãªãƒ„ールã§ã™ã€‚\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "Quiet モード"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "project root"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "構æˆã‚ªãƒ—ション"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "記述ã—ãŸå ´åˆã€ã‚½ãƒ¼ã‚¹ã¨ãƒ“ルドã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’分割ã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "指定ã•ã‚ŒãŸå ´åˆã€ã‚½ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ä¸‹ã«ãƒ“ルドディレクトリを作æˆã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "_templates ãªã©ã®ãƒ‰ãƒƒãƒˆã®ç½®ãæ›ãˆ"
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "プロジェクトã®åŸºæœ¬ã‚ªãƒ—ション"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "プロジェクトå"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "著者å"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "プロジェクトã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "プロジェクトã®ãƒªãƒªãƒ¼ã‚¹"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "ドキュメント言語"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "ソース・ファイルサフィックス"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "マスタードキュメントå"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "epubを利用ã™ã‚‹"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "拡張オプション"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "%s 拡張を有効ã«ã™ã‚‹"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "ä»»æ„ã®æ‹¡å¼µã‚’有効ã«ã™ã‚‹"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefileã¨batファイルã®ç”Ÿæˆã‚ªãƒ—ション"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "makefileを作æˆã™ã‚‹"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "makefileを作æˆã—ãªã„"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "batファイルを作æˆã™ã‚‹"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "batファイルを作æˆã—ãªã„"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "Makefile / make.bat å‘ã‘ã« make-mode を使ã†"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "Makefile / make.bat å‘ã‘ã« make-mode を使ã‚ãªã„ã§ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "プロジェクトテンプレート"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "テンプレートファイルã®ãƒ†ãƒ³ãƒ—レートディレクトリ"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "テンプレート変数ã®å®šç¾©"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"quiet\" ãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã™ãŒã€ \"project\" ã¾ãŸã¯ \"author\" ã®ã„ãšã‚Œã‚‚指定ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "エラー:指定ã•ã‚ŒãŸãƒ‘スã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ãªã„ã‹ã€ã¾ãŸã¯ sphinx ファイルãŒæ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart ã¯ç©ºã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã®ã¿ç”Ÿæˆã—ã¾ã™ã€‚æ–°ã—ã„ルートパスを指定ã—ã¦ãã ã•ã„。"
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "無効ãªãƒ†ãƒ³ãƒ—レート変数: %s"
@@ -1841,47 +1890,47 @@ msgstr " \"lineno-match\" ã¯ä¸é€£ç¶šãª \"lines\" ã«å¯¾ã—ã¦ä½¿ç”¨ã§ãã¾ã
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "指定ã•ã‚ŒãŸ %r ã«ä¸€è‡´ã™ã‚‹è¡ŒãŒã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ•ã‚¡ã‚¤ãƒ« %r ã«ã‚ã‚Šã¾ã›ã‚“ã§ã—ãŸ"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "toctree グローブ・パターン %r ã¯ã©ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«ã‚‚マッãƒã—ã¾ã›ã‚“ã§ã—ãŸã€‚"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree ã«é™¤å¤–ã—ãŸãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¸ã®å‚ç…§ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree ã«å­˜åœ¨ã—ãªã„ドキュメントã¸ã®å‚ç…§ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "toctree ã§é‡è¤‡ã—ãŸã‚¨ãƒ³ãƒˆãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "ã“ã®ç¯€ã®ä½œè€…: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "モジュールã®ä½œè€…: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "コードã®ä½œè€…: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "作者: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1896,82 +1945,10 @@ msgstr "csv-table ディレクティブ㮠\":file:\" オプションã¯ã€çµ¶å¯
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "パラメータ"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "戻り値"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "戻り値"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "戻り値ã®åž‹"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "ã®ãƒ¡ãƒ³ãƒå¤‰æ•°"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "変数"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "ã®é–¢æ•°"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "ã®ãƒžã‚¯ãƒ­"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "struct"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "union"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "列挙型"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "ã®ãƒ‡ãƒ¼ã‚¿åž‹"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "関数パラメータ"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã§è¿½åŠ "
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1983,346 +1960,423 @@ msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã§å¤‰æ›´"
msgid "Deprecated since version %s"
msgstr "ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã§éžæŽ¨å¥¨"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "引用 %s ã¯ã™ã§ã« %s ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "引用 [%s] ã¯å‚ç…§ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "テンプレートパラメータ"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "例外"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "クラス"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "コンセプト"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "テンプレート・パラメータ"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (組ã¿è¾¼ã¿é–¢æ•°)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s ã®ãƒ¡ã‚½ãƒƒãƒ‰)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (クラス)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (グローãƒãƒ«å¤‰æ•°ã¾ãŸã¯å®šæ•°)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s ã®å±žæ€§)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "引数"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "例外"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "戻り値"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "戻り値ã®åž‹"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (モジュール)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "ã®é–¢æ•°"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "メソッド"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "クラス"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "データ"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "ã®å±žæ€§"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "モジュール"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "%s ã®è¨˜è¿° %s ã¯ã™ã§ã« %s 㧠%s ãŒä½¿ã‚ã‚Œã¦ã„ã¾ã™"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "æ•°å¼ %s ã®ãƒ©ãƒ™ãƒ«ã¯ã™ã§ã« %s ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "無効㪠math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (ディレクティブ)"
+
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (ディレクティブオプション)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (ロール)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "ディレクティブ"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "ディレクティブオプション"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "ロール"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "%s ã®è¨˜è¿° %s ã¯ã™ã§ã« %s ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "パラメータ"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "戻り値"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "ã®ãƒ¡ãƒ³ãƒå¤‰æ•°"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr "変数"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "例外"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "ã®ãƒžã‚¯ãƒ­"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "struct"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "union"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "列挙型"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "ã®ãƒ‡ãƒ¼ã‚¿åž‹"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "関数パラメータ"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "テンプレートパラメータ"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "コンセプト"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "テンプレート・パラメータ"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s モジュール)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s モジュール)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (組ã¿è¾¼ã¿å¤‰æ•°)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (組ã¿è¾¼ã¿ã‚¯ãƒ©ã‚¹)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (%s ã®ã‚¯ãƒ©ã‚¹)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s ã®ã‚¯ãƒ©ã‚¹ãƒ¡ã‚½ãƒƒãƒ‰)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s ã®é™çš„メソッド)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (%s ã®ãƒ—ロパティ)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Pythonモジュール索引"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "モジュール"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "éžæŽ¨å¥¨"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "例外"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "クラスメソッド"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "ã®é™çš„メソッド"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "プロパティ"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "相互å‚ç…§ %r ã«è¤‡æ•°ã®ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (éžæŽ¨å¥¨)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (ディレクティブ)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (ディレクティブオプション)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (ロール)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "ディレクティブ"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "ディレクティブオプション"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "ロール"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "変数"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "%s ã®è¨˜è¿° %s ã¯ã™ã§ã« %s ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "例外"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "環境変数; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "ä¸æ­£ãªã‚ªãƒ—ションã®èª¬æ˜Ž %r ã¯ã€\"opt\"ã€\"-opt args\"ã€\"--opt args\"ã€\"/opt args\" ã¾ãŸã¯ \"+opt args\" ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s コマンドラインオプション"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "コマンドラインオプション"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "用語集ã®å‰ã«ç©ºè¡ŒãŒå¿…è¦ã§ã™"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "用語集ã®ç”¨èªžã¯ç©ºè¡Œã§åŒºåˆ‡ã£ã¦ã¯ã„ã‘ã¾ã›ã‚“"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "用語集ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆãŒé–“é•ã£ã¦ã„るよã†ã§ã™ã€‚インデントを確èªã—ã¦ãã ã•ã„"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "用語集ã®é …ç›®"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "文法トークン"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "å‚照ラベル"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "環境変数"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "プログラムオプション"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "document"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "モジュール索引"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "検索ページ"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "ラベル %s ã¯ã™ã§ã« %s ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "%s ã®è¨˜è¿° %s ã¯ã™ã§ã« %s ã§ä½¿ã‚ã‚Œã¦ã„ã¾ã™"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig ã¯ç„¡åŠ¹ã§ã™ã€‚:numref: ã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "クロスリファレンスã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚番å·ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "リンクã«ã‚­ãƒ£ãƒ—ションãŒã‚ã‚Šã¾ã›ã‚“: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "無効㪠numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "無効㪠numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2339,35 +2393,35 @@ msgstr "変更ã•ã‚ŒãŸè¨­å®š"
msgid "extensions changed"
msgstr "変更ã•ã‚ŒãŸæ‹¡å¼µ"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "ビルド環境ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒæœ€æ–°ã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "ソースディレクトリãŒå¤‰æ›´ã•ã‚Œã¾ã—ãŸ"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "ã“ã®ç’°å¢ƒã¯é¸æŠžã—ãŸãƒ“ルダーã¨äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“。別㮠doctree ディレクトリーをé¸æŠžã—ã¦ãã ã•ã„。"
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "%s ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’スキャンã§ãã¾ã›ã‚“ã§ã—ãŸ: %r "
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "ドメイン %r ã¯ã¾ã ç™»éŒ²ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "ドキュメントã¯ã©ã® toctree ã«ã‚‚å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "自己å‚ç…§ã—ã¦ã„ã‚‹ toctree ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚無視ã—ã¾ã™ã€‚"
@@ -2391,39 +2445,39 @@ msgstr "ä¸æ˜Žãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚¨ãƒ³ãƒˆãƒªã‚¿ã‚¤ãƒ— %r"
msgid "Symbols"
msgstr "記å·"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "循環å‚ç…§ã—ã¦ã„ã‚‹ toctree ãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸã®ã§ç„¡è¦–ã—ã¾ã™: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree ã«ã¯ã‚¿ã‚¤ãƒˆãƒ«ã®ãªã„ドキュメント %r ã¸ã®å‚ç…§ãŒå«ã¾ã‚Œã¦ã„ã¾ã™: リンクã¯ç”Ÿæˆã•ã‚Œã¾ã›ã‚“"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ«ãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "ç”»åƒãƒ•ã‚¡ã‚¤ãƒ« %s ãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "ダウンロードファイルãŒèª­ã¿è¾¼ã‚ã¾ã›ã‚“: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s ã¯ã™ã§ã«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ç•ªå·ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ (入れå­ã«ãªã£ãŸç•ªå·ã® toctree ?)"
@@ -2433,7 +2487,7 @@ msgstr "%s ã¯ã™ã§ã«ã‚»ã‚¯ã‚·ãƒ§ãƒ³ç•ªå·ãŒå‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã™ (å
msgid "Would create file %s."
msgstr "ファイル %s を作æˆã—ãŸã‚‚ã®ã¨ã—ã¾ã™ã€‚"
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2445,149 +2499,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\n<MODULE_PATH> 内をå†å¸°çš„ã«èª¿ã¹ã¦Python ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¨ãƒ‘ッケージã€\n後ã¯1ã¤ã®reST ファイルを <OUTPUT_PATH> 内ã«ã‚るパッケージ毎㮠automodule ディレクティブã«ä½œæˆã—ã¾ã™ã€‚\n\n<EXCLUDE_PATTERN> ã¯ã€ãƒ•ã‚¡ã‚¤ãƒ«ã€ã¾ãŸã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ã¾ãŸã¯ä¸¡æ–¹ã®ãƒ‘ターンを\n生æˆå‡¦ç†ã‹ã‚‰é™¤å¤–ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\n\n注:デフォルトã§ã¯ã€ã“ã®ã‚¹ã‚¯ãƒªãƒ—トã¯ã™ã§ã«ä½œæˆã•ã‚Œã¦ã„るファイルを上書ãã—ã¾ã›ã‚“。"
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "ドキュメントã¸ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ‘ス"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "生æˆå‡¦ç†ã‹ã‚‰é™¤å¤–ã™ã‚‹ãŸã‚ã®ã€ãƒ•ã‚¡ã‚¤ãƒ«ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ã¾ãŸã¯ä¸¡æ–¹ã®ãƒ‘ターンを記ã—㟠fnmatch-style å½¢å¼"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "ã™ã¹ã¦ã®ç”Ÿæˆãƒ‡ãƒ¼ã‚¿ã‚’é…ç½®ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "目次ã«è¡¨ç¤ºã™ã‚‹ã‚µãƒ–モジュールã®æœ€å¤§æ·±åº¦ (デフォルト: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "存在ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã¯ä¸Šæ›¸ãã™ã‚‹"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "シンボリックリンクをãŸã©ã‚Šã¾ã™ã€‚collective.recipe.omeletteã¨çµ„ã¿åˆã‚ã›ã‚‹ã¨å¼·åŠ›ã§ã™ã€‚"
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "ファイルを作æˆã›ãšã«ã‚¹ã‚¯ãƒªãƒ—トを実行ã™ã‚‹"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "å„モジュールã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ãã‚Œãžã‚Œã®ãƒšãƒ¼ã‚¸ã«é…ç½®ã™ã‚‹"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "\"_private\" モジュールをå«ã‚ã¾ã™ã€‚"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "目次ã®ãƒ•ã‚¡ã‚¤ãƒ«å (デフォルト: モジュール)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "目次ファイルを生æˆã—ãªã„"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "module/package パッケージã®è¦‹å‡ºã—を生æˆã—ãªã„ (例: docstring ã«ã™ã§ã«ãれらãŒå«ã¾ã‚Œã¦ã„ã‚‹å ´åˆãªã©)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "サブモジュールã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®å‰ã«ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’ç½®ã"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "PEP-0420 æš—é»™ã®åå‰ç©ºé–“ã®æŒ‡å®šã«å¾“ã£ã¦ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãƒ‘スを解釈ã™ã‚‹"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "ファイルã®æ‹¡å¼µå­ (デフォルト: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "sphinx-quickstart を使ã£ã¦å®Œå…¨ãªãƒ—ロジェクトを生æˆã™ã‚‹"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "module_pathã‚’ sys.path ã«è¿½åŠ ã—ã¾ã™ã€‚--full ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ãã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "プロジェクトå (デフォルト: ルートモジュールå)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "プロジェクト著者å(複数å¯)。--full ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ãã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "プロジェクトãƒãƒ¼ã‚¸ãƒ§ãƒ³ã€‚--full ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ãã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "プロジェクトã®ãƒªãƒªãƒ¼ã‚¹ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã€‚--full ãŒä¸Žãˆã‚‰ã‚ŒãŸã¨ãã«ä½¿ç”¨ã•ã‚Œã¾ã™ã€‚デフォルト㯠--doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "拡張オプション"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s ã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“。"
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "無効ãªæ­£è¦è¡¨ç¾ %r ㌠%s 内ã«è¦‹ã¤ã‹ã‚Šã¾ã—ãŸ"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "ソース内ã®ã‚«ãƒãƒ¬ãƒƒã‚¸ã®ãƒ†ã‚¹ãƒˆãŒçµ‚了ã—ãŸã‚‰ã€%(outdir)spython.txt ã®çµæžœã‚’確èªã—ã¦ãã ã•ã„。"
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "coverage_c_regexes 内ã«ç„¡åŠ¹ãªæ­£è¦è¡¨ç¾ %r ãŒã‚ã‚Šã¾ã™"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "モジュール %s をインãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸ: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2611,24 +2665,24 @@ msgstr "'%s' ã¯æ­£ã—ã„ pyversion オプションã§ã¯ã‚ã‚Šã¾ã›ã‚“"
msgid "invalid TestCode type"
msgstr "無効㪠TestCode タイプ"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "ソース内㮠doctests ã®ãƒ†ã‚¹ãƒˆãŒçµ‚了ã—ãŸã‚‰ã€%(outdir)s/output.txt ã®çµæžœã‚’確èªã—ã¦ãã ã•ã„。"
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "%sブロックã«ã‚るコード/出力 ㌠%s ã«ã‚ã‚Šã¾ã›ã‚“: %s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "無効㪠doctest コードã¯ç„¡è¦–ã•ã‚Œã¾ã™: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== 最もé…ã„読ã¿å–り時間 ======================="
@@ -2639,32 +2693,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "ãƒãƒ¼ãƒ‰ã‚³ãƒ¼ãƒ‰ã•ã‚ŒãŸãƒªãƒ³ã‚¯ %r 㯠拡張リンクã«ç½®ãæ›ãˆã‚‰ã‚Œã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ (代ã‚ã‚Šã« %r を使用ã—ã¦ã¿ã¦ãã ã•ã„)。"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz ディレクティブã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã¨ãƒ•ã‚¡ã‚¤ãƒ«åã®ä¸¡æ–¹ã®å¼•æ•°ã‚’æŒã¤ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "外部㮠Graphviz ファイル %r ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã‹èª­ã¿è¾¼ã‚ã¾ã›ã‚“"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "コンテンツã®ãªã„ \"graphviz\" ディレクティブを無視ã—ã¾ã™"
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot コマンド %r ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“ (graphviz 出力ã®ãŸã‚ã«å¿…è¦ã§ã™)。graphviz_dot ã®è¨­å®šã‚’確èªã—ã¦ãã ã•ã„"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2674,7 +2728,7 @@ msgid ""
"%r"
msgstr "dot ã¯ã‚¨ãƒ©ãƒ¼çµ‚了ã—ã¾ã—ãŸ:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2684,27 +2738,27 @@ msgid ""
"%r"
msgstr "dotã¯å‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«ã‚’生æˆã—ã¾ã›ã‚“ã§ã—ãŸ:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format 㯠%r ã§ã¯ãªã 'png' ã‹ 'svg' ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "dot コード %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[グラフ: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[グラフ]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2712,7 +2766,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2722,173 +2776,178 @@ msgid ""
"%r"
msgstr "変æ›å‡¦ç†ã¯ã‚¨ãƒ©ãƒ¼çµ‚了ã—ã¾ã—ãŸ:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "convert コマンド %r ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。image_converter ã®è¨­å®šã‚’確èªã—ã¦ãã ã•ã„"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "LaTeX コマンド %r を実行ã§ãã¾ã›ã‚“ (æ•°å¼è¡¨ç¤ºã®ãŸã‚ã«å¿…è¦ã§ã™)。imgmath_latex ã®è¨­å®šã‚’確èªã—ã¦ãã ã•ã„"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s コマンド %r を実行ã§ãã¾ã›ã‚“ (æ•°å¼è¡¨ç¤ºã®ãŸã‚ã«å¿…è¦ã§ã™)。imgmath_%s ã®è¨­å®šã‚’確èªã—ã¦ãã ã•ã„"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "latex ã®è¡¨ç¤º %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "latex ã®ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³è¡¨ç¤º %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "intersphinx インベントリã¯ç§»å‹•ã—ã¾ã—ãŸ: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "%s ã‹ã‚‰ intersphinx インベントリをロード中..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "ã„ãã¤ã‹ã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã§ã„ãã¤ã‹ã®å•é¡Œã«é­é‡ã—ã¾ã—ãŸãŒã€ä»£æ›¿æ‰‹æ®µã‚’æŒã£ã¦ã„ã¾ã—ãŸ:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "以下ã®å•é¡ŒãŒã‚ã‚‹ãŸã‚ã€ã„ãã¤ã‹ã®ã‚¤ãƒ³ãƒ™ãƒ³ãƒˆãƒªã¯åˆ°é”ã§ãã¾ã›ã‚“ã§ã—ãŸ:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(in %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(in %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "intersphinx è­˜åˆ¥å­ %r ã¯æ–‡å­—列ã§ã¯ã‚ã‚Šã¾ã›ã‚“。無視ã—ã¾ã™"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "intersphinx_mapping [%s] ã®èª­ã¿å–ã‚Šã«å¤±æ•—ã—ã¾ã—ãŸã€‚無視ã—ã¾ã™: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[ソース]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "課題"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "TODO エントリーãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> ã¯ã€ %s ã® %d 行目ã§ã™)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "å…ƒã®ã‚¨ãƒ³ãƒˆãƒª"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "モジュールコードをãƒã‚¤ãƒ©ã‚¤ãƒˆã—ã¦ã„ã¾ã™..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[ドキュメント]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "モジュールコード"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "概è¦: モジュールコード"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>全モジュールã®ã†ã¡ã€ã‚³ãƒ¼ãƒ‰ã‚’読ã‚ã‚‹ã‚‚ã®</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "member-order オプションã«ç„¡åŠ¹ãªå€¤ãŒã‚ã‚Šã¾ã™: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "class-doc-from オプションã«ç„¡åŠ¹ãªå€¤ãŒã‚ã‚Šã¾ã™: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "auto%s (%r) ã®ç½²åãŒç„¡åŠ¹ã§ã™"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "%sã®å¼•æ•°ã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆä¸­ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s "
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2896,112 +2955,112 @@ msgid ""
"explicit module name)"
msgstr "ドキュメントã®è‡ªå‹•ç”Ÿæˆ %r ã®ãŸã‚ã«ã©ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’インãƒãƒ¼ãƒˆã™ã‚‹ã®ã‹åˆ†ã‹ã‚Šã¾ã›ã‚“ (ドキュメント㫠\"module\"ã¾ãŸã¯ \"currentmodule\"ディレクティブをé…ç½®ã™ã‚‹ã‹ã€æ˜Žç¤ºçš„ãªãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«åを指定ã—ã¦ãã ã•ã„)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "モックオブジェクトãŒæ¤œå‡ºã•ã‚Œã¾ã—ãŸ: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "%s ã®ã‚·ã‚°ãƒãƒãƒ£ã‚’フォーマット中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "automodule åã® \"::\" ã¯æ„味ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "automodule ã«ä¸Žãˆã‚‰ã‚ŒãŸç½²å引数ã€ã¾ãŸã¯æˆ»ã‚Šå€¤ã¨ãªã‚‹ã‚¢ãƒŽãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ ã¯æ–‡å­—列ã®ãƒªã‚¹ãƒˆã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“。%r (%s モジュールã®ä¸­) ã§ã¯ãªã„ã§ã™ -- ignoring __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "members: オプションã§æŒ‡å®šã•ã‚ŒãŸå±žæ€§ãŒã‚ã‚Šã¾ã›ã‚“: モジュール %sã€å±žæ€§ %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "%s ã®é–¢æ•°ã‚·ã‚°ãƒãƒãƒ£ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "%s ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ç½²åã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "ベースクラス: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "オブジェクト %s ã«å±žæ€§ %s ãŒã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "%sã®åˆ¥åã§ã™ã€‚"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "TypeVar(%s)ã®ã‚¨ã‚¤ãƒªã‚¢ã‚¹ã§ã™ã€‚"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "%s ã®ãƒ¡ã‚½ãƒƒãƒ‰ãƒ»ã‚·ã‚°ãƒãƒãƒ£ã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸ: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "無効㪠__slots__ ㌠%s ã§è¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚無視ã•ã‚Œã¾ã—ãŸã€‚"
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "%r ã®æ—¢å®šã®å¼•æ•°å€¤ã®è§£æžã«å¤±æ•—ã—ã¾ã—ãŸ: %s。"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "%r ã®ã‚·ã‚°ãƒãƒãƒ£ã®æ›´æ–°ã«å¤±æ•—ã—ã¾ã—ãŸ: パラメータãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s。"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "%rã®type_commentを解æžã§ãã¾ã›ã‚“ã§ã—ãŸ: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "autosummary ã¯é™¤å¤–ã—ãŸãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆ %r ã‚’å‚ç…§ã—ã¦ã„ã¾ã™ã€‚無視ã•ã‚Œã¾ã™ã€‚"
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: stubファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“%r。autosummary_generate設定を確èªã—ã¦ãã ã•ã„。"
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "キャプション付ãオートサマリーã«ã¯ :toctree: オプションãŒå¿…è¦ã§ã™ã€‚"
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -3009,26 +3068,26 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "%sã®åå‰ã‚’解æžã§ãã¾ã›ã‚“ã§ã—㟠"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "%sオブジェクトをインãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—㟠"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary ã¯å†…部的㫠rst ファイルを生æˆã—ã¾ã™ã€‚ã—ã‹ã—ã‚ãªãŸã® source_suffix 㯠rst ファイルã«å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“ã§ã—ãŸã€‚スキップã—ã¾ã™ã€‚"
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3101,99 +3160,99 @@ msgid ""
"%(default)s)"
msgstr "モジュール __all__ 属性ã«å«ã¾ã‚Œã‚‹ãƒ¡ãƒ³ãƒãƒ¼ã®ã¿ã‚’対象ã¨ã—ãŸãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’作æˆã—ã¾ã™ã€‚(デフォルト: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "キーワード引数"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "サンプル"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "サンプル"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "メモ"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "ãã®ä»–ã®ãƒ‘ラメータ"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "å—ã‘å–ã‚‹"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "å‚ç…§"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "警告"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "列挙"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "無効ãªå€¤ã‚»ãƒƒãƒˆ (終了括弧ãŒã‚ã‚Šã¾ã›ã‚“): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "無効ãªå€¤ã‚»ãƒƒãƒˆ (開始括弧ãŒã‚ã‚Šã¾ã›ã‚“): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "ä¸æ­£ãªæ–‡å­—列リテラル (終了引用符ãŒã‚ã‚Šã¾ã›ã‚“): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "ä¸æ­£ãªæ–‡å­—列リテラル (開始引用符ãŒã‚ã‚Šã¾ã›ã‚“): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "注æ„"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "注æ„"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "å±é™º"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "エラー"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "ヒント"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "é‡è¦"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "注釈"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "å‚考"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "警告"
@@ -3225,7 +3284,7 @@ msgid "Table of Contents"
msgstr "目次"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "検索"
@@ -3358,34 +3417,22 @@ msgstr "次ã®ãƒˆãƒ”ックã¸"
msgid "next chapter"
msgstr "次ã®ç« ã¸"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "検索機能を使ã†ã«ã¯ JavaScript を有効ã«ã—ã¦ãã ã•ã„。"
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "複数ã®å˜èªžã‚’検索ã™ã‚‹ã¨ã€æ¬¡ã‚’å«ã‚€ä¸€è‡´ã®ã¿ãŒè¡¨ç¤ºã•ã‚Œã¾ã™\n     ã™ã¹ã¦ã®ç”¨èªžã€‚"
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "検索"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "検索çµæžœ"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "検索ã—ãŸæ–‡å­—列ã¯ã©ã®æ–‡æ›¸ã«ã‚‚見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ã™ã¹ã¦ã®å˜èªžãŒæ­£ç¢ºã«è¨˜è¿°ã•ã‚Œã¦ã„ã‚‹ã‹ã€ã‚ã‚‹ã„ã¯ã€å分ãªã‚«ãƒ†ã‚´ãƒªãƒ¼ãŒé¸æŠžã•ã‚Œã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„。"
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "クイック検索"
@@ -3422,20 +3469,30 @@ msgstr "C API ã«é–¢ã™ã‚‹å¤‰æ›´"
msgid "Other changes"
msgstr "ãã®ä»–ã®å¤‰æ›´"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "検索çµæžœ"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "検索ã—ãŸæ–‡å­—列ã¯ã©ã®æ–‡æ›¸ã«ã‚‚見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ã™ã¹ã¦ã®å˜èªžãŒæ­£ç¢ºã«è¨˜è¿°ã•ã‚Œã¦ã„ã‚‹ã‹ã€ã‚ã‚‹ã„ã¯ã€å分ãªã‚«ãƒ†ã‚´ãƒªãƒ¼ãŒé¸æŠžã•ã‚Œã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„。"
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "検索中"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "検索を準備ã—ã¦ã„ã¾ã™..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", in "
@@ -3456,30 +3513,30 @@ msgstr "サイドãƒãƒ¼ã‚’展開"
msgid "Contents"
msgstr "コンテンツ"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "4列ベースã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚ã‚ãªãŸãŒä½¿ã£ã¦ã„ã‚‹æ‹¡å¼µå­ã®ãƒã‚°ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Footnote [%s] ã¯å‚ç…§ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Footnote [#] ã¯å‚ç…§ã•ã‚Œã¦ã„ã¾ã›ã‚“。"
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3491,13 +3548,13 @@ msgid ""
"{1}"
msgstr "翻訳ã•ã‚ŒãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å‚ç…§ãŒçŸ›ç›¾ã—ã¦ã„ã¾ã™ã€‚原文: {0}ã€ç¿»è¨³: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "翻訳ã•ã‚ŒãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å¼•ç”¨å‚ç…§ãŒçŸ›ç›¾ã—ã¦ã„ã¾ã™ã€‚原文: {0}ã€ç¿»è¨³: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3524,90 +3581,90 @@ msgstr "%s:%s å‚照先ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
msgid "%r reference target not found: %s"
msgstr "%r å‚照先ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "リモート画åƒã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "リモート画åƒã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸ: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "ä¸æ˜Žãªç”»åƒãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆ: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "デコードã§ããªã„ソース文字ã§ã™ã€‚\"?\" ã«ç½®ãæ›ãˆã¾ã™: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "スキップã—ã¾ã—ãŸ"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "失敗ã—ã¾ã—ãŸ"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "ä¸æ˜Žãªãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ã¾ãŸã¯ãƒ­ãƒ¼ãƒ«å: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "ä¸æ˜ŽãªãƒŽãƒ¼ãƒ‰ã‚¿ã‚¤ãƒ—: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "読ã¿å–りエラー: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "書ãè¾¼ã¿ã‚¨ãƒ©ãƒ¼: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "日付形å¼ãŒç„¡åŠ¹ã§ã™ã€‚直接出力ã—ãŸã„å ´åˆã¯ã€æ–‡å­—列を一é‡å¼•ç”¨ç¬¦ã§å›²ã¿ã¾ã™: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctree ã«å­˜åœ¨ã—ãªã„ファイルã¸ã®å‚ç…§ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "only ディレクティブã®æ¡ä»¶å¼ã®è©•ä¾¡ä¸­ã«ä¾‹å¤–ãŒç™ºç”Ÿã—ã¾ã—ãŸ: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "デフォルトã®ãƒ­ãƒ¼ãƒ« %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
@@ -3630,27 +3687,27 @@ msgstr "ã„ãã¤ã‹ã® ID ㌠%s ノードã«å‰²ã‚Šå½“ã¦ã‚‰ã‚Œã¦ã„ã¾ã›ã‚“"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "ç”»åƒã‚µã‚¤ã‚ºã‚’å–å¾—ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚:scale: オプションã¯ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
@@ -3667,13 +3724,13 @@ msgstr ":maxdepth: ãŒå¤§ãã™ãŽã‚‹ã®ã§ç„¡è¦–ã•ã‚Œã¾ã™ã€‚"
msgid "document title is not a single Text node"
msgstr "ドキュメントã®ã‚¿ã‚¤ãƒˆãƒ«ã¯ã€å˜ä¸€ã® Text ノードã§ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "セクションã€ãƒˆãƒ”ックã€è¡¨ã€è¨“戒ã¾ãŸã¯ã‚µã‚¤ãƒ‰ãƒãƒ¼ã«ãªã„タイトルノードãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸã€‚"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "注記"
@@ -3692,20 +3749,20 @@ msgstr "ディメンションå˜ä½ %s ãŒç„¡åŠ¹ã§ã™ã€‚無視ã•ã‚Œã¾ã™ã€‚"
msgid "unknown index entry type %s found"
msgstr "ä¸æ˜Žãªã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚¨ãƒ³ãƒˆãƒªã‚¿ã‚¤ãƒ— %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã—ãŸ"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[ç”»åƒ: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[ç”»åƒ]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "キャプションã¯å›³ã®ä¸­ã«ã¯ã‚ã‚Šã¾ã›ã‚“。"
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "未実装ã®ãƒŽãƒ¼ãƒ‰ã‚¿ã‚¤ãƒ—: %r"
diff --git a/sphinx/locale/ka/LC_MESSAGES/sphinx.mo b/sphinx/locale/ka/LC_MESSAGES/sphinx.mo
index 4c3c429..a568e60 100644
--- a/sphinx/locale/ka/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ka/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ka/LC_MESSAGES/sphinx.po b/sphinx/locale/ka/LC_MESSAGES/sphinx.po
index 5c1c52d..10f4fe8 100644
--- a/sphinx/locale/ka/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ka/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Georgian (http://app.transifex.com/sphinx-doc/sphinx-1/language/ka/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ka\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
@@ -37,104 +37,104 @@ msgstr "სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ დრსáƒáƒ›áƒ˜áƒ–ნე სáƒáƒ¥áƒáƒ¦áƒáƒš
msgid "Running Sphinx v%s"
msgstr "გáƒáƒ¨áƒ•áƒ”ბულირSphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "პრáƒáƒ”ქტს Sphinx-ის მინიმáƒáƒšáƒ£áƒ áƒ˜ v%s სჭირდებრდრáƒáƒ›áƒ˜áƒ¢áƒáƒ› áƒáƒ› ვერსიით ვერ áƒáƒ˜áƒ’ებáƒ."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის შექმნáƒ"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის %s მáƒáƒ áƒ’ებისáƒáƒ¡:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup', რáƒáƒ’áƒáƒ áƒª ის conf.py-შირáƒáƒ›áƒŸáƒáƒ›áƒáƒ“ áƒáƒ¦áƒ¬áƒ”რილი, Python-ის მიერ გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბáƒáƒ“ი áƒáƒ áƒáƒ. შეცვáƒáƒšáƒ”თ áƒáƒ¦áƒ¬áƒ”რáƒ, რáƒáƒ—რის გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბáƒáƒ“ი ფუნქცირგáƒáƒ®áƒ“ეს. ეს სáƒáƒ­áƒ˜áƒ áƒáƒ, რáƒáƒ—რconf.py-ი, რáƒáƒ’áƒáƒ áƒª Sphinx-ის გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბáƒ, მáƒáƒ˜áƒ¥áƒªáƒ”ს."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "თáƒáƒ áƒ’მáƒáƒœáƒ”ბის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვრ[%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "შესრულებულიáƒ"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "ჩáƒáƒ¨áƒ”ნებული შეტყáƒáƒ‘ინებებისთვის ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜ áƒáƒ áƒáƒ"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "დáƒáƒ›áƒŸáƒáƒ•áƒ”ბული გáƒáƒ áƒ”მáƒáƒ¡ ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვáƒ"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "შეცდáƒáƒ›áƒ˜áƒ—: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "áƒáƒ›áƒ’ები áƒáƒ áƒ©áƒ”ული áƒáƒ áƒáƒ. ვიყენებ ნáƒáƒ’ულისხმევს: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "წáƒáƒ áƒ›áƒáƒ¢áƒ”ბული"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "დáƒáƒ¡áƒ áƒ£áƒšáƒ“რპრáƒáƒ‘ლემებით"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "áƒáƒ’ებრ%s, %s გáƒáƒ¤áƒ áƒ—ხილებრ(გáƒáƒ¤áƒ áƒ—ხილებები áƒáƒ¦áƒ¥áƒ›áƒ£áƒšáƒ˜ იქნებáƒ, რáƒáƒ’áƒáƒ áƒª შეცდáƒáƒ›áƒ”ბი)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "%s-ის áƒáƒ’ებáƒ, %s გáƒáƒ¤áƒ áƒ—ხილებáƒ."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "%s-ის áƒáƒ’ებáƒ, %s გáƒáƒ¤áƒ áƒ—ხილებáƒ."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "%s-ის áƒáƒ’ებáƒ."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "კვáƒáƒœáƒ«áƒ˜áƒ¡ კლáƒáƒ¡áƒ˜ %r უკვე რეგისტრირებულიáƒ. მისი მნáƒáƒ®áƒ•áƒ”ლები გáƒáƒ“áƒáƒ¤áƒáƒ áƒ£áƒšáƒ˜ იქნებáƒ"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "დირექტივრ%r უკვე რეგისტრირებულიáƒ. ის გáƒáƒ“áƒáƒ¤áƒáƒ áƒ£áƒšáƒ˜ იქნებáƒ"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "რáƒáƒšáƒ˜ %r უკვე რეგისტრირებულიáƒ. ის გáƒáƒ“áƒáƒ¤áƒáƒ áƒ£áƒšáƒ˜ იქნებáƒ"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრ%s áƒáƒ  áƒáƒ¦áƒ¬áƒ”რს, áƒáƒ áƒ˜áƒ¡ თუ áƒáƒ áƒ ის უსáƒáƒ¤áƒ áƒ—ხრპáƒáƒ áƒáƒšáƒ”ლური წáƒáƒ™áƒ˜áƒ—ხვისთვის. ვთვლით, რáƒáƒ› áƒáƒ áƒ - კითხეთ გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის áƒáƒ•áƒ¢áƒáƒ áƒ¡ დრáƒáƒ¨áƒ™áƒáƒ áƒáƒ“ áƒáƒ¦áƒ¬áƒ”რეთ ის"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "%s გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრპáƒáƒ áƒáƒšáƒ”ლური წáƒáƒ™áƒ˜áƒ—ხვისთვის უსáƒáƒ¤áƒ áƒ—ხრáƒáƒ áƒáƒ"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრ%s áƒáƒ  áƒáƒ¦áƒ¬áƒ”რს, áƒáƒ áƒ˜áƒ¡ თუ áƒáƒ áƒ ის უსáƒáƒ¤áƒ áƒ—ხრპáƒáƒ áƒáƒšáƒ”ლური ჩáƒáƒ¬áƒ”რისთვის. ვთვლით, რáƒáƒ› áƒáƒ áƒ - კითხეთ გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის áƒáƒ•áƒ¢áƒáƒ áƒ¡ დრáƒáƒ¨áƒ™áƒáƒ áƒáƒ“ áƒáƒ¦áƒ¬áƒ”რეთ ის"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "%s გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრპáƒáƒ áƒáƒšáƒ”ლური ჩáƒáƒ¬áƒ”რისთვის უსáƒáƒ¤áƒ áƒ—ხრáƒáƒ áƒáƒ"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "ვáƒáƒ™áƒ”თებ სერიულს %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე ფáƒáƒ˜áƒšáƒ¡ conf.py áƒáƒ  შეიცáƒáƒ•áƒ¡ (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირáƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘áƒ: 'language = None'. გáƒáƒœáƒáƒáƒ®áƒšáƒ”თ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ დრმიუთითეთ სწáƒáƒ áƒ˜ ენáƒ. გáƒáƒ“áƒáƒ˜áƒ áƒ—ვებრ'en'-ზე (ინგლისური)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "ლექსიკáƒáƒœáƒ˜áƒ¡ კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრის %r გáƒáƒ“áƒáƒ¤áƒáƒ áƒ•áƒ შეუძლებელიáƒ. ის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებრ(ინდივიდუáƒáƒšáƒ£áƒ áƒ˜ ელემენტების დáƒáƒ¡áƒáƒ§áƒ”ნებლáƒáƒ“ გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნეთ %r)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "რიცხვი %r კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘ისთვის %r áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ. ის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი ტიპის მქáƒáƒœáƒ” კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრის %r გáƒáƒ“áƒáƒ¤áƒáƒ áƒ•áƒ შეუძლებელიáƒ. ის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "გáƒáƒ“áƒáƒ¤áƒáƒ áƒ•áƒáƒ¨áƒ˜ მითითებული კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ%r უცნáƒáƒ‘იáƒ. ის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "áƒáƒ¡áƒ”თი კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რáƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ%r უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "თქვენს კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ¨áƒ˜ áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირშეცდáƒáƒ›áƒ: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "კáƒáƒœáƒ¤áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ›áƒ (áƒáƒœ მáƒáƒ“ულმáƒ, რáƒáƒ›áƒ”ლის მáƒáƒœ შემáƒáƒ˜áƒ¢áƒáƒœáƒ) sys.exit() გáƒáƒ›áƒáƒ˜áƒ«áƒáƒ®áƒ"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,291 +231,328 @@ msgid ""
"%s"
msgstr "თქვენს კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ¨áƒ˜ პრáƒáƒ’რáƒáƒ›áƒ˜áƒ áƒ”ბáƒáƒ“ი შეცდáƒáƒ›áƒáƒ:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘áƒáƒ¡ 'source_suffix' სტრიქáƒáƒœáƒ¡, სტრიქáƒáƒœáƒ”ბის სიáƒáƒ¡ áƒáƒœ ლექსიკáƒáƒœáƒ¡ ელáƒáƒ“ებáƒ. თქვენ კი '%r' მიუთითეთ."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "სექცირ%s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "ნáƒáƒ®. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "ცხრილი %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜ %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ`{name}` შეიძლებრიყáƒáƒ¡ ერთ-ერთ სიიდáƒáƒœ `{candidates}`, თქვენ კი `{current}` მიუთითეთ."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘ის `{name}` ტიპირ`{current.__name__}`, მე კი {permitted}-ს ველáƒáƒ“ებáƒáƒ“ი."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘ის `{name}` ტიპირ`{current.__name__}`, ნáƒáƒ’ულისხმებირ`{default.__name__}`."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r ვერ ვიპáƒáƒ•áƒ”. ის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Sphinx v2.0-ის შემდეგ root_doc-ს ნáƒáƒ’ულისხმევáƒáƒ“ \"index\"-ს იყენებს. დáƒáƒáƒ›áƒáƒ¢áƒ”თ თქვენს conf.py-ში 'root_doc = 'contents'\"."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "მáƒáƒ•áƒšáƒ”ნრ%r უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "უცნáƒáƒ‘ი მáƒáƒ•áƒšáƒ”ნის სáƒáƒ®áƒ”ლი: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბელმრ%r მáƒáƒ•áƒšáƒ”ნისთვის %r გáƒáƒ›áƒáƒœáƒáƒ™áƒšáƒ˜áƒ¡áƒ˜ გáƒáƒ“მáƒáƒ’ვცáƒ"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "%s გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრსáƒáƒ­áƒ˜áƒ áƒáƒ needs_extensons პáƒáƒ áƒáƒ›áƒ”ტრის მიერ, მáƒáƒ’რáƒáƒ› ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ული áƒáƒ áƒáƒ."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "პრáƒáƒ”ქტს გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის %s ვერსირმინიმუმ %s სჭირდებრდრáƒáƒ›áƒ˜áƒ¢áƒáƒ› ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ული ვერსიით (%s) áƒáƒ’ებული ვერ იქნებáƒ."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments lexer-ის სáƒáƒ®áƒ”ლი %r უცნáƒáƒ‘იáƒ"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტისთვის \"%s\" áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირერთზე მეტი ფáƒáƒ˜áƒšáƒ˜: %r\náƒáƒ¡áƒáƒ’ებáƒáƒ“ გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნეთ %r."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "áƒáƒ›áƒ’ებ კლáƒáƒ¡áƒ¡ %s \"name\" áƒáƒ¢áƒ áƒ˜áƒ‘უტი áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "áƒáƒ›áƒ’ები %r უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს (მáƒáƒ“ულში %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "áƒáƒ›áƒ’ების სáƒáƒ®áƒ”ლი %s რეგისტრირებული áƒáƒ áƒáƒ áƒáƒœ შესვლის წერტილში ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜ áƒáƒ áƒáƒ"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "áƒáƒ›áƒ’ების სáƒáƒ®áƒ”ლი %s რეგისტრირებული áƒáƒ áƒáƒ"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "დáƒáƒ›áƒ”ნი %s უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "დáƒáƒ›áƒ”ნის %s ჯერ რეგისტრირებული áƒáƒ áƒáƒ"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "%r დირექტივრდáƒáƒ›áƒ”ნისთვის %s უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "%r რáƒáƒšáƒ˜ დáƒáƒ›áƒ”ნისთვის %s უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "%r ინდექსი დáƒáƒ›áƒ”ნისთვის %s უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "%r áƒáƒ‘იექტის ტიპი უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "%r ჯვáƒáƒ áƒ”დინი მიმáƒáƒ áƒ—ვის ტიპი უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser %r-სთვის უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "წყáƒáƒ áƒáƒ¡ დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბელი %s-სთვის რეგისტრირებული áƒáƒ áƒáƒ"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "მთáƒáƒ áƒ’მნელი %r-სთვის უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwarg-ები add_node()-სთვის (შემáƒáƒ›áƒáƒ•áƒáƒšáƒ˜, გáƒáƒ›áƒáƒ•áƒáƒšáƒ˜) ფუნქციის კáƒáƒ áƒ¢áƒ”ჟი უნდრიყáƒáƒ¡: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "მáƒáƒ—ემáƒáƒ¢áƒ˜áƒ™áƒ˜áƒ¡ რენდერერი %s უკვე რეგისტრირებულიáƒ"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრ%r %s ვერსიის შემდეგ Sphinx-ის ნáƒáƒ¬áƒ˜áƒšáƒ˜áƒ. გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბრგáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ გáƒáƒ›áƒáƒœáƒáƒ™áƒšáƒ˜áƒ¡áƒ˜:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის (%s) შემáƒáƒ¢áƒáƒœáƒ შეუძლებელიáƒ"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბáƒáƒ¡ %r ფუნქცირsetup() áƒáƒ  áƒáƒ¥áƒ•áƒ¡. დáƒáƒ áƒ¬áƒ›áƒ£áƒœáƒ”ბული ბრძáƒáƒœáƒ“ებით, რáƒáƒ› ეს ნáƒáƒ›áƒ“ვილáƒáƒ“ Sphinx-ის გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის მáƒáƒ“ულიáƒ?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "áƒáƒ› პრáƒáƒ”ქტში გáƒáƒ›áƒáƒ§áƒ”ნებულ გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბáƒáƒ¡ %s Sphinx-ის მინიმუმ v%s სჭირდებáƒ. áƒáƒ›áƒ˜áƒ¢áƒáƒ› მáƒáƒ¡ áƒáƒ› ვერსიით ვერ áƒáƒáƒ’ებთ."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბáƒáƒ› %r setup() ფუნქციიდáƒáƒœ მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი áƒáƒ‘იექტი დáƒáƒáƒ‘რუნáƒ. მáƒáƒœ áƒáƒœ áƒáƒ áƒáƒ¤áƒ”რი, áƒáƒœ მეტáƒáƒ›áƒáƒœáƒáƒªáƒ”მების ლექსიკáƒáƒœáƒ˜ უნდრდáƒáƒáƒ‘რუნáƒáƒ¡"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ áƒ”ბის შეთáƒáƒ•áƒáƒ–ებები; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ PEP ნáƒáƒ›áƒ”რი %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ RFC ნáƒáƒ›áƒ”რი %s"
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "თემáƒáƒ¡ %r პáƒáƒ áƒáƒ›áƒ”ტრი \"theme\" áƒáƒ  áƒáƒ¥áƒ•áƒ¡"
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრი %s.%s თემის კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ”ბში áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილი áƒáƒ áƒáƒ"
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "თემáƒáƒ¡ %r პáƒáƒ áƒáƒ›áƒ”ტრი \"inherit\" áƒáƒ  áƒáƒ¥áƒ•áƒ¡"
+msgid "unsupported theme option %r given"
+msgstr "თემის პáƒáƒ áƒáƒ›áƒ”ტრი %r მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒáƒ"
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "თემრსáƒáƒ®áƒ”ლით %r ვერ ვიპáƒáƒ•áƒ”. მემკვიდრეáƒáƒ‘ით %r-სგáƒáƒœ"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
-msgstr "პáƒáƒ áƒáƒ›áƒ”ტრი %s.%s თემის კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ”ბში áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილი áƒáƒ áƒáƒ"
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
-msgstr "თემის პáƒáƒ áƒáƒ›áƒ”ტრი %r მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒáƒ"
+msgid "The %r theme has circular inheritance"
+msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "თემრსáƒáƒ®áƒ”ლáƒáƒ“ %r áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილი áƒáƒ áƒáƒ (theme.conf áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr "áƒáƒ’ებრ[mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ... "
@@ -576,7 +618,7 @@ msgstr "ბრძáƒáƒœáƒ”ბის სტრიქáƒáƒœáƒ¨áƒ˜ მითითá
msgid "targets for %d source files that are out of date"
msgstr "%d კáƒáƒ“ის ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ›áƒ˜áƒ–ნე მáƒáƒ«áƒ•áƒ”ლებულიáƒ"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "áƒáƒ’ებრ[%s]: "
@@ -585,50 +627,50 @@ msgstr "áƒáƒ’ებრ[%s]: "
msgid "looking for now-outdated files... "
msgstr "მáƒáƒ«áƒ•áƒ”ლებული ფáƒáƒ˜áƒšáƒ”ბის ძებნáƒ... "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "ნáƒáƒžáƒáƒ•áƒœáƒ˜áƒ %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "áƒáƒ áƒáƒ¤áƒ”რირნáƒáƒžáƒáƒ•áƒœáƒ˜"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "დáƒáƒ›áƒŸáƒáƒ•áƒ”ბის გáƒáƒ áƒ”მáƒ"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "თáƒáƒœáƒ›áƒ˜áƒ›áƒ“ევრულáƒáƒ‘ის შემáƒáƒ¬áƒ›áƒ”ბáƒ"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "მáƒáƒ«áƒ•áƒ”ლებული სáƒáƒ›áƒ˜áƒ–ნეები áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილი áƒáƒ áƒáƒ."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "გáƒáƒ áƒ”მáƒáƒ¡ გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s დáƒáƒ”მáƒáƒ¢áƒ, %s შეიცვáƒáƒšáƒ, %s წáƒáƒ˜áƒ¨áƒáƒšáƒ"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "წყáƒáƒ áƒáƒ”ბის კითხვáƒ... "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "ჩáƒáƒ¡áƒáƒ¬áƒ”რი დáƒáƒ™áƒ£áƒ›áƒ”ნტის სáƒáƒ®áƒ”ლები: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტების მáƒáƒ›áƒ–áƒáƒ“ებáƒ"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირდუბლირებული სáƒáƒ áƒ©áƒ”ვის ჩáƒáƒœáƒáƒ¬áƒ”რი: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბების კáƒáƒžáƒ˜áƒ áƒ”ბáƒ... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ˜áƒšáƒ˜ %r ვერ წáƒáƒ•áƒ˜áƒ™áƒ˜áƒ—ხე: ის, სáƒáƒ›áƒáƒ’იერáƒáƒ“, დáƒáƒ™áƒáƒžáƒ˜áƒ áƒ“ებáƒ"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ˜áƒšáƒ˜áƒ¡ %r კáƒáƒžáƒ˜áƒ áƒ”ბის შეცდáƒáƒ›áƒ: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ˜áƒšáƒ˜áƒ¡ %r ჩáƒáƒ¬áƒ”რის შეცდáƒáƒ›áƒ: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow ვერ ვიპáƒáƒ•áƒ” - სურáƒáƒ—ის ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "mimetype ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "მიმდინáƒáƒ áƒ”áƒáƒ‘ს META-INF/container.xml ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
@@ -674,470 +716,470 @@ msgstr "მიმდინáƒáƒ áƒ”áƒáƒ‘ს META-INF/container.xml ფáƒáƒ˜áƒš
msgid "writing content.opf file..."
msgstr "content.opf ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "უცნáƒáƒ‘ი mimetype ფáƒáƒ˜áƒšáƒ˜áƒ¡áƒ—ვის %s. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "toc.ncx ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "%s ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "გáƒáƒ“áƒáƒ®áƒ”დვის ფáƒáƒ˜áƒšáƒ˜áƒ¡ მდებáƒáƒ áƒ”áƒáƒ‘áƒáƒ %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "ვერსიáƒáƒ¨áƒ˜ %s ცვლილებები áƒáƒ áƒáƒ."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "შეჯáƒáƒ›áƒ”ბის ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "ჩáƒáƒ¨áƒ”ნებულები"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "მáƒáƒ“ულის დáƒáƒœáƒ”"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "კáƒáƒ“ის ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "ცვლილებების ჟურნáƒáƒšáƒ˜áƒ¡ შესáƒáƒ¥áƒ›áƒœáƒ”ლáƒáƒ“ %r-ის წáƒáƒ™áƒ˜áƒ—ხვრშეუძლებელიáƒ"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "სულელი áƒáƒ›áƒ’ები, რáƒáƒ›áƒ”ლიც ფáƒáƒ˜áƒšáƒ”ბს áƒáƒ  áƒáƒ’ენერირებს."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "EPub ფáƒáƒ˜áƒšáƒ˜ %(outdir)s-შიáƒ."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "nav.xhtml ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რáƒ..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_language\" (áƒáƒœ \"language\") EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრყáƒáƒ¤áƒ˜áƒšáƒ˜áƒ§áƒ"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_uid\" EPUB3-სთვის XML NAME უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_title\" (áƒáƒœ \"html_title\") EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_author\" EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_contributor\" EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_description\" EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_publisher\" EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_copyright\" (áƒáƒœ \"copyright\") EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"epub_identifier\" EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ მნიშვნელáƒáƒ‘რ\"version\" EPUB3-სთვის ცáƒáƒ áƒ˜áƒ”ლი áƒáƒ  უნდრიყáƒáƒ¡"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ css_file: %r. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "შეტყáƒáƒ‘ინების კáƒáƒ¢áƒáƒšáƒáƒ’ების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "%d ნიმუშის ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ›áƒ˜áƒ–ნეები"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "ნიმუშების კითხვáƒ... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "შეტყáƒáƒ‘ინების კáƒáƒ¢áƒáƒšáƒáƒ’ების ჩáƒáƒ¬áƒ”რáƒ... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "გáƒáƒ¤áƒ£áƒ­áƒ”ბული ბმული: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "სáƒáƒ®áƒ”ლმძღვáƒáƒœáƒ”ლáƒáƒ¡ გვერდების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "ჩáƒáƒ¬áƒ”რáƒ"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" პáƒáƒ áƒáƒ›áƒ”ტრის მნიშვნელáƒáƒ‘რუცნáƒáƒ‘ დáƒáƒ™áƒ£áƒ›áƒ”ნტზე %s მიუთითებს"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML გვერდის სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "ერთი დáƒáƒ™áƒ£áƒ›áƒ”ნტის áƒáƒ¬áƒ§áƒáƒ‘áƒ"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი ფáƒáƒ˜áƒšáƒ”ბის ჩáƒáƒ¬áƒ”რáƒ"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfo-ის ფáƒáƒ˜áƒšáƒ”ბის სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრის \"texinfo_documents\" მნიშვნელáƒáƒ‘რმითითებული áƒáƒ áƒáƒ. დáƒáƒ™áƒ£áƒ›áƒ”ნტების ჩáƒáƒ¬áƒ”რი áƒáƒ  იქნებáƒ"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "\"texinfo_documents\" კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრი მიუთითებს უცნáƒáƒ‘ დáƒáƒ™áƒ£áƒ›áƒ”ნტზე %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბრ%s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "მიმáƒáƒ áƒ—ვების áƒáƒ›áƒáƒ®áƒ¡áƒœáƒ..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " ( "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "მიმდინáƒáƒ áƒ”áƒáƒ‘ს Texinfo-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რის ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "შეცდáƒáƒ›áƒ Makefile-ის ჩáƒáƒ¬áƒ”რისáƒáƒ¡: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "ტექსტური ფáƒáƒ˜áƒšáƒ”ბის სáƒáƒ¥áƒáƒ¦áƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "შეცდáƒáƒ›áƒ '%s' ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რისáƒáƒ¡: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XML ფáƒáƒ˜áƒšáƒ”ბის სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "ფსევდáƒ-XML ფáƒáƒ˜áƒšáƒ”ბს სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "áƒáƒ’ების ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜ გáƒáƒ¤áƒ£áƒ­áƒ”ბულიáƒ: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML გვერდების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "áƒáƒ’ების ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვის შეცდáƒáƒ›áƒ: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "ზáƒáƒ’áƒáƒ“ი ინდექსი"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "ინდექსი"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "შემდეგი"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "წინáƒ"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "ინდექსების გენერáƒáƒªáƒ˜áƒ"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი გვერდების ჩáƒáƒ¬áƒ”რáƒ"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "გáƒáƒ“მáƒáƒ¬áƒ”რáƒáƒ“ი ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ... "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "გáƒáƒ“მáƒáƒ¬áƒ”რáƒáƒ“ი ფáƒáƒ˜áƒšáƒ˜áƒ¡ %r კáƒáƒžáƒ˜áƒ áƒ”ბის შეცდáƒáƒ›áƒ:%s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ html_static_file-ში კáƒáƒžáƒ˜áƒ áƒ”ბს შეცდáƒáƒ›áƒ: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "სტáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "სტáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ ფáƒáƒ˜áƒšáƒ˜áƒ¡ %r კáƒáƒžáƒ˜áƒ áƒ”ბის შეცდáƒáƒ›áƒ"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი ფáƒáƒ˜áƒšáƒ˜áƒ¡ %r კáƒáƒžáƒ˜áƒ áƒ”ბის შეცდáƒáƒ›áƒ"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "áƒáƒ’ების ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რის შეცდáƒáƒ›áƒ: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "ძებნის ინდექსის ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვრშეუძლებელიáƒ, მáƒáƒ’რáƒáƒ› ყველრდáƒáƒ™áƒ£áƒ›áƒ”ნტის áƒáƒ’ებრáƒáƒ  მáƒáƒ®áƒ“ებáƒ: ინდექსი დáƒáƒ£áƒ¡áƒ áƒ£áƒšáƒ”ბელი იქნებáƒ."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "შეცდáƒáƒ›áƒ %s გვერდის რენდერისáƒáƒ¡.\nმიზეზი: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "áƒáƒ‘იექტის ინვენტáƒáƒ áƒ˜áƒ¡ დáƒáƒ›áƒžáƒ˜"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "%s-ში áƒáƒ áƒ¡áƒ”ბული ძებნის ინდექსის დáƒáƒ›áƒžáƒ˜"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ js_file: %r, გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "მითითებული math_renderer %r უცნáƒáƒ‘იáƒ."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path ჩáƒáƒœáƒáƒ¬áƒ”რი %r áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path ჩáƒáƒœáƒáƒ¬áƒ”რი %r გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეშიáƒ"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path ჩáƒáƒœáƒáƒ¬áƒ”რი %r áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path ჩáƒáƒœáƒáƒ¬áƒ”რი %r გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეშიáƒ"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "ლáƒáƒ’áƒáƒ¡ ფáƒáƒ˜áƒšáƒ˜ %r áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon ფáƒáƒ˜áƒšáƒ˜ %r áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒªáƒ˜áƒ"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeX-ის ფáƒáƒ˜áƒšáƒ”ბის სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ერ%(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "ინდექსი"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "გáƒáƒ›áƒáƒªáƒ”მáƒ"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "ენისთვის %r Babel-ის პáƒáƒ áƒáƒ›áƒ”ტრი ცნáƒáƒ‘ილი áƒáƒ áƒáƒ"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "მიმდინáƒáƒ áƒ”áƒáƒ‘ს TeX-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რის ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "მიმდინáƒáƒ áƒ”áƒáƒ‘ს TeX-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რის ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "დáƒáƒ›áƒáƒ¢áƒ”ბითი ფáƒáƒ˜áƒšáƒ”ბის კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "უცნáƒáƒ‘ი კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრი: latex_elements[%r]. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "უცნáƒáƒ‘ი თემის პáƒáƒ áƒáƒ›áƒ”ტრი: latex_theme_options[%r]. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ."
@@ -1152,15 +1194,15 @@ msgstr "%r-ს პáƒáƒ áƒáƒ›áƒ”ტრი \"theme\" áƒáƒ  áƒáƒ¥áƒ•áƒ¡"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r-ს \"%s\" პáƒáƒ áƒáƒ›áƒ”ტრი áƒáƒ  áƒáƒ¥áƒ•áƒ¡"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr "დáƒáƒ•áƒáƒšáƒ”ბის ნáƒáƒ›áƒ”რი დáƒáƒ“ებითი რიცხვი უნდრიყáƒáƒ¡"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "მეტი ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ მისáƒáƒ¦áƒ”ბáƒáƒ“ ეწვიეთ <https://www.sphinx-doc.org/>."
@@ -1252,257 +1294,264 @@ msgid "path to output directory"
msgstr "ბილიკი გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ემდე"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "თáƒáƒ•áƒ˜áƒ“áƒáƒœ áƒáƒ¡áƒáƒ’ები ფáƒáƒ˜áƒšáƒ”ბის ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ, თუ მიუთითებთ პáƒáƒ áƒáƒ›áƒ”ტრს -a"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "ზáƒáƒ’áƒáƒ“ი პáƒáƒ áƒáƒ›áƒ”ტრები"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "áƒáƒ›áƒ’ები. (ნáƒáƒ’ულისხმევი: HTML)"
+msgid "builder to use (default: 'html')"
+msgstr ""
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "ყველრფáƒáƒ˜áƒšáƒ˜áƒ¡ ჩáƒáƒ¬áƒ”რრ(ნáƒáƒ’ულისხმევი: მხáƒáƒšáƒáƒ“ áƒáƒ®áƒáƒšáƒ˜ დრშეცვლილი ფáƒáƒ˜áƒšáƒ”ბის ჩáƒáƒ¬áƒ”რáƒ)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "შენáƒáƒ®áƒ£áƒšáƒ˜ გáƒáƒ áƒ”მრგáƒáƒ›áƒáƒ§áƒ”ნებული áƒáƒ  იქნებáƒ. ყáƒáƒ•áƒ”ლთვის მáƒáƒ®áƒ“ებრყველრფáƒáƒ˜áƒšáƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვáƒ"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr ""
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ”ბი გáƒáƒ›áƒáƒ§áƒ”ნებული áƒáƒ  იქნებáƒ. მხáƒáƒšáƒáƒ“ -D-ით მითითებული პáƒáƒ áƒáƒ›áƒ”ტრები"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრის გáƒáƒ“áƒáƒ¤áƒáƒ áƒ•áƒ"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "მნიშვნელáƒáƒ‘ის გáƒáƒ“áƒáƒªáƒ”მრHTML ნიმუშებში"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
-#: sphinx/cmd/build.py:182
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "კáƒáƒœáƒ¡áƒáƒšáƒ˜áƒ¡ გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრები"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "დიáƒáƒ’ნáƒáƒ¡áƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ შეტყáƒáƒ‘ინებების სიხშირის გáƒáƒ–რდრ(შეგიძლიáƒáƒ—, გáƒáƒ˜áƒ›áƒ”áƒáƒ áƒáƒ—)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "stdout-ზე გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒšáƒ˜ áƒáƒ áƒáƒ¤áƒ”რი იქნებáƒ. მხáƒáƒšáƒáƒ“ გáƒáƒ¤áƒ áƒ—ხილებები, stderr-ზე"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "áƒáƒ áƒáƒ¤áƒ áƒ˜ გáƒáƒ›áƒáƒ¢áƒáƒœáƒ. გáƒáƒ¤áƒ áƒ—ხილებებისáƒáƒª კი"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "ფერáƒáƒ“ი გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ ჩáƒáƒ áƒ—ვრ(ნáƒáƒ’ულისხმევი: áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“-áƒáƒ¦áƒ›áƒáƒ©áƒ”ნáƒ)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "ფერáƒáƒ“ი გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ გáƒáƒ›áƒáƒ áƒ—ვრ(ნáƒáƒ’ულისხმევი: áƒáƒ•áƒ¢áƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“-áƒáƒ¦áƒ›áƒáƒ©áƒ”ნáƒ)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "გáƒáƒ¤áƒ áƒ—ხილებების (დრშეცდáƒáƒ›áƒ”ბის) მითითებულ ფáƒáƒ˜áƒšáƒ¨áƒ˜ ჩáƒáƒ¬áƒ”რáƒ"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "გáƒáƒ¤áƒ áƒ—ხილებების შეცდáƒáƒ›áƒáƒ“ áƒáƒ¦áƒ¥áƒ›áƒ"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "თუ მითითებულირ-W, გáƒáƒ¤áƒ áƒ—ხილებების მიუხედáƒáƒ•áƒáƒ“ სáƒáƒ›áƒ£áƒ¨áƒáƒáƒ”ბი მáƒáƒ˜áƒœáƒª გáƒáƒ’რძელდებáƒ"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "გáƒáƒ›áƒáƒœáƒáƒ™áƒšáƒ˜áƒ¡áƒ˜áƒ¡áƒáƒ¡ Pdb-ის გáƒáƒ¨áƒ•áƒ”ბáƒ"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "-a პáƒáƒ áƒáƒ›áƒ”ტრის დრფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლების ერთáƒáƒ“ მითითებრშეუძლებელიáƒ"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "გáƒáƒ¤áƒ áƒ—ხილებების ფáƒáƒ˜áƒšáƒ˜áƒ¡ %r გáƒáƒ®áƒ¡áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒªáƒ˜áƒ˜áƒ¡ დáƒáƒ¤áƒáƒ áƒ•áƒ˜áƒ¡ შემáƒáƒ¬áƒ›áƒ”ბáƒ"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "მáƒáƒ—ემáƒáƒ¢áƒ˜áƒ™áƒ˜áƒ¡ ჩáƒáƒ¡áƒ›áƒ, რáƒáƒ›áƒ”ლიც PNG áƒáƒœ SVG გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის სáƒáƒ®áƒ˜áƒ—áƒáƒ დáƒáƒ áƒ”ნდერებული"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "ბრáƒáƒ£áƒ–ერში MathJax-ის მიერ დáƒáƒ áƒ”ნდერებული მáƒáƒ—ემáƒáƒ¢áƒ˜áƒ™áƒ˜áƒ¡ ჩáƒáƒ¡áƒ›áƒ"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "გთხáƒáƒ•áƒ— შეიყვáƒáƒœáƒáƒ— ბილიკის სწáƒáƒ áƒ˜ სáƒáƒ®áƒ”ლი."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "შეიყვáƒáƒœáƒ”თ რáƒáƒ˜áƒ›áƒ” ტექსტი."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "შეიყვáƒáƒœáƒ”თ %s-დáƒáƒœ ერთ-ერთი."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "შეიყვáƒáƒœáƒ”თ 'y' (დიáƒáƒ®) áƒáƒœ 'n' (áƒáƒ áƒ)"
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "მიუთითეთ ფáƒáƒ˜áƒšáƒ˜áƒ¡ სუფიქსი. მáƒáƒ’: '.rst' áƒáƒœ '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "მáƒáƒ’ესáƒáƒšáƒ›áƒ”ბით Sphinx %s-ის სწრáƒáƒ¤áƒ˜ მáƒáƒ áƒ’ების პრáƒáƒ’რáƒáƒ›áƒ."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "áƒáƒ áƒ©áƒ”ული root ბილიკი: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "შეიყვáƒáƒœáƒ”თ დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒªáƒ˜áƒ˜áƒ¡ ძირითáƒáƒ“ი ბილიკი."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒªáƒ˜áƒ˜áƒ¡ ძირითáƒáƒ“ი ბილიკი"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "შეცდáƒáƒ›áƒ: áƒáƒ áƒ©áƒ”ულ ძირითáƒáƒ“ ბილიკზე áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირáƒáƒ áƒ¡áƒ”ბული conf.py ფáƒáƒ˜áƒšáƒ˜."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart-ი áƒáƒ áƒ¡áƒ”ბულ Sphinx-ის პრáƒáƒ”ქტებს თáƒáƒ•áƒ–ე áƒáƒ  გáƒáƒ“áƒáƒáƒ¬áƒ”რს."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "შეიყვáƒáƒœáƒ”თ áƒáƒ®áƒáƒšáƒ˜ სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ ბილიკი (გáƒáƒ¡áƒáƒ¡áƒ•áƒšáƒ”ლáƒáƒ“ უბრáƒáƒšáƒáƒ“ დáƒáƒáƒ¬áƒ”ქით ღილáƒáƒ™áƒ¡ 'Enter')"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "კáƒáƒ“ის დრáƒáƒ’ების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეები გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•áƒ“ებáƒ? (y(დიáƒáƒ®)/n(áƒáƒ áƒ))"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "სáƒáƒ®áƒ”ლის პრეფიქსი ნიმუშებისრდრსტáƒáƒ¢áƒ˜áƒ™áƒ˜áƒ¡ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეებისთვის"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "პრáƒáƒ”ქტს სáƒáƒ®áƒ”ლი áƒáƒ’ებულ დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒªáƒ˜áƒáƒ¨áƒ˜ რáƒáƒ›áƒ“ენიმე áƒáƒ“გილáƒáƒ¡ გáƒáƒ›áƒáƒ©áƒœáƒ“ებáƒ."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "პრáƒáƒ”ქტის სáƒáƒ®áƒ”ლი"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "áƒáƒ•áƒ¢áƒáƒ áƒ˜áƒ¡ სáƒáƒ®áƒ”ლები"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "პრáƒáƒ”ქტის ვერსიáƒ"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "პრáƒáƒ”ქტის რელიზი"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "პრáƒáƒ”ქტის ენáƒ"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "თქვენი მთáƒáƒ•áƒáƒ áƒ˜ დáƒáƒ™áƒ£áƒ›áƒ”ნტის სáƒáƒ®áƒ”ლი (სუფიქსს გáƒáƒ áƒ”შე)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart áƒáƒ áƒ¡áƒ”ბულ ფáƒáƒ˜áƒšáƒ”ბს თáƒáƒ•áƒ–ე áƒáƒ  გáƒáƒ“áƒáƒáƒ¬áƒ”რს."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "შევქმნრMakefile? (y(დიáƒáƒ®)/n(áƒáƒ áƒ))"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "შევქმნრWindows-ის ბრძáƒáƒœáƒ”ბების ფáƒáƒ˜áƒšáƒ˜? (y(დიáƒáƒ®)/n(áƒáƒ áƒ))"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ შექმნრ%s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "ფáƒáƒ˜áƒšáƒ˜ %s უკვე áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს. ის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "დáƒáƒ¡áƒ áƒ£áƒšáƒ“áƒ: სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეების სტრუქტურრშეიქმნáƒ."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "ჩუმი რეჟიმი"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "პრáƒáƒ”ქტის სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "სტრუქტურის მáƒáƒ áƒ’ებáƒ"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "თუ მითითებულიáƒ, კáƒáƒ“ის დრáƒáƒ’ების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეები ცáƒáƒš-ცáƒáƒšáƒ™áƒ” იქნებáƒ"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "თუ მითითებულიáƒ, áƒáƒ’ების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე კáƒáƒ“ის სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეში იქნებáƒ"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "პრáƒáƒ”ქტის ძირითáƒáƒ“ი პáƒáƒ áƒáƒ›áƒ”ტრები"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "პრáƒáƒ”ქტის დáƒáƒ¡áƒáƒ®áƒ”ლებáƒ"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "áƒáƒ•áƒ¢áƒáƒ áƒ˜áƒ¡ სáƒáƒ®áƒ”ლები"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "პრáƒáƒ”ქტის ვერსიáƒ"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "პრáƒáƒ”ქტის რელიზი"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტის ენáƒ"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "წყáƒáƒ áƒáƒ¡ ფáƒáƒ˜áƒšáƒ˜áƒ¡ სუფიქსი"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "მთáƒáƒ•áƒáƒ áƒ˜ დáƒáƒ™áƒ£áƒ›áƒ”ნტის სáƒáƒ®áƒ”ლი"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "epub-ის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის პáƒáƒ áƒáƒ›áƒ”ტრები"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "%s გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის ჩáƒáƒ áƒ—ვáƒ"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefile დრBatchfile-ის შექმნáƒ"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "makefile-ის შექმნáƒ"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "makefile-ის áƒáƒ  შეიქმნებáƒ"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "batchfile-ის შექმნáƒ"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "batchfile-ი áƒáƒ  შეიქმნებáƒ"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "პრáƒáƒ”ქტის ნიმუშები"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "ნიმუშების სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე ნიმუშის ფáƒáƒ˜áƒšáƒ”ბისთვის"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "áƒáƒ¦áƒ¬áƒ”რეთ სáƒáƒœáƒ˜áƒ›áƒ£áƒ¨áƒ” ცვლáƒáƒ“ი"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ნიმუშის ცვლáƒáƒ“ი: %s"
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირდუბლირებული სáƒáƒ áƒ©áƒ”ვის ჩáƒáƒœáƒáƒ¬áƒ”რი: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "სექციის áƒáƒ•áƒ¢áƒáƒ áƒ˜: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "მáƒáƒ“ულის áƒáƒ•áƒ¢áƒáƒ áƒ˜: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "კáƒáƒ“ის áƒáƒ•áƒ¢áƒáƒ áƒ˜: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "áƒáƒ•áƒ¢áƒáƒ áƒ˜: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,82 +1928,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "პáƒáƒ áƒáƒ›áƒ”ტრები"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "დáƒáƒ‘რუნებული მნიშვნელáƒáƒ‘ები"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "áƒáƒ‘რუნებს"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "დáƒáƒ‘რუნების ტიპი"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "წვერი"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "ცვლáƒáƒ“ი"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "ფუნქციáƒ"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "მáƒáƒ™áƒ áƒ"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "სტრუქტურáƒ"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "გáƒáƒ”რთიáƒáƒœáƒ”ბáƒ"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "დáƒáƒ›áƒ—ვლელი"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "ტიპი"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "ფუნქციის პáƒáƒ áƒáƒ›áƒ”ტრი"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "სიáƒáƒ®áƒšáƒ” ვერსიáƒáƒ¨áƒ˜ %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1966,346 +1943,423 @@ msgstr "ცვლილებები ვერსიáƒáƒ¨áƒ˜ %s"
msgid "Deprecated since version %s"
msgstr "მáƒáƒ«áƒ•áƒ”ლებულირვერსიáƒáƒ¨áƒ˜ %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:82
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "შáƒáƒ‘ლáƒáƒœáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრები"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "ისვრის"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "კლáƒáƒ¡áƒ˜"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "კáƒáƒœáƒªáƒ”ფციáƒ"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "შáƒáƒ‘ლáƒáƒœáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრი"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s () (ჩáƒáƒ¨áƒ”ნებული ფუნქციáƒ)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s () (%s მეთáƒáƒ“ი)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s () (კლáƒáƒ¡áƒ˜)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (გლáƒáƒ‘áƒáƒšáƒ£áƒ áƒ˜ ცვლáƒáƒ“ი áƒáƒœ მუდმივáƒ)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s áƒáƒ¢áƒ áƒ˜áƒ‘უტი)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "áƒáƒ áƒ’უმენტები"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "ისვრის"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "áƒáƒ‘რუნებს"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "დáƒáƒ‘რუნების ტიპი"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (მáƒáƒ“ული)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "ფუნქციáƒ"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "მეთáƒáƒ“ი"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "კლáƒáƒ¡áƒ˜"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "მáƒáƒœáƒáƒªáƒ”მები"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "áƒáƒ¢áƒ áƒ˜áƒ‘უტი"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "მáƒáƒ“ული"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "ცვლáƒáƒ“ები"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (დირექტივáƒ)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "გáƒáƒ›áƒáƒœáƒáƒ™áƒšáƒ˜áƒ¡áƒ”ბი"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (დირექტივის პáƒáƒ áƒáƒ›áƒ”ტრი)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (რáƒáƒšáƒ˜)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "დირექტივáƒ"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "დირექტივის-პáƒáƒ áƒáƒ›áƒ”ტრი"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "რáƒáƒšáƒ”ბი"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "%s %s-ის დუბლირებული áƒáƒ¦áƒ¬áƒ”რáƒ. სხვრáƒáƒ¡áƒšáƒ˜ %s-შიáƒ"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრები"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "დáƒáƒ‘რუნებული მნიშვნელáƒáƒ‘ები"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "წვერი"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "ცვლáƒáƒ“ი"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "მáƒáƒ™áƒ áƒ"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "სტრუქტურáƒ"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "გáƒáƒ”რთიáƒáƒœáƒ”ბáƒ"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "დáƒáƒ›áƒ—ვლელი"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "ტიპი"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "ფუნქციის პáƒáƒ áƒáƒ›áƒ”ტრი"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "შáƒáƒ‘ლáƒáƒœáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრები"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "კáƒáƒœáƒªáƒ”ფციáƒ"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "შáƒáƒ‘ლáƒáƒœáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრი"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s () (მáƒáƒ“ულში %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (მáƒáƒ“ულში %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (ჩáƒáƒ¨áƒ”ნებული ცვლáƒáƒ“ი)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (ჩáƒáƒ¨áƒ”ნებული კლáƒáƒ¡áƒ˜)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (კლáƒáƒ¡áƒ˜ %s-ში)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s () (%s კლáƒáƒ¡áƒ˜áƒ¡ მეთáƒáƒ“ი)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s () (%s სტáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ მეთáƒáƒ“ი)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (%s თვისებáƒ)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python-ის მáƒáƒ“ულის ინდექსი"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "მáƒáƒ“ულები"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "მáƒáƒ«áƒ•áƒ”ლებულიáƒ"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "გáƒáƒ›áƒáƒœáƒáƒ™áƒšáƒ˜áƒ¡áƒ˜"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "კლáƒáƒ¡áƒ˜áƒ¡ მეთáƒáƒ“ი"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "სტáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜ მეთáƒáƒ“ი"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "თვისებáƒ"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (მáƒáƒ«áƒ•áƒ”ლებული)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (დირექტივáƒ)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (დირექტივის პáƒáƒ áƒáƒ›áƒ”ტრი)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (რáƒáƒšáƒ˜)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "დირექტივáƒ"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "დირექტივის-პáƒáƒ áƒáƒ›áƒ”ტრი"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "რáƒáƒšáƒ”ბი"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "ცვლáƒáƒ“ები"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "%s %s-ის დუბლირებული áƒáƒ¦áƒ¬áƒ”რáƒ. სხვრáƒáƒ¡áƒšáƒ˜ %s-შიáƒ"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "გáƒáƒ›áƒáƒœáƒáƒ™áƒšáƒ˜áƒ¡áƒ”ბი"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "გáƒáƒ áƒ”მáƒáƒ¡ ცვლáƒáƒ“ი; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s ბრძáƒáƒœáƒ”ბის სტრიქáƒáƒœáƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრი"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "ბრძáƒáƒœáƒ”ბის სტრიქáƒáƒœáƒ˜áƒ¡ ვáƒáƒ áƒ˜áƒáƒœáƒ¢áƒ˜"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "სáƒáƒ áƒ©áƒ”ვის ელემენტებს წინ ცáƒáƒ áƒ˜áƒ”ლი ხáƒáƒ–ი უნდრიყáƒáƒ¡"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "სáƒáƒ áƒ©áƒ”ვის ელემენტები ცáƒáƒ áƒ˜áƒ”ლი ხáƒáƒ–ებით უნდრგáƒáƒ›áƒáƒ§áƒáƒ—"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "სáƒáƒ áƒ©áƒ”ვის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ. გáƒáƒ“áƒáƒáƒ›áƒáƒ¬áƒ›áƒ”თ შეწევáƒ"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "სáƒáƒ áƒ©áƒ”ვის ელემენტი"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "გრáƒáƒ›áƒáƒ¢áƒ˜áƒ™áƒ˜áƒ¡ კáƒáƒ“ი"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "მიმáƒáƒ áƒ—ვის ჭდე"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "გáƒáƒ áƒ”მáƒáƒ¡ ცვლáƒáƒ“ი"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ პáƒáƒ áƒáƒ›áƒ”ტრი"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტი"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "მáƒáƒ“ულის ინდექსი"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "ძებნის გვერდი"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "დუბლირებული ჭდე %s. სხვრáƒáƒ¦áƒ¬áƒ”რრ%s-შიáƒ"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "დუბლირებული %s áƒáƒ¦áƒ¬áƒ”რისთვის %s. სხვრáƒáƒ¡áƒšáƒ˜ %s-შიáƒ"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig გáƒáƒ›áƒáƒ áƒ—ულიáƒ. :numref: გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "ბმულს წáƒáƒ áƒ¬áƒ”რრáƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "áƒáƒ¦áƒ£áƒ¬áƒ”რელი ჭდე: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ შეიცვáƒáƒšáƒ"
msgid "extensions changed"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბები შეიცვáƒáƒšáƒ"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "áƒáƒ’ების გáƒáƒ áƒ”მáƒáƒ¡ ვერსირმიმდინáƒáƒ áƒ” áƒáƒ áƒáƒ"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე შეიცვáƒáƒšáƒ"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "გáƒáƒ áƒ”მრáƒáƒ áƒ©áƒ”ულ áƒáƒ›áƒ’ებთáƒáƒœ თáƒáƒ•áƒ¡áƒ”ბáƒáƒ“ი áƒáƒ áƒáƒ. áƒáƒ˜áƒ áƒ©áƒ˜áƒ”თ სხვრდáƒáƒ™áƒ£áƒ›áƒ”ნტების ხის სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "%s-ში დáƒáƒ™áƒ£áƒ›áƒ”ნტების სკáƒáƒœáƒ˜áƒ áƒ”ბრშეუძლებელიáƒ: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "დáƒáƒ›áƒ”ნი %r რეგისტრირებული áƒáƒ áƒáƒ"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტი áƒáƒ áƒª ერთ სáƒáƒ áƒ©áƒ”ვის ხეში ჩáƒáƒ¡áƒ›áƒ£áƒšáƒ˜ áƒáƒ áƒáƒ"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირთვითმიმáƒáƒ áƒ—ვáƒáƒ“ი სáƒáƒ áƒ©áƒ”ვის ხე. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ."
@@ -2374,39 +2428,39 @@ msgstr "უცნáƒáƒ‘ი ინდექსის ჩáƒáƒœáƒáƒ¬áƒ”რის
msgid "Symbols"
msgstr "სიმბáƒáƒšáƒáƒ”ბი"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირსáƒáƒ áƒ©áƒ”ვის ხის წრიული მიმáƒáƒ áƒ—ვები. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული იქნებáƒ: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "სáƒáƒ áƒ©áƒ”ვის ხე შეიცáƒáƒ•áƒ¡ მიმáƒáƒ áƒ—ვáƒáƒ¡ დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒ›áƒ“ე %r, რáƒáƒ›áƒ”ლსáƒáƒª სáƒáƒ—áƒáƒ£áƒ áƒ˜ áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ. ბმული áƒáƒ  შეიქმნებáƒ"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "სáƒáƒ áƒ©áƒ”ვის ხე áƒáƒ -ჩáƒáƒ áƒ—ულ დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒ›áƒ“ე, %r, მიმáƒáƒ áƒ—ვáƒáƒ¡ შეიცáƒáƒ•áƒ¡"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ˜áƒšáƒ˜ წáƒáƒ™áƒ˜áƒ—ხვáƒáƒ“ი áƒáƒ áƒáƒ: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ˜áƒšáƒ˜ %s წáƒáƒ™áƒ˜áƒ—ხვáƒáƒ“ი áƒáƒ áƒáƒ: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "გáƒáƒ“მáƒáƒ¬áƒ”რილი ფáƒáƒ˜áƒšáƒ˜ წáƒáƒ™áƒ˜áƒ—ხვáƒáƒ“ი áƒáƒ áƒáƒ: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr "შეიქმნებáƒáƒ“რფáƒáƒ˜áƒšáƒ˜ %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "ბილიკი მáƒáƒ“ულიდáƒáƒœ დáƒáƒ™áƒ£áƒ›áƒ”ნტáƒáƒ›áƒ“ე"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "áƒáƒ áƒ¡áƒ”ბულ ფáƒáƒ˜áƒšáƒ”ბზე გáƒáƒ“áƒáƒ¬áƒ”რáƒ"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "სკრიპტის ფáƒáƒ˜áƒšáƒ”ბის შექმნის გáƒáƒ áƒ”შე გáƒáƒ¨áƒ•áƒ”ბáƒ"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "\"_private\" მáƒáƒ“ულების ჩáƒáƒ¡áƒ›áƒ"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "სáƒáƒ áƒ©áƒ”ვის ფáƒáƒ˜áƒšáƒ˜ áƒáƒ  შეიქმნებáƒ"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ სუფიქსი (ნáƒáƒ’ულისხმევი: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "sphinx-quickstart-ით სრული პრáƒáƒ”ქტის გენáƒáƒ áƒáƒªáƒ˜áƒ"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "რáƒáƒªáƒ მითითებულირ--full, module_path-ი sys.path-ის ბáƒáƒšáƒáƒ¨áƒ˜ მიეწერებáƒ"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "პრáƒáƒ”ქტის სáƒáƒ®áƒ”ლი (ნáƒáƒ’ულისხმევი: ძირითáƒáƒ“ი მáƒáƒ“ულის სáƒáƒ®áƒ”ლი)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "პრáƒáƒ”ქტის áƒáƒ•áƒ¢áƒáƒ (ებ)-ი. გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ, რáƒáƒªáƒ მიუთითებთ პáƒáƒ áƒáƒ›áƒ”ტრს --full"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "პრáƒáƒ”ქტის ვერსიáƒ. გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ, რáƒáƒªáƒ მითითებულირ--full"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "პრáƒáƒ”ქტის რელიზი. გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნებáƒ, რáƒáƒªáƒ მითითებულირ--full. ნáƒáƒ’ულისხმებ მნიშვნელáƒáƒ‘áƒáƒ იგივე, რáƒáƒª --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბის პáƒáƒ áƒáƒ›áƒ”ტრები"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ეს áƒáƒ  წáƒáƒ áƒ›áƒáƒáƒ“გენს."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "სექცირ\"%s\" მიიღებს ჭდეს \"%s\""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ რეგულáƒáƒ áƒ£áƒšáƒ˜ გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბრ%r %s-ში"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr "'%s' სწáƒáƒ áƒ˜ pyversion-ის პáƒáƒ áƒáƒ›áƒ”ტრი áƒáƒ 
msgid "invalid TestCode type"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ TestCode ტიპი"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "გáƒáƒ áƒ” Graphviz ფáƒáƒ˜áƒšáƒ˜ %r ვერ ვიპáƒáƒ•áƒ” áƒáƒœ მისი წáƒáƒ™áƒ˜áƒ—ხვრშეუძლებელიáƒ"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "\"graphviz\" დირექტივáƒ, რáƒáƒ›áƒ”ლსáƒáƒª შემცველáƒáƒ‘რáƒáƒ  áƒáƒ¥áƒ•áƒ¡, იგნáƒáƒ áƒ˜áƒ áƒ”ბულიáƒ."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format უნდრიყáƒáƒ¡ ერთ-ერთი სიიდáƒáƒœ: 'png', 'svg'. მáƒáƒ’რáƒáƒ› áƒáƒ áƒ˜áƒ¡ %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[გრáƒáƒ¤áƒ˜áƒ™áƒ˜: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[გრáƒáƒ¤áƒ˜áƒ™áƒ˜]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(%s v%s-ში)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "გáƒáƒœáƒ áƒ˜áƒ’ის სიáƒ"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ ჩáƒáƒœáƒáƒ¬áƒ”რი>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ ჩáƒáƒœáƒáƒ¬áƒ”რი"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "მáƒáƒ“ულის კáƒáƒ“ის გáƒáƒ›áƒáƒ™áƒ•áƒ”თáƒ... "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "მáƒáƒ“ულის კáƒáƒ“ი"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "გáƒáƒ“áƒáƒ®áƒ”დვáƒ: მáƒáƒ“ულის კáƒáƒ“ი"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "ძირითáƒáƒ“ი კლáƒáƒ¡áƒ”ბი: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "áƒáƒ¢áƒ áƒ˜áƒ‘უტი %s áƒáƒ‘იექტში %s áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილი áƒáƒ áƒáƒ"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "მეტსáƒáƒ®áƒ”ლი TypeVar(%s)-სთვის"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "%s-სთვის მეთáƒáƒ“ის ხელმáƒáƒ¬áƒ”რის მიღებრშეუძლებელიáƒ: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "%s-ზე áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირáƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ __slots__: გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბულიáƒ."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "%r-სთვის ნáƒáƒ’ულისხმევი áƒáƒ áƒ’უმენტის მნიშვნელáƒáƒ‘ის დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბის შეცდáƒáƒ›áƒ: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "%r-სთვის ხელმáƒáƒ¬áƒ”რის გáƒáƒœáƒáƒ®áƒšáƒ”ბის შეცდáƒáƒ›áƒ: პáƒáƒ áƒáƒ›áƒ”ტრი ვერ ვიპáƒáƒ•áƒ”: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "სáƒáƒ®áƒ”ლის %s დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბის შეცáƒáƒ›áƒ"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "áƒáƒ‘იექტის %s შემáƒáƒ¢áƒáƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: ფáƒáƒ˜áƒšáƒ˜ ვერ ვიპáƒáƒ•áƒ”: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "სáƒáƒ™áƒ•áƒáƒœáƒ«áƒ სიტყვების áƒáƒ áƒ’უმენტები"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "მáƒáƒ’áƒáƒšáƒ˜áƒ—ი"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "მáƒáƒ’áƒáƒšáƒ˜áƒ—ები"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "ჩáƒáƒœáƒáƒ¬áƒ”რები"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "სხვრპáƒáƒ áƒáƒ›áƒ”ტრები"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "იღებს"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "ბმები"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "გáƒáƒ¤áƒ áƒ—ხილებები"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მნიშვნელáƒáƒ‘ების ნáƒáƒ™áƒ áƒ”ბი (áƒáƒ™áƒšáƒ˜áƒ დáƒáƒ›áƒ®áƒ£áƒ áƒáƒ•áƒ˜ ფრჩხილი): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მნიშვნელáƒáƒ‘ების ნáƒáƒ™áƒ áƒ”ბი (áƒáƒ™áƒšáƒ˜áƒ გáƒáƒ›áƒ®áƒ¡áƒœáƒ”ლი ფრჩხილი): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "ყურáƒáƒ“ღებáƒ"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "გáƒáƒ¤áƒ áƒ—ხილებáƒ"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "სáƒáƒ¤áƒ áƒ—ხე"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "შეცდáƒáƒ›áƒ"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "მინიშნებáƒ"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "მნიშვნელáƒáƒ•áƒáƒœáƒ˜"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "ნáƒáƒ¢áƒ˜"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "áƒáƒ¡áƒ”ვე იხილეთ"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "რჩევáƒ"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "ყურáƒáƒ“ღებáƒ"
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr "სáƒáƒ áƒ©áƒ”ვი"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "ძებნáƒ"
@@ -3341,34 +3400,22 @@ msgstr "შემდეგი თემáƒ"
msgid "next chapter"
msgstr "შემდეგი თáƒáƒ•áƒ˜"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "ძებნáƒ"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "ძებნს შედეგები"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "სწრáƒáƒ¤áƒ˜ ძებნáƒ"
@@ -3405,20 +3452,30 @@ msgstr "C API ცვლილებები"
msgid "Other changes"
msgstr "სხვრცვლილებები"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "ძებნს შედეგები"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "ძებნáƒ"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "ძებნის მáƒáƒ›áƒ–áƒáƒ“ებáƒ..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr "გვერდითი ზáƒáƒšáƒ˜áƒ¡ გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბáƒ"
msgid "Contents"
msgstr "შიგთáƒáƒ•áƒ¡áƒ˜"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "ნáƒáƒ™áƒ•áƒáƒšáƒ”ვი [%s] მიმáƒáƒ áƒ—ული áƒáƒ áƒáƒ."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "ნáƒáƒ™áƒ•áƒáƒšáƒ”ვი [#] მიმáƒáƒ áƒ—ული áƒáƒ áƒáƒ."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr "%s:%s მიმáƒáƒ áƒ—ვის სáƒáƒ›áƒ˜áƒ–ნე ვერ ვი
msgid "%r reference target not found: %s"
msgstr "%r მიმáƒáƒ áƒ—ვის სáƒáƒ›áƒ˜áƒ–ნე ვერ ვიპáƒáƒ•áƒ”: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "დáƒáƒ¨áƒáƒ áƒ”ბული გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის მიღების შეცდáƒáƒ›áƒ: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "დáƒáƒ¨áƒáƒ áƒ”ბული გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის მიღების შეცდáƒáƒ›áƒ: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "უცნáƒáƒ‘ი გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბული"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "შეცდáƒáƒ›áƒ˜áƒ—"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "უცნáƒáƒ‘ი დირექტივრáƒáƒœ რáƒáƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "უცნáƒáƒ‘ი კვáƒáƒœáƒ«áƒ˜áƒ¡ ტიპი: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "წáƒáƒ™áƒ˜áƒ—ხვის შეცდáƒáƒ›áƒ: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "ჩáƒáƒ¬áƒ”რის შეცდáƒáƒ›áƒ: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "ნáƒáƒ’ულისხმევი რáƒáƒšáƒ˜ %s ვერ ვიპáƒáƒ•áƒ”"
@@ -3613,27 +3670,27 @@ msgstr "ნებისმიერი ID, რáƒáƒ›áƒ”ლიც %s კვáƒáƒœ
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბის ზáƒáƒ›áƒ˜áƒ¡ მიღებრშეუძლებელიáƒ. :scale: მáƒáƒ®áƒ“ებრპáƒáƒ áƒáƒ›áƒ”ტრის გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბáƒ."
@@ -3650,13 +3707,13 @@ msgstr "ძáƒáƒšáƒ˜áƒáƒœ დიდი :maxdepth:. გáƒáƒ›áƒáƒ¢áƒáƒ•áƒ”ბá
msgid "document title is not a single Text node"
msgstr "დáƒáƒ™áƒ£áƒ›áƒ”ნტის სáƒáƒ—áƒáƒ£áƒ áƒ˜ ერთი ტექსტური კვáƒáƒœáƒ«áƒ˜ áƒáƒ áƒáƒ"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "სქáƒáƒšáƒ˜áƒáƒ”ბი"
@@ -3675,20 +3732,20 @@ msgstr "ზáƒáƒ›áƒ˜áƒ¡ ერთეული %s áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ. áƒ
msgid "unknown index entry type %s found"
msgstr "áƒáƒ¦áƒ›áƒáƒ©áƒ”ნილირინდექსის ჩáƒáƒœáƒáƒ¬áƒ”რის უცნáƒáƒ‘ი ტიპი %s"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბáƒ: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "წáƒáƒ áƒ¬áƒ”რრფიგურის შიგნით áƒáƒ áƒáƒ."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "გáƒáƒœáƒ£áƒ®áƒáƒ áƒªáƒ˜áƒ”ლებელი კვáƒáƒœáƒ«áƒ˜áƒ¡ ტიპი: %r"
diff --git a/sphinx/locale/ko/LC_MESSAGES/sphinx.mo b/sphinx/locale/ko/LC_MESSAGES/sphinx.mo
index 42ab777..49dcb80 100644
--- a/sphinx/locale/ko/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ko/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ko/LC_MESSAGES/sphinx.po b/sphinx/locale/ko/LC_MESSAGES/sphinx.po
index c2c594e..6c4d708 100644
--- a/sphinx/locale/ko/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ko/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: YT H <dev@theYT.net>, 2019-2022\n"
"Language-Team: Korean (http://app.transifex.com/sphinx-doc/sphinx-1/language/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -39,104 +39,104 @@ msgstr "ì›ë³¸ 디렉토리와 ëŒ€ìƒ ë””ë ‰í† ë¦¬ëŠ” ê°™ì„ ìˆ˜ 없습니다"
msgid "Running Sphinx v%s"
msgstr "Sphinx 버전 %s 실행 중"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "ì´ í”„ë¡œì íŠ¸ëŠ” 최소 Sphinx 버전 %sì´(ê°€) 필요하므로 현재 버전으로 빌드할 수 없습니다."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "출력 디렉토리 만드는 중"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "확장 기능 %s 설정 중:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "현재 conf.py 파ì¼ì— ì •ì˜ëœ 'setup'ì€ í˜¸ì¶œ 가능한 Python ê°ì²´ê°€ 아닙니다. 호출 가능한 함수가 ë˜ë„ë¡ ì •ì˜ë¥¼ 수정하십시오.\nì´ê²ƒì€ conf.pyê°€ Sphinx 확장 기능으로 ë™ìž‘하는 ë° í•„ìš”í•©ë‹ˆë‹¤."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "ë²ˆì—­ì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중 [%s]… "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "완료"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "기본 제공 메시지를 사용할 수 없습니다"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "pickleë¡œ ì €ìž¥ëœ í™˜ê²½ì„ ë¶ˆëŸ¬ì˜¤ëŠ” 중"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "실패: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "ì„ íƒí•œ 빌ë”ê°€ 없으므로, ê¸°ë³¸ê°’ì¸ htmlì„ ì‚¬ìš©í•©ë‹ˆë‹¤"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "성공"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "완료했으나 ë¬¸ì œì  ë°œê²¬"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "빌드 %s, 경고가 %s ê°œ ë°œìƒí–ˆìŠµë‹ˆë‹¤ (경고를 오류로 처리)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "빌드 %s, 경고가 %s ê°œ ë°œìƒí–ˆìŠµë‹ˆë‹¤ (경고를 오류로 처리)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "빌드 %s, 경고가 %s ê°œ ë°œìƒí–ˆìŠµë‹ˆë‹¤."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "빌드 %s, 경고가 %s ê°œ ë°œìƒí–ˆìŠµë‹ˆë‹¤."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "빌드 %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "%r 노드 í´ëž˜ìŠ¤ê°€ ì´ë¯¸ 등ë¡ë˜ì–´ 있으며, 방문ìžë¥¼ 무시합니다"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "%r ì§€ì‹œë¬¸ì´ ì´ë¯¸ 등ë¡ë˜ì–´ 있으며, 재정ì˜ë©ë‹ˆë‹¤"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "%r ì—­í• ì´ ì´ë¯¸ 등ë¡ë˜ì–´ 있으며, 재정ì˜ë©ë‹ˆë‹¤"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr "%s 확장 ê¸°ëŠ¥ì€ ë³‘ë ¬ ì½ê¸°ì— 안전한지 선언하지 않았으므로, 그렇지 않다고 가정합니다. 확장 기능 작성ìžì—게 확ì¸í•˜ê³  명시하ë„ë¡ ìš”ì²­í•˜ì‹­ì‹œì˜¤"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "%s 확장 ê¸°ëŠ¥ì€ ë³‘ë ¬ ì½ê¸°ì— 안전하지 않습니다"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr "%s 확장 ê¸°ëŠ¥ì€ ë³‘ë ¬ ì“°ê¸°ì— ì•ˆì „í•œì§€ 선언하지 않았으므로, 그렇지 않다고 가정합니다. 확장 기능 작성ìžì—게 확ì¸í•˜ê³  명시하ë„ë¡ ìš”ì²­í•˜ì‹­ì‹œì˜¤"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "%s 확장 ê¸°ëŠ¥ì€ ë³‘ë ¬ ì“°ê¸°ì— ì•ˆì „í•˜ì§€ 않습니다"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "병렬 %s 처리"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "설정 ë””ë ‰í† ë¦¬ì— conf.py 파ì¼ì´ 없습니다 (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "ìž˜ëª»ëœ êµ¬ì„± ê°’ì„ ì°¾ì•˜ìŠµë‹ˆë‹¤: 'language = None'. 유효한 언어 코드로 êµ¬ì„±ì„ ì—…ë°ì´íŠ¸í•˜ì‹­ì‹œì˜¤. 대신 'en'(ì˜ì–´)ì„ ì‚¬ìš©í•©ë‹ˆë‹¤."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "Dictionary 구성 설정 %rì„(를) 재정ì˜í•  수 없으며, 무시합니다 (개별 요소를 설정하기 위해 %r 사용)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "ìˆ«ìž %rì´(ê°€) 설정값 %rì— ëŒ€í•´ 유효하지 않으며, 무시합니다"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "지ì›ë˜ì§€ 않는 ìœ í˜•ì˜ êµ¬ì„± 설정 %rì„(를) ìž¬ì •ì˜ í•  수 없으며, 무시합니다"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "ìž¬ì •ì˜ ì¤‘ ì•Œ 수 없는 설정값 %r, 무시합니다"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "해당 ì„¤ì •ê°’ì´ ì—†ìŠµë‹ˆë‹¤: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "설정값 %rì´(ê°€) ì´ë¯¸ 존재합니다"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "구성 파ì¼ì— 구문 오류가 있습니다: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "구성 파ì¼(ë˜ëŠ” 가져온 모듈 중 하나)ì—ì„œ sys.exit()ì„ í˜¸ì¶œí–ˆìŠµë‹ˆë‹¤"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,291 +233,328 @@ msgid ""
"%s"
msgstr "구성 파ì¼ì— 프로그램 오류가 있습니다:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "설정값 'source_suffix'는 문ìžì—´, 문ìžì—´ì˜ ëª©ë¡ ë˜ëŠ” dictionary를 예ìƒí•©ë‹ˆë‹¤. 그러나 `%r'ì´(ê°€) 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "제 %s 절"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "그림 %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "표 %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "예시 %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "설정값 `{name}`ì€(는) {candidates} 중 하나여야 하지만, `{current}`ì´(ê°€) 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "설정값 `{name}'ì€(는) `{current.__name__}' 유형ì´ì§€ë§Œ, {permitted} ìœ í˜•ì„ ê¸°ëŒ€í–ˆìŠµë‹ˆë‹¤."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "설정값 `{name}'ì€(는) `{current.__name__}' 유형ì´ì§€ë§Œ, ê¸°ë³¸ê°’ì€ `{default.__name__}'입니다."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r(ì´)ê°€ 없으므로, 무시합니다."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "2.0 버전부터 Sphinx는 기본ì ìœ¼ë¡œ \"index\"를 root_doc으로 사용합니다. conf.pyì— \"root_doc = 'contents'\"를 추가하십시오."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "ì´ë²¤íŠ¸ %rì´(ê°€) ì´ë¯¸ 존재합니다"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "ì•Œ 수 없는 ì´ë²¤íŠ¸ ì´ë¦„: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "처리기 %r (ì´ë²¤íŠ¸ %rì— ëŒ€í•œ) ì—ì„œ 예외를 ë°œìƒí–ˆìŠµë‹ˆë‹¤"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "%s 확장 ê¸°ëŠ¥ì€ needs_extensions ì„¤ì •ì— ë”°ë¼ í•„ìš”í•˜ì§€ë§Œ, 로드ë˜ì§€ 않았습니다."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "ì´ í”„ë¡œì íŠ¸ì—는 최소한 %s ë²„ì „ì˜ %s 확장 ê¸°ëŠ¥ì´ í•„ìš”í•˜ë¯€ë¡œ 로드 ëœ ë²„ì „(%s)으로 빌드 í•  수 없습니다."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments 구문 분ì„기 ì´ë¦„ %rì„(를) 확ì¸í•  수 없습니다"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "문서 \"%s\"ì— ëŒ€í•´ 여러 파ì¼ì„ 발견했습니다: %r\në¹Œë“œì— %rì„(를) 사용합니다."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "ë¹Œë” í´ëž˜ìŠ¤ %sì— \"name\" ì†ì„±ì´ 없습니다"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "%r 빌ë”ê°€ ì´ë¯¸ 존재합니다 (%s ëª¨ë“ˆì— ìžˆìŒ)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "ë¹Œë” ì´ë¦„ %sì´(ê°€) 등ë¡ë˜ì§€ 않았거나 진입ì ì„ 통해서만 사용할 수 있습니다"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "ë¹Œë” ì´ë¦„ %sì´(ê°€) 등ë¡ë˜ì§€ 않았습니다"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "%s ì˜ì—­ì´ ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "%s ì˜ì—­ì´ ì•„ì§ ë“±ë¡ë˜ì§€ 않았습니다"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "%r ì§€ì‹œë¬¸ì´ %s ì˜ì—­ì— ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "%r ì—­í• ì´ %s ì˜ì—­ì— ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "%r 색ì¸ì´ %s ì˜ì—­ì— ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "%r object_typeì´ ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "%r crossref_typeì´ ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %rì´(ê°€) ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "%rì— ëŒ€í•œ source_parserê°€ ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "%sì— ëŒ€í•œ 소스 í•´ì„기가 등ë¡ë˜ì§€ 않았습니다"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "%rì— ëŒ€í•œ 변환기가 ì´ë¯¸ 존재합니다"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "add_node()ì— ëŒ€í•œ kwargs는 반드시 (visit, depart)ì˜ í•¨ìˆ˜ 튜플ì´ì–´ì•¼ 합니다: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %rì´(ê°€) ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "ìˆ˜ì‹ ë Œë”러 %sì´(ê°€) ì´ë¯¸ 등ë¡ë˜ì—ˆìŠµë‹ˆë‹¤"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "%r 확장 ê¸°ëŠ¥ì€ Sphinxì— ë²„ì „ %s ì´í›„ë¡œ ì´ë¯¸ 병합ë˜ì—ˆìŠµë‹ˆë‹¤. ì´ í™•ìž¥ ê¸°ëŠ¥ì€ ë¬´ì‹œë©ë‹ˆë‹¤."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "ì›ëž˜ 예외:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "확장 기능 %sì„(를) 가져올 수 없습니다"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "확장 기능 %rì— setup() 함수가 없습니다. Sphinx 확장 ëª¨ë“ˆì´ ë§žìŠµë‹ˆê¹Œ?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "ì´ í”„ë¡œì íŠ¸ì—ì„œ 사용하는 %s 확장 기능ì—는 최소한 Sphinx v%sì´(ê°€) 필요합니다. ë”°ë¼ì„œ ì´ ë²„ì „ìœ¼ë¡œ 빌드 í•  수 없습니다."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "확장 기능 %rì´(ê°€) setup() 함수ì—ì„œ 지ì›ë˜ì§€ 않는 개체를 반환했습니다. None ë˜ëŠ” 메타ë°ì´í„° dictionary를 반환해야 합니다"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python í–¥ìƒ ì œì•ˆ; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "ìž˜ëª»ëœ PEP 번호 %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "ìž˜ëª»ëœ RFC 번호 %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "테마 %rì— \"theme\" ì„¤ì •ì´ ì—†ìŠµë‹ˆë‹¤"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "테마 %rì— \"inherit\" ì„¤ì •ì´ ì—†ìŠµë‹ˆë‹¤"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "ì´ë¦„ì´ %rì¸ í…Œë§ˆê°€ 없으며, %rì—ì„œ ìƒì†í•©ë‹ˆë‹¤"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "ê²€ìƒ‰ëœ í…Œë§ˆ 구성ì—ì„œ %s.%s ì„¤ì •ì´ ì¡´ìž¬í•˜ì§€ 않습니다"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "지ì›í•˜ì§€ 않는 테마 옵션 %rì„(를) 설정했습니다"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "테마 ê²½ë¡œì˜ %r 파ì¼ì´ 유효한 ZIP 파ì¼ì´ 아니거나 테마를 í¬í•¨í•˜ì§€ 않습니다"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "ì´ë¦„ì´ %rì¸ í…Œë§ˆë¥¼ ì°¾ì„ ìˆ˜ 없습니다 (theme.conf íŒŒì¼ ëˆ„ë½?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -528,8 +570,8 @@ msgstr "%s 빌ë”ì— ì í•©í•œ ì´ë¯¸ì§€ë¥¼ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
msgid "building [mo]: "
msgstr "빌드 중 [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "ì¶œë ¥ì„ ì“°ëŠ” 중… "
@@ -578,7 +620,7 @@ msgstr "ëª…ë ¹ì¤„ì— ì§€ì •ëœ %d ê°œì˜ ì›ë³¸ 파ì¼"
msgid "targets for %d source files that are out of date"
msgstr "ì˜¤ëž˜ëœ %d ê°œì˜ ì›ë³¸ íŒŒì¼ ëŒ€ìƒ"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "빌드 중 [%s]: "
@@ -587,50 +629,50 @@ msgstr "빌드 중 [%s]: "
msgid "looking for now-outdated files... "
msgstr "ì˜¤ëž˜ëœ íŒŒì¼ì„ 찾는 중… "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d ê°œ ì°¾ìŒ"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "ì°¾ì€ ê²ƒì´ ì—†ìŒ"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "pickleë¡œ í™˜ê²½ì„ ì €ìž¥í•˜ëŠ” 중"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "ì¼ê´€ì„± í™•ì¸ ì¤‘"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "ì˜¤ëž˜ëœ ëŒ€ìƒì´ 없습니다."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "í™˜ê²½ì„ ê°±ì‹ í•˜ëŠ” 중: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s ê°œ 추가ë¨, %s ê°œ 변경ë¨, %s ê°œ 제거ë¨"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "ì›ë³¸ì„ ì½ëŠ” 중… "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "기ë¡í•  문서 ì´ë¦„: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "문서 준비 중"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "ì¤‘ë³µëœ ëª©ì°¨ 항목 발견: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "ì´ë¯¸ì§€ë¥¼ 복사하는 중… "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "ì´ë¯¸ì§€ íŒŒì¼ %rì„(를) ì½ì„ 수 없으며, 대신 복사합니다"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "ì´ë¯¸ì§€ íŒŒì¼ %rì„(를) 복사할 수 없습니다: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "ì´ë¯¸ì§€ íŒŒì¼ %rì„(를) 기ë¡í•  수 없습니다: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow를 ì°¾ì„ ìˆ˜ 없습니다 - ì´ë¯¸ì§€ 파ì¼ì„ 복사합니다"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "mimetype íŒŒì¼ ì“°ëŠ” 중…"
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "META-INF/container.xml íŒŒì¼ ì“°ëŠ” 중…"
@@ -676,470 +718,470 @@ msgstr "META-INF/container.xml íŒŒì¼ ì“°ëŠ” 중…"
msgid "writing content.opf file..."
msgstr "content.opf íŒŒì¼ ì“°ëŠ” 중…"
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "%sì€(는) ì•Œ 수 없는 MIME 유형ì´ë©°, 무시합니다"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "toc.ncx íŒŒì¼ ì“°ëŠ” 중…"
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "%s 파ì¼ì„ 기ë¡í•˜ëŠ” 중…"
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "개요 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "버전 %sì—는 변경 ì‚¬í•­ì´ ì—†ìŠµë‹ˆë‹¤."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "요약 íŒŒì¼ ìž‘ì„± 중…"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "내장"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "모듈 수준"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "ì›ë³¸ 파ì¼ì„ 복사하는 중…"
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "변경 로그 ìƒì„±ì„ 위해 %rì„(를) ì½ì„ 수 없습니다"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "ë”미 빌ë”는 파ì¼ì„ ìƒì„±í•˜ì§€ 않습니다."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "ePub 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "nav.xhtml íŒŒì¼ ì“°ëŠ” 중…"
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "설정값 \"epub_language\"(ë˜ëŠ” \"language\")는 EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "설정값 \"epub_uid\"는 EPUB3ì˜ ê²½ìš° XML ì´ë¦„ì´ì–´ì•¼ 합니다"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "설정값 \"epub_title\"ì€ EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "설정값 \"epub_author\"는 EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "설정값 \"epub_contributor\"는 EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "설정값 \"epub_description\"ì€ EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "설정값 \"epub_publisher\"는 EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "설정값 \"epub_copyright\"(ë˜ëŠ” \"copyright\")는 EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "설정값 \"epub_identifier\"는 EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "설정값 \"version\"ì€ EPUB3ì˜ ê²½ìš° 비워 둘 수 없습니다"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "ìž˜ëª»ëœ css_file: %r, 무시합니다"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "메시지 카탈로그는 %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "%d ê°œì˜ í…œí”Œë¦¿ íŒŒì¼ ëŒ€ìƒ"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "í…œí”Œë¦¿ì„ ì½ëŠ” 중… "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "메시지 카탈로그 작성 중… "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "ìœ„ì˜ ì¶œë ¥ ë˜ëŠ” %(outdir)s/output.txt 파ì¼ì—ì„œ 오류를 확ì¸í•˜ì‹­ì‹œì˜¤"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "ëŠì–´ì§„ ë§í¬: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "linkcheck_allowed_redirectsì—ì„œ ì •ê·œì‹ì„ 컴파ì¼í•˜ì§€ 못했습니다: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "매뉴얼 페ì´ì§€ëŠ” %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "\"man_pages\" ì„¤ì •ê°’ì´ ì—†ìœ¼ë¯€ë¡œ, 매뉴얼 페ì´ì§€ë¥¼ 작성하지 않습니다"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "작성 중"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" ì„¤ì •ê°’ì´ ì•Œ 수 없는 문서 %sì„(를) 참조합니다"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML 페ì´ì§€ëŠ” %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "ë‹¨ì¼ ë¬¸ì„œ ì¡°í•© 중"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "추가 íŒŒì¼ ìž‘ì„± 중"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfo 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nmakeinfo를 통해 작업하려면 해당 디렉토리ì—ì„œ 'make'를 실행하십시오\n(ìžë™ìœ¼ë¡œ 수행하려면 여기ì—ì„œ 'make info'를 사용하십시오)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "\"texinfo_documents\" ì„¤ì •ê°’ì´ ì—†ìœ¼ë¯€ë¡œ, 문서를 작성하지 않습니다"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "\"texinfo_documents\" ì„¤ì •ê°’ì´ ì•Œ 수 없는 문서 %sì„(를) 참조합니다"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "%s 처리 중"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "참조 처리 중…"
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (문서 "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "Texinfo ì§€ì› íŒŒì¼ì„ 복사하는 중"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "Makefile 쓰기 오류: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "í…스트 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "%s íŒŒì¼ ì“°ê¸° 오류: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XML 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "ì˜ì‚¬ XML 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "빌드 ì •ë³´ 파ì¼ì´ ì†ìƒë˜ì—ˆìŠµë‹ˆë‹¤: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML 페ì´ì§€ëŠ” %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "빌드 ì •ë³´ 파ì¼ì„ ì½ì„ 수 없습니다: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%Yë…„ %mì›” %dì¼"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "ì „ì²´ 색ì¸"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "색ì¸"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "다ìŒ"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "ì´ì „"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "ìƒ‰ì¸ ìƒì„± 중"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "추가 페ì´ì§€ 작성 중"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "다운로드 가능한 파ì¼ì„ 복사하는 중… "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "다운로드 가능한 íŒŒì¼ %rì„(를) 복사할 수 없습니다: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "html_static_fileì— ìžˆëŠ” 파ì¼ì„ 복사할 수 없습니다: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "ì •ì  íŒŒì¼ì„ 복사하는 중"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "ì •ì  íŒŒì¼ì„ 복사할 수 없습니다: %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "추가 파ì¼ì„ 복사하는 중"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "추가 파ì¼ì„ 복사할 수 없습니다: %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "빌드 ì •ë³´ íŒŒì¼ ì“°ê¸° 실패: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "검색 색ì¸ì„ 불러올 수 없지만 모든 문서가 작성ë˜ì§€ëŠ” ì•Šì€ ê²ƒì€ ì•„ë‹™ë‹ˆë‹¤. 색ì¸ì´ 불완전합니다."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "%s 페ì´ì§€ê°€ html_sidebarsì˜ ë‘ íŒ¨í„´(%r ë° %r)ê³¼ ì¼ì¹˜í•©ë‹ˆë‹¤"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "%s 페ì´ì§€ë¥¼ ë Œë”ë§ í•  ë•Œ 유니코드 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. ASCIIê°€ ì•„ë‹Œ ë‚´ìš©ì„ í¬í•¨í•˜ëŠ” 모든 ì„¤ì •ê°’ì´ ìœ ë‹ˆì½”ë“œ 문ìžì—´ì¸ì§€ 확ì¸í•˜ì‹­ì‹œì˜¤."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "%s 페ì´ì§€ë¥¼ ë Œë”ë§í•˜ëŠ” ì¤‘ì— ì˜¤ë¥˜ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤.\nì›ì¸: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "ê°ì²´ ì¸ë²¤í† ë¦¬ ë¤í”„ 중"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "%sì—ì„œ 검색 ì¸ë±ìŠ¤ ë¤í”„ 중"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "ìž˜ëª»ëœ js_file: %r, 무시합니다"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "여러 math_renderersê°€ 등ë¡ë˜ì–´ 있습니다. 하지만 math_rendererê°€ ì„ íƒë˜ì§€ 않았습니다."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "ì•Œ 수 없는 math_renderer %rì´(ê°€) 지정ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path 항목 %rì´(ê°€) 없습니다"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path 항목 %rì´(ê°€) outdir ì•ˆì— ìžˆìŠµë‹ˆë‹¤"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path 항목 %rì´(ê°€) 없습니다"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path 항목 %rì´(ê°€) outdir ì•ˆì— ìžˆìŠµë‹ˆë‹¤"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "로고 íŒŒì¼ %rì´(ê°€) 존재하지 않습니다"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "Favicon íŒŒì¼ %rì´(ê°€) 존재하지 않습니다"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s 문서"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeX 파ì¼ì€ %(outdir)sì— ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\n(pdf)latexì„ í†µí•´ 작업하려면 해당 디렉토리ì—ì„œ 'make'를 실행하십시오\n(ìžë™ìœ¼ë¡œ 수행하려면 여기ì—ì„œ 'make latexpdf'를 사용하십시오)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "\"latex_documents\" ì„¤ì •ê°’ì´ ì—†ìœ¼ë¯€ë¡œ, 문서를 작성하지 않습니다"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "\"latex_documents\" ì„¤ì •ê°’ì´ ì•Œ 수 없는 문서 %sì„(를) 참조합니다"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "색ì¸"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "릴리스"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "%r ì–¸ì–´ì— ëŒ€í•´ 알려진 Babel ì˜µì…˜ì´ ì—†ìŠµë‹ˆë‹¤"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "TeX ì§€ì› íŒŒì¼ì„ 복사하는 중"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "TeX ì§€ì› íŒŒì¼ì„ 복사하는 중…"
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "추가 파ì¼ì„ 복사하는 중"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "알 수 없는 설정 키: latex_elements[%r], 무시합니다."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "알 수 없는 테마 옵션: latex_theme_options[%r], 무시합니다."
@@ -1154,15 +1196,15 @@ msgstr "%rì— \"theme\" ì„¤ì •ì´ ì—†ìŠµë‹ˆë‹¤"
msgid "%r doesn't have \"%s\" setting"
msgstr "%rì— \"%s\" ì„¤ì •ì´ ì—†ìŠµë‹ˆë‹¤"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr "버그 보고서는 <https://github.com/sphinx-doc/sphinx/issues>ì˜ íŠ¸
msgid "job number should be a positive number"
msgstr "ìž‘ì—… 숫ìžëŠ” 양수여야 합니다"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "ìžì„¸í•œ ë‚´ìš©ì€ <https://www.sphinx-doc.org/>를 참조하십시오."
@@ -1254,257 +1296,264 @@ msgid "path to output directory"
msgstr "출력 디렉토리 경로"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "다시 빌드 í•  특정 파ì¼ì˜ 목ë¡. -aê°€ 지정ë˜ë©´ 무시합니다"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "ì¼ë°˜ 옵션"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "사용할 ë¹Œë” (기본값: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "모든 íŒŒì¼ ê¸°ë¡ (기본값: 새 파ì¼ê³¼ ë³€ê²½ëœ íŒŒì¼ë§Œ 기ë¡)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "ì €ìž¥ëœ í™˜ê²½ì„ ì‚¬ìš©í•˜ì§€ ì•Šê³ , í•­ìƒ ëª¨ë“  íŒŒì¼ ì½ê¸°"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "ìºì‹œëœ 환경 ë° doctree íŒŒì¼ ê²½ë¡œ (기본값: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "가능한 경우 N ê°œì˜ í”„ë¡œì„¸ìŠ¤ë¥¼ 사용하여 병렬로 빌드 (특수 ê°’ \"auto\"는 CPU 개수로 N ê°’ì„ ì„¤ì •í•©ë‹ˆë‹¤)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "구성 파ì¼(conf.py)ì´ ìžˆëŠ” 경로 (기본값: SOURCEDIRê³¼ ë™ì¼)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "설정 파ì¼ì„ 전혀 사용하지 ì•Šê³ , -D 옵션들만 사용"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "구성 파ì¼ì˜ 설정 무시"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "HTML í…œí”Œë¦¿ì— ê°’ 전달"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "태그를 ì •ì˜: 태그가 있는 \"only\" 블ë¡ì„ í¬í•¨"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "까다로움 모드, 모든 누ë½ëœ ì°¸ì¡°ì— ëŒ€í•´ 경고 ë°œìƒ"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "콘솔 출력 옵션"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "ìƒì„¸ë„ 높임 (반복 가능)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "stdoutì— ì¶œë ¥í•˜ì§€ ì•Šê³ , stderrì— ê²½ê³ ë§Œ 표시"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "경고를 í¬í•¨í•˜ì—¬ 아무 ì¶œë ¥ë„ í•˜ì§€ ì•ŠìŒ"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "컬러 출력 허용 (기본값: ìžë™ ê°ì§€)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "컬러 ì¶œë ¥ì„ í—ˆìš©í•˜ì§€ ì•ŠìŒ (기본값: ìžë™ ê°ì§€)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "주어진 파ì¼ì— 경고(ë° ì˜¤ë¥˜)를 기ë¡"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "경고를 오류로 바꿈"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "-W와 함께 지정하여, 경고가 ë°œìƒí–ˆì„ ë•Œ ê³„ì† ì§„í–‰"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "예외 ë°œìƒ ì‹œ ì „ì²´ ì¶”ì  í‘œì‹œ"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "예외 ë°œìƒ ì‹œ Pdb 실행"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "-a 옵션과 íŒŒì¼ ì´ë¦„ì„ í•¨ê»˜ 사용할 수 없습니다"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "경고 ê¸°ë¡ íŒŒì¼ %rì„(를) ì—´ 수 없습니다: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D 옵션 ì¸ìˆ˜ëŠ” name=value 형ì‹ì´ì–´ì•¼ 합니다"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A 옵션 ì¸ìˆ˜ëŠ” name=value 형ì‹ì´ì–´ì•¼ 합니다"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "모듈ì—ì„œ ìžë™ìœ¼ë¡œ docstring 삽입"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "doctest 블ë¡ì˜ 코드 ì¡°ê°ì„ ìžë™ìœ¼ë¡œ 테스트"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "다른 프로ì íŠ¸ì˜ Sphinx 문서 ê°„ ë§í¬"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "빌드 ì‹œ 표시하거나 숨길 수 있는 \"í•  ì¼\" 항목 작성"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "ë¬¸ì„œì˜ ì»¤ë²„ë¦¬ì§€ 확ì¸"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "PNG나 SVG ì´ë¯¸ì§€ë¡œ ë Œë”ë§ ëœ ìˆ˜ì‹ í¬í•¨"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "MathJaxë¡œ 브ë¼ìš°ì €ì—ì„œ ë Œë”ë§ í•˜ëŠ” ìˆ˜ì‹ í¬í•¨"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "ì„¤ì •ê°’ì„ ê¸°ë°˜ìœ¼ë¡œ 콘í…츠를 조건부 í¬í•¨"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "문서화 ëœ Python ê°ì²´ì˜ 소스 ì½”ë“œì— ëŒ€í•œ ë§í¬ í¬í•¨"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "GitHub 페ì´ì§€ì— 문서를 게시하기 위해 .nojekyll íŒŒì¼ ìƒì„±"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "유효한 경로 ì´ë¦„ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "í…스트를 입력하십시오."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "%s 중 하나를 입력하십시오."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "'y' ë˜ëŠ” 'n'ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "íŒŒì¼ ì ‘ë¯¸ì‚¬ë¥¼ 입력하십시오 (예: '.rst' ë˜ëŠ” '.txt')."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Sphinx %s 빠른 시작 ìœ í‹¸ë¦¬í‹°ì— ì˜¤ì‹  ê²ƒì„ í™˜ì˜í•©ë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "ë‹¤ìŒ ì„¤ì •ì— ëŒ€í•œ ê°’ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤ (대괄호로 묶여 있는 ê¸°ë³¸ê°’ì´ ì¡´ìž¬í•˜ê³ \nì´ ê°’ì„ ì‚¬ìš©í•˜ë ¤ë©´ 바로 Enter를 누릅니다)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "ì„ íƒí•œ 루트 경로: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "ë¬¸ì„œì˜ ë£¨íŠ¸ 경로를 입력하십시오."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "ë¬¸ì„œì˜ ë£¨íŠ¸ 경로"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "오류: ì„ íƒí•œ 루트 경로ì—ì„œ 기존 conf.py 파ì¼ì´ 발견ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart는 기존 Sphinx 프로ì íŠ¸ë¥¼ ë®ì–´ 쓰지 않습니다."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "새 루트 경로를 입력하십시오 (ë˜ëŠ” Enter를 눌러 종료)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Sphinx ì¶œë ¥ì„ ìœ„í•œ 빌드 디렉토리를 배치하는 ë‘ ê°€ì§€ ì˜µì…˜ì´ ìžˆìŠµë‹ˆë‹¤.\n루트 경로 ë‚´ì—ì„œ \"_build\" 디렉토리를 사용하거나, 루트 경로 ë‚´ì—ì„œ\n\"source\"와 \"build\" 디렉토리로 분리합니다."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "ì›ë³¸ê³¼ 빌드 디렉토리 분리 (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "루트 디렉토리 ë‚´ì— ë‘ ê°œì˜ ì¶”ê°€ 디렉토리가 ìƒì„±ë©ë‹ˆë‹¤. ì‚¬ìš©ìž ì •ì˜ HTML 템플릿ì˜\n경우 \"_templates\", ì‚¬ìš©ìž ì •ì˜ ìŠ¤íƒ€ì¼ì‹œíŠ¸ ë° ê¸°íƒ€ ì •ì  íŒŒì¼ì˜ 경우 \"_static\"\n입니다. 다른 ì ‘ë‘사(\".\" ê³¼ ê°™ì€)를 입력하여 밑줄 문ìžë¥¼ 변경할 수 있습니다."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "템플릿 ë° ì •ì  ë””ë ‰í† ë¦¬ì˜ ì´ë¦„ ì ‘ë‘사"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "프로ì íŠ¸ ì´ë¦„ì€ ë¹Œë“œ ëœ ë¬¸ì„œì˜ ì—¬ëŸ¬ ìœ„ì¹˜ì— í‘œì‹œë©ë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "프로ì íŠ¸ ì´ë¦„"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "ìž‘ì„±ìž ì´ë¦„"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx는 ì†Œí”„íŠ¸ì›¨ì–´ì— ëŒ€í•œ \"버전\"ê³¼ \"릴리스\"ë¼ëŠ” ê°œë…ì„ ê°€ì§€ê³  있습니다.\nê° ë²„ì „ì—는 여러 릴리스가 ìžˆì„ ìˆ˜ 있습니다. 예를 들어 Pythonì˜ ê²½ìš° 버전ì€\n2.5나 3.0ê³¼ ê°™ì€ ë°˜ë©´ 릴리스는 2.5.1 ë˜ëŠ” 3.0a1ê³¼ 같습니다.\nì´ëŸ¬í•œ ì´ì¤‘ 구조가 필요하지 않으면 둘 다 ë™ì¼í•œ 값으로 설정하십시오."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "프로ì íŠ¸ 버전"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "프로ì íŠ¸ 릴리스"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "문서를 ì˜ì–´ ì´ì™¸ì˜ 언어로 작성하려는 경우, 여기ì—ì„œ 해당 언어 코드로 언어를\nì„ íƒí•  수 있습니다. 그러면 Sphinxê°€ ìƒì„±í•œ í…스트를 해당 언어로 번역합니다.\n\n지ì›ë˜ëŠ” 코드 목ë¡ì€\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language\n를 참조하십시오."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "프로ì íŠ¸ 언어"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "ì›ë³¸ 파ì¼ì˜ íŒŒì¼ ì´ë¦„ 접미사. ì¼ë°˜ì ìœ¼ë¡œ \".txt\" ë˜ëŠ” \".rst\" 입니다. ì´ ì ‘ë¯¸ì‚¬ê°€\n있는 파ì¼ë§Œ 문서로 간주ë©ë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "ì›ë³¸ íŒŒì¼ ì ‘ë¯¸ì‚¬"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "í•œ 문서는 \"컨í…츠 트리\"ì˜ ìµœìƒìœ„ 노드, 즉 문서 계층 êµ¬ì¡°ì˜ ë£¨íŠ¸ë¡œ 간주ëœë‹¤ëŠ”\nì ì—ì„œ 특별합니다. ì¼ë°˜ì ìœ¼ë¡œ ì´ ê°’ì€ \"index\" ì´ì§€ë§Œ, \"index\" 문서가\nì‚¬ìš©ìž ì •ì˜ í…œí”Œë¦¿ì¼ ê²½ìš° ì´ë¥¼ 다른 íŒŒì¼ ì´ë¦„으로 설정할 ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "마스터 ë¬¸ì„œì˜ ì´ë¦„ (접미사 ì—†ì´)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "오류: ì„ íƒí•œ 루트 ê²½ë¡œì— ë§ˆìŠ¤í„° íŒŒì¼ %sì´(ê°€) ì´ë¯¸ 있습니다."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart는 기존 파ì¼ì„ ë®ì–´ 쓰지 않습니다."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "새 íŒŒì¼ ì´ë¦„ì„ ìž…ë ¥í•˜ê±°ë‚˜ 기존 파ì¼ì˜ ì´ë¦„ì„ ë°”ê¾¸ê³ , Enter를 누르십시오"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "ë‹¤ìŒ Sphinx 확장 기능 중 사용 설정해야 하는 í•­ëª©ì„ ì§€ì •í•˜ì‹­ì‹œì˜¤:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "참고: imgmath와 mathjax는 ë™ì‹œì— 활성화 í•  수 없습니다. imgmathê°€ ì„ íƒ ì·¨ì†Œë˜ì—ˆìŠµë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Makefile ë° Windows 명령 파ì¼ì„ ìƒì„±í•  수 있으므로, sphinx-build를 ì§ì ‘ 호출하는\n대신 (예를 들어) `make html'ì„ ì‹¤í–‰í•˜ê¸°ë§Œ 하면 ë©ë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Makefileì„ ë§Œë“œì‹œê² ìŠµë‹ˆê¹Œ? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Windows 명령 파ì¼ì„ 만드시겠습니까? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "%s 파ì¼ì„ 만드는 중입니다."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "%s 파ì¼ì´ ì´ë¯¸ 존재하여, 건너ëœë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "완료ë¨: 초기 디렉토리 구조가 ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "ì´ì œ 마스터 íŒŒì¼ %sì„(를) 채우고 다른 ì›ë³¸ 문서 파ì¼ì„ 만들어야 합니다. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Makefileì„ ì‚¬ìš©í•˜ì—¬ 다ìŒê³¼ ê°™ì´ ë¬¸ì„œë¥¼ 빌드하십시오:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "sphinx-build ëª…ë ¹ì„ ì‚¬ìš©í•˜ì—¬ 다ìŒê³¼ ê°™ì´ ë¬¸ì„œë¥¼ 빌드하십시오:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "여기서 \"builder\"는 지ì›ë˜ëŠ” ë¹Œë” ì¤‘ 하나(예: html, latex, linkcheck)입니다."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nSphinx 프로ì íŠ¸ì— 필요한 파ì¼ì„ ìƒì„±í•©ë‹ˆë‹¤.\n\nsphinx-quickstart는 대화형 ë„구로서, 프로ì íŠ¸ì— 대한 몇 가지 ì§ˆë¬¸ì„ í•œ 다ìŒ\n완전한 문서 디렉토리와 (sphinx-build와 함께 사용할 수 있는) 견본 Makefileì„ ìƒì„±í•©ë‹ˆë‹¤.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "조용한 모드"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "프로ì íŠ¸ 루트 디렉토리"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "구조 옵션"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "ì§€ì •ëœ ê²½ìš°, ì›ë³¸ê³¼ 빌드 디렉토리를 구분합니다"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "ì§€ì •ëœ ê²½ìš°, ì›ë³¸ 디렉토리 ì•„ëž˜ì— ë¹Œë“œ 디렉토리를 만듭니다"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "_templates 등ì—ì„œ ë§ˆì¹¨í‘œì˜ ëŒ€ì²´ 문ìž"
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "프로ì íŠ¸ 기본 옵션"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "프로ì íŠ¸ ì´ë¦„"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "ìž‘ì„±ìž ì´ë¦„"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "프로ì íŠ¸ì˜ 버전"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "프로ì íŠ¸ì˜ 릴리스"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "문서 언어"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "ì›ë³¸ 파ì¼ì˜ 접미사"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "마스터 문서 ì´ë¦„"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "EPUB 사용"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "확장 기능 옵션"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "%s 확장 기능 사용"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "ìž„ì˜ì˜ 확장 기능 사용"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefileê³¼ 배치 íŒŒì¼ ìƒì„±"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "makefile ìƒì„±"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "makefileì„ ìƒì„±í•˜ì§€ ì•ŠìŒ"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "배치 íŒŒì¼ ìƒì„±"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "배치 파ì¼ì„ ìƒì„±í•˜ì§€ ì•ŠìŒ"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "Makefile/make.batì—ì„œ make 모드 사용"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "Makefile/make.batì—ì„œ make 모드 사용하지 ì•ŠìŒ"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "프로ì íŠ¸ 템플릿"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "템플릿 파ì¼ì— 대한 템플릿 디렉토리"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "템플릿 변수 ì •ì˜"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"quiet\"ì´ ì§€ì •ë˜ì—ˆì§€ë§Œ, \"project\" ë˜ëŠ” \"author\"ê°€ ì •ì˜ë˜ì§€ 않았습니다."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "오류: ì§€ì •ëœ ê²½ë¡œê°€ 디렉토리가 아니거나, Sphinx 파ì¼ì´ ì´ë¯¸ 있습니다."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart는 빈 디렉토리ì—만 ìƒì„±ë©ë‹ˆë‹¤. 새 루트 경로를 지정하십시오."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "ìž˜ëª»ëœ í…œí”Œë¦¿ 변수: %s"
@@ -1826,47 +1875,47 @@ msgstr "ë¶„ë¦¬ëœ \"lines\" 집합과 함께 \"lineno-match\"를 사용할 수 ì
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "í–‰ 지정 %r: í¬í•¨ íŒŒì¼ %rì—ì„œ 가져온 ì¤„ì´ ì—†ìŠµë‹ˆë‹¤"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "toctree glob 패턴 %r ì´(ê°€) ì–´ëŠ ë¬¸ì„œì™€ë„ ì¼ì¹˜í•˜ì§€ 않습니다"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctreeì— ì œì™¸ëœ ë¬¸ì„œ %rì— ëŒ€í•œ 참조가 있ìŒ"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctreeì— ì¡´ìž¬í•˜ì§€ 않는 문서 %rì— ëŒ€í•œ 참조가 있ìŒ"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "toctreeì—ì„œ 중복 í•­ëª©ì´ ë°œê²¬ë¨: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "구역 작성ìž: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "모듈 작성ìž: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "코드 작성ìž: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "작성ìž: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ".. acks ë‚´ìš©ì´ ëª©ë¡ì´ 아닙니다"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ".. hlist ë‚´ìš©ì´ ëª©ë¡ì´ 아닙니다"
@@ -1881,82 +1930,10 @@ msgstr "csv-table ì§€ì‹œë¬¸ì˜ \":file:\" ì˜µì…˜ì€ ì´ì œ 절대 경로를 소ì
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "중복 C ì„ ì–¸ì´ë©°, %s:%sì— ì •ì˜ë˜ì—ˆìŠµë‹ˆë‹¤.\nì„ ì–¸ì€ '.. c:%s:: %s' 입니다."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "매개변수"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "반환값"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "반환"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "반환 형ì‹"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "멤버 변수"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "변수"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "함수"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "매í¬ë¡œ"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "구조체"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "공용체"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "열거형"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "ì—´ê±°ìž"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "ìžë£Œí˜•"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "함수 매개변수"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "버전 %sì— ì¶”ê°€"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "버전 %sì—ì„œ 변경"
msgid "Deprecated since version %s"
msgstr "버전 %s부터 í지ë¨"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "중복 ì¸ìš© %s, 다른 ì¸ìŠ¤í„´ìŠ¤ëŠ” %sì— ìžˆìŒ"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "ì¸ìš© [%s]ì´(ê°€) 참조ë˜ì§€ 않았습니다."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "중복 C++ ì„ ì–¸ì´ë©°, %s:%sì— ì •ì˜ë˜ì—ˆìŠµë‹ˆë‹¤.\nì„ ì–¸ì€ '.. cpp:%s:: %s' 입니다."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "템플릿 매개변수"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "예외"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "í´ëž˜ìŠ¤"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "콘셉트"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "템플릿 매개변수"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (내장 함수)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s 메서드)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (í´ëž˜ìŠ¤)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (ì „ì—­ 변수 ë˜ëŠ” ìƒìˆ˜)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%sì˜ ì†ì„±)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "ì¸ìˆ˜"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "예외"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "반환"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "반환 형ì‹"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (모듈)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "함수"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "메서드"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "í´ëž˜ìŠ¤"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "ë°ì´í„°"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "ì†ì„±"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "모듈"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "ì¤‘ë³µëœ %s 설명 (%sì— ëŒ€í•œ), 다른 í•­ëª©ì€ %s (%s)ì— ìžˆìŒ"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "중복 ë ˆì´ë¸”ì˜ ìˆ˜ì‹ %s, 다른 ì¸ìŠ¤í„´ìŠ¤ëŠ” %sì— ìžˆìŒ"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "ìž˜ëª»ëœ math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (지시문)"
+
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (지시문 옵션)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (ì—­í• )"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "지시문"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "지시문 옵션"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "ì—­í• "
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "ì¤‘ë³µëœ %s %s 설명, 다른 ì¸ìŠ¤í„´ìŠ¤ëŠ” %sì— ìžˆìŒ"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "중복 C ì„ ì–¸ì´ë©°, %s:%sì— ì •ì˜ë˜ì—ˆìŠµë‹ˆë‹¤.\nì„ ì–¸ì€ '.. c:%s:: %s' 입니다."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "매개변수"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "반환값"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "멤버 변수"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr "변수"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "예외 ë°œìƒ"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "매í¬ë¡œ"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "구조체"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "공용체"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "열거형"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "ì—´ê±°ìž"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "ìžë£Œí˜•"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "함수 매개변수"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "템플릿 매개변수"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "중복 C++ ì„ ì–¸ì´ë©°, %s:%sì— ì •ì˜ë˜ì—ˆìŠµë‹ˆë‹¤.\nì„ ì–¸ì€ '.. cpp:%s:: %s' 입니다."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "콘셉트"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "템플릿 매개변수"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s 모듈)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s 모듈)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (내장 변수)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (내장 í´ëž˜ìŠ¤)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (%s í´ëž˜ìŠ¤)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%sì˜ í´ëž˜ìŠ¤ 메서드)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%sì˜ ì •ì  ë©”ì„œë“œ)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (%sì˜ íŠ¹ì„±)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python 모듈 목ë¡"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "모듈"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "í지ë¨"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "예외"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "í´ëž˜ìŠ¤ 메서드"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "ì •ì  ë©”ì„œë“œ"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "특성"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "ìƒí˜¸ 참조 %rì— ëŒ€í•´ 둘 ì´ìƒì˜ 대ìƒì„ 찾았습니다: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (í지ë¨)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (지시문)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (지시문 옵션)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (ì—­í• )"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "지시문"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "지시문 옵션"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "ì—­í• "
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "변수"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "ì¤‘ë³µëœ %s %s 설명, 다른 ì¸ìŠ¤í„´ìŠ¤ëŠ” %sì— ìžˆìŒ"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "예외 ë°œìƒ"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "환경 변수; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "ìž˜ëª»ëœ ì˜µì…˜ 설명 %r, \"opt\", \"-opt args\", \"--opt args\", \"/opt args\", \"+opt args\"와 ê°™ì€ í˜•ì‹ì´ì–´ì•¼ 합니다"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s 명령줄 옵션"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "명령줄 옵션"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "ìš©ì–´ ì•žì—는 빈 ì¤„ì´ ì™€ì•¼ 합니다"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "ìš©ì–´ ì •ì˜ëŠ” 빈 줄로 구분하면 안ë©ë‹ˆë‹¤."
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "ìš©ì–´ ì •ì˜ í˜•ì‹ì´ ìž˜ëª»ëœ ê²ƒ 같습니다. 들여쓰기를 확ì¸í•˜ì‹­ì‹œì˜¤"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "용어 항목"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "문법 토í°"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "참조 ë ˆì´ë¸”"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "환경 변수"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "프로그램 옵션"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "문서"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "모듈 목ë¡"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "검색 페ì´ì§€"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "중복 ë ˆì´ë¸” %s, 다른 ì¸ìŠ¤í„´ìŠ¤ëŠ” %sì— ìžˆìŒ"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "ì¤‘ë³µëœ %s 설명 (%sì— ëŒ€í•œ), 다른 ì¸ìŠ¤í„´ìŠ¤ëŠ” %sì— ìžˆìŒ"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfigê°€ 비활성화ë˜ì—ˆìŠµë‹ˆë‹¤. :numref:는 무시ë©ë‹ˆë‹¤."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "ìƒí˜¸ 참조를 ìƒì„±í•˜ì§€ 못했습니다. ì–´ë–¤ ë²ˆí˜¸ë„ í• ë‹¹ë˜ì§€ 않았습니다: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "ë§í¬ì— ìº¡ì…˜ì´ ì—†ìŠµë‹ˆë‹¤: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "ìž˜ëª»ëœ numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "ìž˜ëª»ëœ numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "ì •ì˜ë˜ì§€ ì•Šì€ ë ˆì´ë¸”: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "ìƒí˜¸ 참조를 ìƒì„±í•˜ì§€ 못했습니다. 제목 ë˜ëŠ” ìº¡ì…˜ì„ ì°¾ì„ ìˆ˜ 없습니다: %r"
@@ -2324,35 +2378,35 @@ msgstr "ì„¤ì •ì´ ë³€ê²½ë¨"
msgid "extensions changed"
msgstr "확장 ê¸°ëŠ¥ì´ ë³€ê²½ë¨"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "빌드 환경 ë²„ì „ì´ ìµœì‹ ì´ ì•„ë‹˜"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "ì›ë³¸ 디렉토리가 변경ë¨"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "ì´ í™˜ê²½ì€ ì„ íƒí•œ 빌ë”와 호환ë˜ì§€ 않습니다. 다른 doctree 디렉토리를 ì„ íƒí•˜ì‹­ì‹œì˜¤."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "%sì—ì„œ 문서를 íƒìƒ‰í•˜ì§€ 못했습니다: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "%r ì˜ì—­ì´ 등ë¡ë˜ì§€ 않았습니다"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "문서가 ì–´ëŠ toctreeì—ë„ í¬í•¨ë˜ì–´ 있지 ì•ŠìŒ"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "ìžì²´ ì°¸ì¡°ëœ toctreeê°€ 발견ë˜ì—ˆìŠµë‹ˆë‹¤. 무시합니다."
@@ -2376,39 +2430,39 @@ msgstr "ì•Œ 수 없는 ìƒ‰ì¸ í•­ëª© 유형 %r"
msgid "Symbols"
msgstr "기호"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "순환 toctree 참조가 ê°ì§€ë˜ì—ˆìœ¼ë©°, 무시합니다: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctreeì— ì œëª©ì´ ì—†ëŠ” 문서 %rì— ëŒ€í•œ 참조가 있습니다. ë§í¬ê°€ ìƒì„±ë˜ì§€ 않습니다"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "ì´ë¯¸ì§€ 파ì¼ì„ ì½ì„ 수 ì—†ìŒ: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "ì´ë¯¸ì§€ íŒŒì¼ %sì„(를) ì½ì„ 수 ì—†ìŒ: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "다운로드 가능 파ì¼ì„ ì½ì„ 수 ì—†ìŒ: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%sì— ì´ë¯¸ 구역 번호가 할당ë˜ì—ˆìŠµë‹ˆë‹¤ (ì¤‘ì²©ëœ ë²ˆí˜¸ ë¶™ì¸ toctree?)"
@@ -2418,7 +2472,7 @@ msgstr "%sì— ì´ë¯¸ 구역 번호가 할당ë˜ì—ˆìŠµë‹ˆë‹¤ (ì¤‘ì²©ëœ ë²ˆí˜¸ ë¶
msgid "Would create file %s."
msgstr "%s 파ì¼ì„ 작성합니다."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\n<MODULE_PATH>ì—ì„œ Python 모듈 ë° íŒ¨í‚¤ì§€ë¥¼ 재귀ì ìœ¼ë¡œ 찾고\nautomodule ì§€ì‹œë¬¸ì´ ìžˆëŠ” 패키지 당 í•˜ë‚˜ì˜ reST 파ì¼ì„ <OUTPUT_PATH>ì— ë§Œë“­ë‹ˆë‹¤.\n\n<EXCLUDE_PATTERN>ì€ ìƒì„±ì—ì„œ 제외할 íŒŒì¼ ë˜ëŠ” 디렉토리 íŒ¨í„´ì¼ ìˆ˜ 있습니다.\n\n참고: 기본ì ìœ¼ë¡œì´ 스í¬ë¦½íŠ¸ëŠ” ì´ë¯¸ ìƒì„±ëœ 파ì¼ì„ ë®ì–´ 쓰지 않습니다."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "ë¬¸ì„œì— ëŒ€í•œ 모듈 경로"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "ìƒì„±ì—ì„œ 제외할 fnmatch 형ì‹ì˜ íŒŒì¼ ë˜ëŠ” 디렉토리 패턴"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "모든 ì¶œë ¥ì„ ì €ìž¥í•  디렉토리"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "ëª©ì°¨ì— í‘œì‹œí•  하위 ëª¨ë“ˆì˜ ìµœëŒ€ ê¹Šì´ (기본값: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "기존 íŒŒì¼ ë®ì–´ì“°ê¸°"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "심볼릭 ë§í¬ë¥¼ ë”°ë¼ê°‘니다. collective.recipe.omeletteê³¼ 결합하면 강력합니다."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "파ì¼ì„ ìƒì„±í•˜ì§€ ì•Šê³  스í¬ë¦½íŠ¸ 실행"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "ê° ëª¨ë“ˆì— ëŒ€í•œ 문서를 개별 페ì´ì§€ì— 배치"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "\"_private\" 모듈 í¬í•¨"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "ëª©ì°¨ì˜ íŒŒì¼ ì´ë¦„ (기본값: modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "목차 파ì¼ì„ 만들지 ì•ŠìŒ"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "모듈/íŒ¨í‚¤ì§€ì— ëŒ€í•œ ì œëª©ì„ ë§Œë“¤ì§€ ì•ŠìŒ (예: docstringì— ì´ë¯¸ í¬í•¨ëœ 경우)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "서브 모듈 문서 ì•žì— ëª¨ë“ˆ 문서를 ë„£ìŒ"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "PEP-0420 ì•”ì‹œì  ë„¤ìž„ 스페ì´ìŠ¤ ì‚¬ì–‘ì— ë”°ë¼ ëª¨ë“ˆ 경로 í•´ì„"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "íŒŒì¼ í™•ìž¥ìž (기본값: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "sphinx-quickstartë¡œ ì „ì²´ 프로ì íŠ¸ ìƒì„±"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "--fullì´ ì£¼ì–´ì¡Œì„ ë•Œ, sys.pathì— module_path 추가"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "프로ì íŠ¸ ì´ë¦„ (기본값: 루트 모듈 ì´ë¦„)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "--fullì´ ì£¼ì–´ì¡Œì„ ë•Œ, 프로ì íŠ¸ 작성ìž"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "--fullì´ ì£¼ì–´ì¡Œì„ ë•Œ, 프로ì íŠ¸ 버전"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "--fullì´ ì£¼ì–´ì¡Œì„ ë•Œ, 프로ì íŠ¸ì˜ 릴리스ì´ë©° ê¸°ë³¸ê°’ì€ --doc-version ê°’ê³¼ ê°™ìŒ"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "확장 기능 옵션"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%sì€(는) 디렉토리가 아닙니다."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "ìž˜ëª»ëœ ì •ê·œì‹ %r (%sì—ì„œ)"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "소스ì—ì„œ 커버리지 테스트가 완료ë˜ì—ˆìœ¼ë©°, %(outdir)s/python.txt ì—ì„œ 결과를 확ì¸í•˜ì‹­ì‹œì˜¤."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "coverage_c_regexesì˜ ìž˜ëª»ëœ ì •ê·œí‘œí˜„ì‹ %r"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "문서화ë˜ì§€ ì•Šì€ C API: %s [%s], íŒŒì¼ %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "%s ëª¨ë“ˆì„ ê°€ì ¸ì˜¬ 수 없습니다: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "문서화ë˜ì§€ ì•Šì€ Python 함수: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "문서화ë˜ì§€ ì•Šì€ Python í´ëž˜ìŠ¤: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "문서화ë˜ì§€ ì•Šì€ Python 메소드: %s :: %s :: %s"
@@ -2596,24 +2650,24 @@ msgstr "'%s'ì€(는) 유효한 pyversion ì˜µì…˜ì´ ì•„ë‹™ë‹ˆë‹¤"
msgid "invalid TestCode type"
msgstr "ìž˜ëª»ëœ TestCode 유형"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "소스ì—ì„œ doctest 테스트가 완료ë˜ì—ˆìœ¼ë©°, %(outdir)s/output.txt ì—ì„œ 결과를 확ì¸í•˜ì‹­ì‹œì˜¤."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "%s 블ë¡(%s:%s)ì— ì½”ë“œ/출력 ì—†ìŒ"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "ìž˜ëª»ëœ doctest 코드 무시: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== 가장 ëŠë¦° ì½ê¸° 시간 ======================="
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "하드코딩 ëœ ë§í¬ %rì€(는) extlinkë¡œ 대체할 수 있습니다 (대신 %rì„(를) 사용해 보십시오)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz ì§€ì‹œë¬¸ì— ë‚´ìš©ê³¼ íŒŒì¼ ì´ë¦„ ì¸ìˆ˜ë¥¼ ëª¨ë‘ ì§€ì •í•  수 없습니다"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "외부 Graphviz íŒŒì¼ %rì„(를) ì°¾ì„ ìˆ˜ 없거나 ì½ì§€ 못했습니다"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "ë‚´ìš©ì´ ì—†ëŠ” \"graphviz\" ì§€ì‹œë¬¸ì„ ë¬´ì‹œí•©ë‹ˆë‹¤."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot 명령 %rì„(를) 실행할 수 없습니다 (graphviz ì¶œë ¥ì— í•„ìš”). graphviz_dot ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤."
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr "dotì´ ì˜¤ë¥˜ì™€ 함께 종료ë˜ì—ˆìŠµë‹ˆë‹¤:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr "dotì´ ì¶œë ¥ 파ì¼ì„ ìƒì„±í•˜ì§€ 않았습니다:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_formatì€ 'png', 'svg' 중 하나여야 하지만, ê°’ì´ %r 입니다"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "dot 코드 %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[그래프: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[그래프]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr "ì´ë¯¸ì§€ 변환 명령 %rì„(를) 실행할 수 없습니다. 'sphinx.ext.imgconverter'ì—는 기본ì ìœ¼ë¡œ ImageMagickì´ í•„ìš”í•©ë‹ˆë‹¤. 해당 í”„ë¡œê·¸ëž¨ì´ ì„¤ì¹˜ë˜ì–´ 있는지 확ì¸í•˜ê±°ë‚˜, 'image_converter' ì˜µì…˜ì„ ì‚¬ìš©ìž ì •ì˜ ë³€í™˜ 명령으로 설정하십시오.\n\n역추ì : %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr "convertê°€ 오류와 함께 종료ë˜ì—ˆìŠµë‹ˆë‹¤:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "변환 명령 %rì„(를) 실행할 수 없습니다. image_converter ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤."
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "LaTeX 명령 %rì„(를) 실행할 수 없습니다 (ìˆ˜ì‹ í‘œì‹œì— í•„ìš”). imgmath_latex ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s 명령 %rì„(를) 실행할 수 없습니다 (ìˆ˜ì‹ í‘œì‹œì— í•„ìš”). imgmath_%s ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "표시 LaTeX %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "ì¸ë¼ì¸ LaTeX %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "intersphinx ì¸ë²¤í† ë¦¬ê°€ ì´ë™í•¨: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "%s ì—ì„œ intersphinx ì¸ë²¤í† ë¦¬ 로드 중…"
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "ì¼ë¶€ ì¸ë²¤í† ë¦¬ì—ì„œ 몇 가지 문제가 ë°œìƒí–ˆì§€ë§Œ, ë™ìž‘하는 대체 ì¸ë²¤í† ë¦¬ë¡œ 처리했습니다:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "ë‹¤ìŒ ë¬¸ì œê°€ 있어 ì–´ëŠ ì¸ë²¤í† ë¦¬ë„ ë„달하지 못했습니다:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(%s v%sì—ì„œ)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(%sì—ì„œ)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "외부 ìƒí˜¸ ì°¸ì¡°ì— ëŒ€í•œ ì¸ë²¤í† ë¦¬ë¥¼ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "외부 ìƒí˜¸ ì°¸ì¡°ì— ëŒ€í•œ ì—­í• ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "외부 %s:%s 참조 대ìƒì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "intersphinx ì‹ë³„ìž %rì´(ê°€) 문ìžì—´ì´ 아닙니다. 무시합니다"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "intersphinx_mapping[%s]ì„(를) ì½ì§€ 못했으며, 무시합니다: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[소스]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "í•  ì¼"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "TODO 항목 발견: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<ì›ëž˜ 항목>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<ì›ëž˜ 항목>>ì€ %s 파ì¼, %d í–‰ì— ìžˆìŠµë‹ˆë‹¤.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "ì›ëž˜ 항목"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "모듈 코드 강조 중… "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[문서]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "모듈 코드"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%sì˜ ì†ŒìŠ¤ 코드</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "개요: 모듈 코드"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>코드를 확ì¸í•  수 있는 모든 모듈</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "member-order ì˜µì…˜ì— ëŒ€í•´ ìž˜ëª»ëœ ê°’: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "class-doc-from ì˜µì…˜ì— ëŒ€í•´ ìž˜ëª»ëœ ê°’: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "auto%s (%r)ì— ëŒ€í•œ ìž˜ëª»ëœ ì„œëª…"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "%sì— ëŒ€í•œ ì¸ìˆ˜ë¥¼ ì„œì‹í™”하는 ë™ì•ˆ 오류 ë°œìƒ: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: 문서화 í•  %s.%s (%r) ì„(를) 결정하지 못했으며, ë‹¤ìŒ ì˜ˆì™¸ê°€ ë°œìƒí–ˆìŠµë‹ˆë‹¤:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr "%rì˜ ìžë™ 문서화를 위해 가져올 ëª¨ë“ˆì„ ì•Œ 수 없습니다 (ë¬¸ì„œì— \"module\" ë˜ëŠ” \"currentmodule\" ì§€ì‹œë¬¸ì„ ë°°ì¹˜í•˜ê±°ë‚˜, 명시ì ìœ¼ë¡œ 모듈 ì´ë¦„ì„ ì§€ì •í•´ 보십시오)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "ëª¨ì˜ ê°ì²´ê°€ ê°ì§€ë˜ì—ˆìŠµë‹ˆë‹¤: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "%sì— ëŒ€í•œ ì„œëª…ì„ ì„œì‹í™”하는 ë™ì•ˆ 오류 ë°œìƒ: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "automodule ì´ë¦„ì˜ \"::\"ì€ ì˜ë¯¸ê°€ ì—†ìŒ"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "automodule %sì— ëŒ€í•´ 서명 ì¸ìˆ˜ ë˜ëŠ” 반환 ê°’ 주ì„ì´ ì§€ì •ë¨"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ì€ %rì´(ê°€) ì•„ë‹Œ 문ìžì—´ì˜ 목ë¡ì´ì–´ì•¼ 합니다 (모듈 %s) -- __all__ì„ ë¬´ì‹œí•©ë‹ˆë‹¤"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ":members: ì˜µì…˜ì— ì–¸ê¸‰ëœ ì†ì„±ì´ 없습니다: 모듈 %s, ì†ì„± %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "%sì— ëŒ€í•œ 함수 ì„œëª…ì„ ê°€ì ¸ì˜¤ì§€ 못했습니다: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "%sì— ëŒ€í•œ ìƒì„±ìž ì„œëª…ì„ ê°€ì ¸ì˜¤ì§€ 못했습니다: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "기반 í´ëž˜ìŠ¤: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "%s ì†ì„±ì´ %s ê°ì²´ì— ì—†ìŒ"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "%sì˜ ë³„ì¹­"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "TypeVar(%s)ì˜ ë³„ì¹­"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "%sì— ëŒ€í•œ 메소드 ì„œëª…ì„ ê°€ì ¸ì˜¤ì§€ 못했습니다: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "%sì—ì„œ ìž˜ëª»ëœ __slots__ ê°€ 발견ë˜ì—ˆìŠµë‹ˆë‹¤. 무시합니다."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "%rì— ëŒ€í•œ 기본 ì¸ìˆ˜ ê°’ì„ í•´ì„하지 못했습니다: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "%rì— ëŒ€í•œ ì„œëª…ì„ ì—…ë°ì´íŠ¸í•˜ì§€ 못했습니다. 매개변수를 ì°¾ì„ ìˆ˜ 없습니다: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "%rì— ëŒ€í•œ type_comment를 í•´ì„하지 못했습니다: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "autosummaryê°€ ì œì™¸ëœ ë¬¸ì„œ %rì„(를) 참조합니다. 무시합니다."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: ìŠ¤í… íŒŒì¼ %rì„(를) ì°¾ì„ ìˆ˜ 없습니다. autosummary_generate ì„¤ì •ì„ í™•ì¸í•˜ì‹­ì‹œì˜¤."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "ìº¡ì…˜ì´ ìžˆëŠ” ìžë™ 요약ì—는 :toctree: ì˜µì…˜ì´ í•„ìš”í•©ë‹ˆë‹¤. 무시합니다."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,26 +3053,26 @@ msgid ""
"%s"
msgstr "autosummary: %sì„(를) import 하지 못했습니다.\n가능한 힌트:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "ì´ë¦„ %sì„(를) í•´ì„하지 못함"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "ê°ì²´ %sì„(를) import 하지 못함"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: 파ì¼ì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary는 내부ì ìœ¼ë¡œ .rst 파ì¼ì„ ìƒì„±í•©ë‹ˆë‹¤. 하지만 source_suffixì— .rstê°€ í¬í•¨ë˜ì–´ 있지 않습니다. 건너ëœë‹ˆë‹¤."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr "모듈 __all__ ì†ì„±ì˜ 구성ì›ë§Œ 정확히 문서화합니다. (기본값: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "키워드 매개변수"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "예제"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "예제"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "참고"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "기타 매개변수"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "수신"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "참조"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "경고"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "ìƒì„±"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "ìž˜ëª»ëœ ê°’ 세트 (닫는 중괄호 누ë½): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "ìž˜ëª»ëœ ê°’ 세트 (여는 중괄호 누ë½): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "ìž˜ëª»ëœ ë¬¸ìžì—´ 리터럴 (닫는 따옴표 누ë½): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "ìž˜ëª»ëœ ë¬¸ìžì—´ 리터럴 (여는 따옴표 누ë½): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "주ì˜"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "조심"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "위험"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "오류"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "힌트"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "중요"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "참고"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "ë” ë³´ê¸°"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "íŒ"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "경고"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr "목차"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "검색"
@@ -3343,34 +3402,22 @@ msgstr "ë‹¤ìŒ í•­ëª©"
msgid "next chapter"
msgstr "ë‹¤ìŒ ìž¥"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "검색 ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë ¤ë©´ JavaScript를 활성화하십시오."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "여러 단어를 검색하면 모든 단어가 í¬í•¨ëœ ì¼ì¹˜ 항목만 표시ë©ë‹ˆë‹¤."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "검색"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "검색 결과"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "검색어와 ì¼ì¹˜í•˜ëŠ” 문서가 없습니다. 모든 ë‹¨ì–´ì˜ ì² ìžê°€ 올바른지, 충분한 카테고리를 ì„ íƒí–ˆëŠ”지 확ì¸í•˜ì‹­ì‹œì˜¤."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "빠른 검색"
@@ -3407,20 +3454,30 @@ msgstr "C API 변경 사항"
msgid "Other changes"
msgstr "다른 변경 사항"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "검색 결과"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "검색어와 ì¼ì¹˜í•˜ëŠ” 문서가 없습니다. 모든 ë‹¨ì–´ì˜ ì² ìžê°€ 올바른지, 충분한 카테고리를 ì„ íƒí–ˆëŠ”지 확ì¸í•˜ì‹­ì‹œì˜¤."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "ê²€ìƒ‰ì´ ì™„ë£Œë˜ì—ˆìœ¼ë©°, 검색어와 ì¼ì¹˜í•˜ëŠ” ${resultCount} ê°œ 페ì´ì§€ë¥¼ 찾았습니다."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "검색 중"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "검색 준비 중…"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", 문서 - "
@@ -3441,30 +3498,30 @@ msgstr "사ì´ë“œë°” 열기"
msgid "Contents"
msgstr "ë‚´ìš©"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "4 ê°œ ì—´ 기반 색ì¸ì„ 찾았습니다. 사용하고 있는 확장 ê¸°ëŠ¥ì˜ ë²„ê·¸ì¼ ìˆ˜ 있습니다: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "ê°ì£¼ [%s]ì´(ê°€) 참조ë˜ì§€ 않았습니다."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "ê°ì£¼ [#]ì´ ì°¸ì¡°ë˜ì§€ 않았습니다."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr "ë²ˆì—­ëœ ë©”ì‹œì§€ì˜ ì°¸ì¡°ê°€ ì¼ì¹˜í•˜ì§€ 않습니다. ì›ë³¸: {0}, 번역: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "ë²ˆì—­ëœ ë©”ì‹œì§€ì˜ ì¸ìš© 참조가 ì¼ì¹˜í•˜ì§€ 않습니다. ì›ë³¸: {0}, 번역: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr "%s:%s 참조 대ìƒì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
msgid "%r reference target not found: %s"
msgstr "%r 참조 대ìƒì„ ì°¾ì„ ìˆ˜ ì—†ìŒ: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "ì›ê²© ì´ë¯¸ì§€ë¥¼ 가져올 수 없습니다: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "ì›ê²© ì´ë¯¸ì§€ë¥¼ 가져올 수 없습니다: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "ì•Œ 수 없는 ì´ë¯¸ì§€ 형ì‹: %s…"
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "디코드 í•  수 없는 ì›ë³¸ 문ìžì´ë©°, \"?\"ë¡œ 대체합니다: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "건너뜀"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "실패"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "%s ì˜ì—­ì—ì„œ 문제 ë°œìƒ: 필드가 '%s' ì—­í• ì„ ì‚¬ìš©í•´ì•¼ 하지만, 해당 ì—­í• ì´ ë„ë©”ì¸ì— 없습니다."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "ì•Œ 수 없는 지시문 ë˜ëŠ” ì—­í•  ì´ë¦„: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "알 수 없는 노드 유형: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "ì½ê¸° 오류: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "쓰기 오류: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "ìž˜ëª»ëœ ë‚ ì§œ 형ì‹ìž…니다. 바로 출력하려면 ìž‘ì€ ë”°ì˜´í‘œë¡œ 문ìžì—´ì„ ì¸ìš©í•˜ì‹­ì‹œì˜¤: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctreeì— ì¡´ìž¬í•˜ì§€ 않는 íŒŒì¼ %rì— ëŒ€í•œ 참조가 있ìŒ"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "only 지시문 ì‹ì„ í‰ê°€í•˜ëŠ” ë™ì•ˆ 예외 ë°œìƒ: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "기본 ì—­í•  %sì„(를) ì°¾ì„ ìˆ˜ ì—†ìŒ"
@@ -3615,27 +3672,27 @@ msgstr "%s ë…¸ë“œì— í• ë‹¹ë˜ì§€ ì•Šì€ ID"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "ì´ë¯¸ì§€ í¬ê¸°ë¥¼ 얻어올 수 없습니다. :scale: ì˜µì…˜ì„ ë¬´ì‹œí•©ë‹ˆë‹¤."
@@ -3652,13 +3709,13 @@ msgstr ":maxdepth:ê°€ 너무 í¬ë©°, 무시합니다."
msgid "document title is not a single Text node"
msgstr "문서 ì œëª©ì´ ë‹¨ì¼ í…스트 노드가 아님"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "구역, 주제, í‘œ, ì¡°ì–¸, 사ì´ë“œë°” ì•ˆì— ìžˆì§€ ì•Šì€ ì œëª© 노드가 발견ë¨"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "ê°ì£¼"
@@ -3677,20 +3734,20 @@ msgstr "치수 단위 %sì´(ê°€) 잘못ë˜ì—ˆìŠµë‹ˆë‹¤. 무시합니다."
msgid "unknown index entry type %s found"
msgstr "ì•Œ 수 없는 ìƒ‰ì¸ í•­ëª© 유형 %sì´(ê°€) 발견ë¨"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[그림: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[그림]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "ìº¡ì…˜ì´ ê·¸ë¦¼ ì•ˆì— ìžˆì§€ 않습니다."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "구현ë˜ì§€ ì•Šì€ ë…¸ë“œ 유형: %r"
diff --git a/sphinx/locale/lt/LC_MESSAGES/sphinx.mo b/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
index 74251dc..1ad1093 100644
--- a/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/lt/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/lt/LC_MESSAGES/sphinx.po b/sphinx/locale/lt/LC_MESSAGES/sphinx.po
index 9921c15..6830a27 100644
--- a/sphinx/locale/lt/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/lt/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: DALIUS DOBRAVOLSKAS <DALIUS@SANDBOX.LT>, 2010\n"
"Language-Team: Lithuanian (http://app.transifex.com/sphinx-doc/sphinx-1/language/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Įtaisytieji"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modulio lygis"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (kuris yra "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%Y-%m-%d"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Bendras indeksas"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indeksas"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "kitas"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "praeitas"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indeksas"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Leidimas"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Skyriaus autorius: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Modulio autorius: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Kodo autorius: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autorius: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,82 +1929,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametrai"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Grąžinamos reikšmės"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Grąžinamos reikšmės tipas"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "narys"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "kintamasis"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcija"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makrokomanda"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipas"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nauja %s versijoje"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1967,346 +1944,423 @@ msgstr "Pakeista %s versijoje"
msgid "Deprecated since version %s"
msgstr "Nebepalaikoma nuo %s versijos"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "IÅ¡meta"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasÄ—"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (itaisytoji funkcija)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metodas)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasÄ—)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globalus kintamasis arba konstanta)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atributas)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumentais"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "IÅ¡meta"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Grąžinamos reikšmės"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Grąžinamos reikšmės tipas"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modulis)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcija"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metodas"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasÄ—"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "duomenys"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribudas"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modulis"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Kintamieji"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktyva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Sukelia"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rolÄ—)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktyva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rolÄ—"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametrai"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "narys"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "kintamasis"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makrokomanda"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipas"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (modulyje %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (modulje %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (įtaisytasis kintamasis)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (įtaisytoji klasė)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasė iš %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s klasÄ—s metodas)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statinis metodas)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduliai"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Atmestas"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "išimtis"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klasÄ—s metodas"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statinis metodas"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (atmestas)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktyva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rolÄ—)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktyva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rolÄ—"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Kintamieji"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Sukelia"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "aplinkos kintamasis; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "aiškinamasis terminas"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "gramatinÄ— leksema"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "nuorodos požymis"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "aplinkos kintamasis"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programos parinktis"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modulio indeksas"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Paieškos puslapis"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[Å¡altinis]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Padaryti"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "originalus įrašas"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumentai]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modulio kodas"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Kodas %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Apžvalga: modulio kodas"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Visi moduliai turintys kodÄ…</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "DÄ—mesio"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Atsargiai"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Pavojinga"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Klaida"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Patarimas"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Svarbu"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Pastaba"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Taip pat žiūrėkite"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Patarimas"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Įspėjimas"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Paieška"
@@ -3342,34 +3401,22 @@ msgstr "Kita tema"
msgid "next chapter"
msgstr "kita dalis"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Prašome aktyvuoti JavaScript, kad veiktų paieškos\n funkcionalumas."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "ieškoti"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Paieškos rezultatai"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Greitoji paieška"
@@ -3406,20 +3453,30 @@ msgstr "C API pakeitimai"
msgid "Other changes"
msgstr "Kiti pakeitimai"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Paieškos rezultatai"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr "IÅ¡plÄ—sti Å¡oninÄ™ juostÄ…"
msgid "Contents"
msgstr "Turinys"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Išnašos"
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[paveiksliukas]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/lv/LC_MESSAGES/sphinx.mo b/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
index 0431f74..0f8699d 100644
--- a/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/lv/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/lv/LC_MESSAGES/sphinx.po b/sphinx/locale/lv/LC_MESSAGES/sphinx.po
index 57d93b5..27f8739 100644
--- a/sphinx/locale/lv/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/lv/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Latvian (http://app.transifex.com/sphinx-doc/sphinx-1/language/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Iebūvētie"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Moduļu līmenis"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (iekš "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d.%m.%Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "VispÄrÄ“js indekss"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indekss"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "nÄkoÅ¡ais"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "iepriekšējs"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indekss"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Izlaidums"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Sekcijas autors: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Moduļa autors: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Koda autors: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autors: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,82 +1928,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametri"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Atgriež"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Atgriežamais tips"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "loceklis"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "mainīgais"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcija"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makross"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tips"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Jauns versijÄ %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1966,346 +1943,423 @@ msgstr "MainÄ«ts versijÄ %s"
msgid "Deprecated since version %s"
msgstr "Neieteicams no versijas %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Izmet"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klase"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (iebūvēta funkcija)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metods)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globÄlais mainÄ«gais vai konstanta)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atributs)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumenti"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Izmet"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Atgriež"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Atgriežamais tips"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modulis)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcija"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metods"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klase"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dati"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atributs"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modulis"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Mainīgie"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktīva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Ceļ"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (role)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktīva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "role"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametri"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "loceklis"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "mainīgais"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makross"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tips"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (moduļī %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (moduļī %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (iebūvētais mainīgais)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (iebūvēta klase)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klase iekš %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s klases metods)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statiskais metods)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduļi"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Nav ieteicams"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "izņēmums"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klases metods"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statiskais metods"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktīva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (role)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktīva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Mainīgie"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Ceļ"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "apkÄrtnes mainÄ«gais; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "glosÄrija termins"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "gramatiskais marÄ·ieris"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "atsauces virsraksts"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "apkÄrtnes mainÄ«gais"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programmas opcija"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Moduļu indekss"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Atlases lapa"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[kods]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "JÄizdara"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "sÄkotnÄ“js ieraksts"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumenti]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Moduļa teksts"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s izejas teksts</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Apskats: moduļa teksts"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Visi moduļi, kuriem ir izejas teksti</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Uzmanību"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Uzmanies"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "BÄ«stami"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Kļūda"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "MÄjiens"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Svarīgi"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Piezīme"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Skat.arī"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Padoms"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "BrÄ«dinÄjums"
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Meklēt"
@@ -3341,34 +3400,22 @@ msgstr "nÄkoÅ¡a tÄ“ma"
msgid "next chapter"
msgstr "nÄkoÅ¡a sadaļa"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Lai iespējotu meklēšanu, lūdzu aktivizēt JavaScript."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "meklēt"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Atlases rezultÄti"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Ātra meklēšana"
@@ -3405,20 +3452,30 @@ msgstr "Izmaiņas iekš C API"
msgid "Other changes"
msgstr "Citas izmaiņas"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Atlases rezultÄti"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr "Izplest sÄnjoslu"
msgid "Contents"
msgstr "Saturs"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "VÄ“res"
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[attēls: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[attēls]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/mk/LC_MESSAGES/sphinx.mo b/sphinx/locale/mk/LC_MESSAGES/sphinx.mo
index 9d00b90..045073c 100644
--- a/sphinx/locale/mk/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/mk/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/mk/LC_MESSAGES/sphinx.po b/sphinx/locale/mk/LC_MESSAGES/sphinx.po
index b537f7b..800a7be 100644
--- a/sphinx/locale/mk/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/mk/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Vasil Vangelovski <vvangelovski@gmail.com>, 2013\n"
"Language-Team: Macedonian (http://app.transifex.com/sphinx-doc/sphinx-1/language/mk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Предлог за подобрување на Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Вградени"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Ðиво на модул"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (во "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Главна Ñодржина"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "Ñодржина"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "Ñледна"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "претходна"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s документација"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Ðвтор на Ñекцијата:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Ðвтор на модул:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Ðвтор на код:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Ðвтор: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Параметри"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
+msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
+msgstr ""
+
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
+msgstr "%s() (вградена функција)"
+
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
+msgstr "%s() (%s метод)"
+
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
+msgstr "%s() (клаÑа)"
+
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
+msgstr ""
+
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Фрла"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
msgid "Returns"
msgstr "Враќа"
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
msgid "Return type"
msgstr "Повратен тип"
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "член"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "променлива"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
+msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
msgid "function"
msgstr "функција"
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "макро"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "клаÑа"
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "тип"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
msgstr ""
-#: sphinx/domains/changeset.py:23
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "New in version %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/changeset.py:24
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Changed in version %s"
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/changeset.py:25
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid "Deprecated since version %s"
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/rst.py:213
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Фрла"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "клаÑа"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (built-in function)"
-msgstr "%s() (вградена функција)"
+msgid "%s (C %s)"
+msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (%s method)"
-msgstr "%s() (%s метод)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
-#: sphinx/domains/javascript.py:167
-#, python-format
-msgid "%s() (class)"
-msgstr "%s() (клаÑа)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Параметри"
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
-msgstr ""
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "член"
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
-msgstr ""
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "променлива"
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "макро"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "тип"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr "Симболи"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3342,34 +3401,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3406,20 +3453,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
index 894d35c..6a28698 100644
--- a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.js
@@ -1,60 +1,60 @@
Documentation.addTranslations({
"locale": "nb_NO",
"messages": {
- "%(filename)s &#8212; %(docstitle)s": "",
- "&#169; %(copyright_prefix)s %(copyright)s.": "",
- ", in ": "",
- "About these documents": "Om disse dokumenter",
+ "%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s",
+ "&#169; %(copyright_prefix)s %(copyright)s.": "&#169; %(copyright_prefix)s %(copyright)s.",
+ ", in ": ", i ",
+ "About these documents": "Om disse dokumentene",
"Automatically generated list of changes in version %(version)s": "Automatisk generert liste over endringer i versjon %(version)s",
- "C API changes": "Endringer i C API",
- "Changes in Version %(version)s &#8212; %(docstitle)s": "",
+ "C API changes": "Endringer i C-API-et",
+ "Changes in Version %(version)s &#8212; %(docstitle)s": "Endringer i versjon %(version)s &#8212; %(docstitle)s",
"Collapse sidebar": "Skjul sidepanelet",
- "Complete Table of Contents": "Komplett Innholdsfortegnelse",
+ "Complete Table of Contents": "Fullstendig innholdsfortegnelse",
"Contents": "Innhold",
- "Copyright": "Copyright",
- "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
+ "Copyright": "Opphavsrett",
+ "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "Laget med <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.",
"Expand sidebar": "Utvid sidepanelet",
- "Full index on one page": "Hele innholdsfortegnelsen p\u00e5 en side",
+ "Full index on one page": "Hele registeret p\u00e5 \u00e9n side",
"General Index": "Hovedindex",
- "Global Module Index": "Global Modulindex",
+ "Global Module Index": "Globalt modulregister",
"Go": "G\u00e5",
"Hide Search Matches": "Skjul s\u00f8keresultat",
"Index": "Index",
"Index &ndash; %(key)s": "Index &ndash; %(key)s",
- "Index pages by letter": "Innholdsfortegnelse per bokstav",
- "Indices and tables:": "Index og tabeller",
+ "Index pages by letter": "Registersider per bokstav",
+ "Indices and tables:": "Registre og tabeller",
"Last updated on %(last_updated)s.": "Sist oppdatert %(last_updated)s.",
"Library changes": "Endringer i biblioteket",
"Navigation": "Navigering",
"Next topic": "Neste emne",
"Other changes": "Andre endringer",
"Overview": "Oversikt",
- "Please activate JavaScript to enable the search\n functionality.": "Vennligst aktiver JavaScript for \u00e5 aktivere s\u00f8k.",
- "Preparing search...": "",
- "Previous topic": "Forrige tittel",
+ "Please activate JavaScript to enable the search\n functionality.": "Vennligst aktiver JavaScript for \u00e5 skru p\u00e5 s\u00f8kefunksjonaliteten.",
+ "Preparing search...": "Forbereder s\u00f8k \u2026",
+ "Previous topic": "Forrige emne",
"Quick search": "Hurtigs\u00f8k",
"Search": "S\u00f8k",
"Search Page": "S\u00f8keside",
"Search Results": "S\u00f8keresultat",
- "Search finished, found ${resultCount} page(s) matching the search query.": "",
+ "Search finished, found ${resultCount} page(s) matching the search query.": "S\u00f8ket fullf\u00f8rt, fant ${resultCount} side(r) som samsvarer med s\u00f8kestrengen.",
"Search within %(docstitle)s": "S\u00f8k blant %(docstitle)s",
- "Searching": "",
- "Searching for multiple words only shows matches that contain\n all words.": "",
+ "Searching": "S\u00f8ker",
+ "Searching for multiple words only shows matches that contain\n all words.": "S\u00f8k etter flere ord viser bare treff som inneholder\n\u00a0 alle ord",
"Show Source": "Vis kildekode",
- "Table of Contents": "",
+ "Table of Contents": "Innholdsfortegnelse",
"This Page": "Denne siden",
- "Welcome! This is": "",
+ "Welcome! This is": "Velkommen! Dette er",
"Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "",
- "all functions, classes, terms": "alla funksjoner, klasser, vilk\u00e5r",
+ "all functions, classes, terms": "alla funksjoner, klasser, termer",
"can be huge": "kan bli stor",
- "last updated": "",
- "lists all sections and subsections": "liste over alle paragrafer og underparagrafer",
+ "last updated": "sist oppdatert",
+ "lists all sections and subsections": "lister opp alle avsnitt og underavsnitt",
"next chapter": "neste kapittel",
- "previous chapter": "Forrige kapittel",
+ "previous chapter": "forrige kapittel",
"quick access to all modules": "snarvei til alle moduler",
"search": "s\u00f8k",
- "search this documentation": "s\u00f8k i dette dokumentet",
- "the documentation for": ""
+ "search this documentation": "s\u00f8k i denne dokumentasjonen",
+ "the documentation for": "dokumentasjonen for"
},
"plural_expr": "(n != 1)"
}); \ No newline at end of file
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
index ce5c2e5..019f627 100644
--- a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
index 412ce07..b705044 100644
--- a/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nb_NO/LC_MESSAGES/sphinx.po
@@ -1,20 +1,21 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
+# Per Christian Gaustad, 2024
msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Last-Translator: Per Christian Gaustad, 2024\n"
"Language-Team: Norwegian Bokmål (Norway) (http://app.transifex.com/sphinx-doc/sphinx-1/language/nb_NO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: nb_NO\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:323 sphinx/theming.py:374
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Innebygde"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modulnivå"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(i "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
-msgstr "%b %d, %Y"
+msgstr "%d. %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Hovedindex"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "neste"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "forrige"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Utgivelse"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
-msgstr "Seksjon forfatter: "
+msgstr "Forfatter av avsnitt: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
-msgstr "Modul forfattar: "
+msgstr "Forfatter av modul: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
-msgstr "Kildekode forfatter: "
+msgstr "Forfatter av kildekode: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Forfatter: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,82 +1929,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametere"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Returnere"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Retur type"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "medlem"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabel"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funksjon"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "type"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nytt i version %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1964,348 +1942,425 @@ msgstr "Endret i version %s"
#: sphinx/domains/changeset.py:25
#, python-format
msgid "Deprecated since version %s"
-msgstr "Foreldet siden version %s"
-
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
+msgstr "Frarådet siden version %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Kaster"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasse"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (innebygd funksjon)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metode)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasse)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (global variabel eller konstant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attribut)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argument"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Kaster"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Returnere"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Retur type"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funksjon"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metode"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasse"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attributt"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variabler"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktiv)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Hever"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rolle)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktiv"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rolle"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametere"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "medlem"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabel"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "type"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (i modul %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (i modul %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (innebygd variabel)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (innebygd klasse)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasse i %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s klassemetode)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statisk metode)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python Modulindex"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduler"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Foreldet"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "untak"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klassemetode"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statisk metode"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (foreldet)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktiv)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rolle)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktiv"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rolle"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variabler"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Hever"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "miljøvariabel; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "ordliste"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammatikk token"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "referanse-etikett"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "miljøvariabel"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programvalg"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modulindex"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Søkeside"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[kilde]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "opprinnelig oppføring"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumentasjon]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modul kildekode"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Kildekode for %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Oversikt: modulkildekode"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Alla moduler hvor kildekode finnes</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Obs"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Advarsel"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Fare"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Feil"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Hint"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Viktig"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
-msgstr "Obs"
+msgstr "Merknad"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Se også"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tips"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Advarsel"
@@ -3188,27 +3248,27 @@ msgstr "fortsettelse fra forrige side"
#: sphinx/templates/latex/longtable.tex_t:63
#: sphinx/templates/latex/sphinxmessages.sty_t:9
msgid "continues on next page"
-msgstr ""
+msgstr "fortsetter på neste side"
#: sphinx/templates/latex/sphinxmessages.sty_t:10
msgid "Non-alphabetical"
-msgstr ""
+msgstr "Ikke-alfabetisk"
#: sphinx/templates/latex/sphinxmessages.sty_t:12
msgid "Numbers"
-msgstr ""
+msgstr "Tall"
#: sphinx/templates/latex/sphinxmessages.sty_t:13
msgid "page"
-msgstr ""
+msgstr "side"
#: sphinx/themes/agogo/layout.html:38 sphinx/themes/basic/globaltoc.html:10
#: sphinx/themes/basic/localtoc.html:12 sphinx/themes/scrolls/layout.html:41
msgid "Table of Contents"
-msgstr ""
+msgstr "Innholdsfortegnelse"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Søk"
@@ -3227,35 +3287,35 @@ msgstr "Oversikt"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "Velkommen! Dette er"
#: sphinx/themes/basic/defindex.html:16
msgid "the documentation for"
-msgstr ""
+msgstr "dokumentasjonen for"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "sist oppdatert"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
-msgstr "Index og tabeller"
+msgstr "Registre og tabeller"
#: sphinx/themes/basic/defindex.html:23
msgid "Complete Table of Contents"
-msgstr "Komplett Innholdsfortegnelse"
+msgstr "Fullstendig innholdsfortegnelse"
#: sphinx/themes/basic/defindex.html:24
msgid "lists all sections and subsections"
-msgstr "liste over alle paragrafer og underparagrafer"
+msgstr "lister opp alle avsnitt og underavsnitt"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr "søk i dette dokumentet"
+msgstr "søk i denne dokumentasjonen"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
-msgstr "Global Modulindex"
+msgstr "Globalt modulregister"
#: sphinx/themes/basic/defindex.html:29
msgid "quick access to all modules"
@@ -3263,7 +3323,7 @@ msgstr "snarvei til alle moduler"
#: sphinx/themes/basic/defindex.html:31
msgid "all functions, classes, terms"
-msgstr "alla funksjoner, klasser, vilkår"
+msgstr "alla funksjoner, klasser, termer"
#: sphinx/themes/basic/genindex-single.html:33
#, python-format
@@ -3275,11 +3335,11 @@ msgstr "Index &ndash; %(key)s"
#: sphinx/themes/basic/genindex-split.html:38
#: sphinx/themes/basic/genindex.html:73
msgid "Full index on one page"
-msgstr "Hele innholdsfortegnelsen på en side"
+msgstr "Hele registeret på én side"
#: sphinx/themes/basic/genindex-split.html:16
msgid "Index pages by letter"
-msgstr "Innholdsfortegnelse per bokstav"
+msgstr "Registersider per bokstav"
#: sphinx/themes/basic/genindex-split.html:25
msgid "can be huge"
@@ -3296,17 +3356,17 @@ msgstr "Søk blant %(docstitle)s"
#: sphinx/themes/basic/layout.html:135
msgid "About these documents"
-msgstr "Om disse dokumenter"
+msgstr "Om disse dokumentene"
#: sphinx/themes/basic/layout.html:144 sphinx/themes/basic/layout.html:188
#: sphinx/themes/basic/layout.html:190
msgid "Copyright"
-msgstr "Copyright"
+msgstr "Opphavsrett"
#: sphinx/themes/basic/layout.html:194 sphinx/themes/basic/layout.html:200
#, python-format
msgid "&#169; %(copyright_prefix)s %(copyright)s."
-msgstr ""
+msgstr "&#169; %(copyright_prefix)s %(copyright)s."
#: sphinx/themes/basic/layout.html:212
#, python-format
@@ -3318,7 +3378,7 @@ msgstr "Sist oppdatert %(last_updated)s."
msgid ""
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
+msgstr "Laget med <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
@@ -3327,11 +3387,11 @@ msgstr "Søk %(docstitle)s"
#: sphinx/themes/basic/relations.html:12
msgid "Previous topic"
-msgstr "Forrige tittel"
+msgstr "Forrige emne"
#: sphinx/themes/basic/relations.html:14
msgid "previous chapter"
-msgstr "Forrige kapittel"
+msgstr "forrige kapittel"
#: sphinx/themes/basic/relations.html:19
msgid "Next topic"
@@ -3341,34 +3401,22 @@ msgstr "Neste emne"
msgid "next chapter"
msgstr "neste kapittel"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr "Vennligst aktiver JavaScript for å aktivere søk."
+msgstr "Vennligst aktiver JavaScript for å skru på søkefunksjonaliteten."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
-msgstr ""
+msgstr "Søk etter flere ord viser bare treff som inneholder\n  alle ord"
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "søk"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Søkeresultat"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Hurtigsøk"
@@ -3381,12 +3429,12 @@ msgstr "Denne siden"
#: sphinx/themes/basic/changes/versionchanges.html:12
#, python-format
msgid "Changes in Version %(version)s &#8212; %(docstitle)s"
-msgstr ""
+msgstr "Endringer i versjon %(version)s &#8212; %(docstitle)s"
#: sphinx/themes/basic/changes/rstsource.html:5
#, python-format
msgid "%(filename)s &#8212; %(docstitle)s"
-msgstr ""
+msgstr "%(filename)s &#8212; %(docstitle)s"
#: sphinx/themes/basic/changes/versionchanges.html:17
#, python-format
@@ -3399,28 +3447,38 @@ msgstr "Endringer i biblioteket"
#: sphinx/themes/basic/changes/versionchanges.html:23
msgid "C API changes"
-msgstr "Endringer i C API"
+msgstr "Endringer i C-API-et"
#: sphinx/themes/basic/changes/versionchanges.html:25
msgid "Other changes"
msgstr "Andre endringer"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Søkeresultat"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
-msgstr ""
+msgstr "Søket fullført, fant ${resultCount} side(r) som samsvarer med søkestrengen."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
-msgstr ""
+msgstr "Søker"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
-msgstr ""
+msgstr "Forbereder søk …"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
-msgstr ""
+msgstr ", i "
#: sphinx/themes/basic/static/sphinx_highlight.js:112
msgid "Hide Search Matches"
@@ -3439,30 +3497,30 @@ msgstr "Utvid sidepanelet"
msgid "Contents"
msgstr "Innhold"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Fotnoter"
@@ -3675,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[bilde]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ne/LC_MESSAGES/sphinx.mo b/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
index 255c850..74340e3 100644
--- a/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ne/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ne/LC_MESSAGES/sphinx.po b/sphinx/locale/ne/LC_MESSAGES/sphinx.po
index 0cc4133..64bdc69 100644
--- a/sphinx/locale/ne/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ne/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Komiya Takeshi <i.tkomiya@gmail.com>, 2016\n"
"Language-Team: Nepali (http://app.transifex.com/sphinx-doc/sphinx-1/language/ne/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ne\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "बिइलà¥à¤Ÿà¤¿à¤¨à¥à¤¸"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "मडà¥à¤²à¤•à¥‹ तह"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(in"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "सामानà¥à¤¯ अनà¥à¤¸à¥à¤šà¥€"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "अनà¥à¤¸à¥à¤šà¥€"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "पछिलà¥à¤²à¥‹"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "अघिलà¥à¤²à¥‹"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "अनà¥à¤¸à¥à¤šà¥€"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "रीलीज"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "सेकà¥à¤¸à¤¨à¤•à¥‹ लेखक"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "मडà¥à¤²à¤•à¥‹ लेखक"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Codeको लेखक "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "लेखक"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,82 +1930,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parameters"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Returns"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Return type"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "सदसà¥à¤¯"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "चल"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "फनà¥à¤•à¥à¤¸à¤¨"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "बृहत"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "किसिम"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "भरà¥à¤¸à¤¨ %s मा नयाà¤"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "भरà¥à¤¸à¤¨ %s मा बदलिà¤à¤•à¥‹"
msgid "Deprecated since version %s"
msgstr "Deprecated since version %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Throws"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "ककà¥à¤·à¤¾"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (built-in function)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s विधी)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (ककà¥à¤·à¤¾)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (global variable or constant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attribute)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Arguments"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Throws"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Returns"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Return type"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (मडà¥à¤²)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "फनà¥à¤•à¥à¤¸à¤¨"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "विधी"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "ककà¥à¤·à¤¾"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribute"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "मडà¥à¤²"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "चलहरू"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (निरà¥à¤¦à¥‡à¤¶à¤¿à¤•)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Raises"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (भूमिका)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "भूमिका"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parameters"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "सदसà¥à¤¯"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "चल"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "बृहत"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "किसिम"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (in मडà¥à¤² %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (in मडà¥à¤² %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (built-in चल)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (built-in ककà¥à¤·à¤¾)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (ककà¥à¤·à¤¾ in %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s ककà¥à¤·à¤¾ विधी)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s static विधी)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python Module Index"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modules"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Deprecated"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "अपबाद"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "ककà¥à¤·à¤¾ विधी"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "static विधी"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(deprecated)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (निरà¥à¤¦à¥‡à¤¶à¤¿à¤•)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (भूमिका)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "निरà¥à¤¦à¥‡à¤¶à¤¿à¤•"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "भूमिका"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "चलहरू"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Raises"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "environment variable; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "शबà¥à¤¦-अरà¥à¤¥à¤®à¤¾ भà¤à¤•à¥‹"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammar token"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "सनà¥à¤¦à¤°à¥à¤µ सामगà¥à¤°à¥€"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "environment variable"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "कारà¥à¤¯à¤•à¥à¤°à¤®à¤•à¤¾ बिकलà¥à¤ª"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "मडà¥à¤² अनà¥à¤¸à¥à¤šà¥€"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "पानामा खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[सà¥à¤°à¥‹à¤¤]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "मौलिक इनà¥à¤Ÿà¥à¤°à¥€"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Module code"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Source code for %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "पà¥à¤¨à¤°à¤¾à¤µà¤²à¥‹à¤•à¤¨: module code"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>All modules for which code is available</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "धà¥à¤¯à¤¾à¤¨à¤¾à¤•à¤°à¥à¤·à¤£"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "होसियार "
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "खतरा"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "गलत"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "सङà¥à¤•à¥‡à¤¤"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "जरà¥à¤°à¥€"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "टिपà¥à¤ªà¤£à¥€"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "पनि हेरà¥à¤¨à¥à¤¹à¥‹à¤¸"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "साबधान"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ "
@@ -3343,34 +3402,22 @@ msgstr "पछिलà¥à¤²à¥‹ विषय"
msgid "next chapter"
msgstr "पछिलà¥à¤²à¥‹ खनà¥à¤¡"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "खोजà¥à¤¨à¥‡ कारà¥à¤¯ आगाडी बढाउनको लागि जाभासà¥à¤•à¥ƒà¤ªà¥à¤Ÿ चलाईदिनà¥à¤¹à¥‹à¤¸ "
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "खोजेको नतिजा"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "छिटà¥à¤Ÿà¥‹ खोजà¥à¤¨à¥à¤¹à¥‹à¤¸à¥"
@@ -3407,20 +3454,30 @@ msgstr "C API का परिवरà¥à¤¤à¤¨à¤¹à¤°à¥ "
msgid "Other changes"
msgstr "अरॠपरिवरà¥à¤¤à¤¨à¤¹à¤°à¥ "
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "खोजेको नतिजा"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3441,30 +3498,30 @@ msgstr "साइडबर ठà¥à¤²à¥‹ बनाउनà¥à¤¹à¥‹à¤¸à¥"
msgid "Contents"
msgstr "विषयसूची"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "फूटà¥à¤¨à¥‹à¤Ÿà¥à¤¸"
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[चितà¥à¤°]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
index 3bdef52..d8da438 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/nl/LC_MESSAGES/sphinx.po b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
index 16062b8..879b2bd 100644
--- a/sphinx/locale/nl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/nl/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -14,14 +14,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Komiya Takeshi <i.tkomiya@gmail.com>, 2021\n"
"Language-Team: Dutch (http://app.transifex.com/sphinx-doc/sphinx-1/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -44,104 +44,104 @@ msgstr "Bron- en doelmap kunnen niet identiek zijn"
msgid "Running Sphinx v%s"
msgstr "Sphinx v%s start op"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Dit project vereist tenminste Sphinx v%s, en kan daarom niet worden gebouwd met deze versie."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "aanmaken doelmap"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' gedefinieerd in conf.py is niet aanroepbaar (geen Python-callable). Pas a.u.b. de definitie aan zodat het een oproepbare functie wordt. Dit is nodig voor conf.py om zich als een Sphinx extensie te gedragen."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "laden van vertalingen [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "klaar"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "mislukt: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Geen bouwer geselecteerd, dus de standaardbouwer wordt gebruikt: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "gelukt"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "afgerond met problemen"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "bouwen %s, %s waarschuwing."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "bouwen %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -149,12 +149,12 @@ msgid ""
"explicit"
msgstr "de %s extensie geeft niet aan of deze veilig is voor parallel lezen, er wordt aangenomen dat dit niet zo is - vraag de auteur van de extensie om dit te controleren en expliciet te maken"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -162,70 +162,75 @@ msgid ""
"explicit"
msgstr "de %s extensie geeft niet aan of deze veilig is voor parallel schrijven, er wordt aangenomen dat dit niet zo is - vraag de auteur van de extensie om dit te controleren en expliciet te maken"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "seriële verwerking van %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "configuratiemap bevat geen conf.py bestand (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "kan dictionary-instelling %r niet overschrijven in configuratie, wordt genegeerd (gebruik %r om individuele elementen te overschrijven)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "ongeldig getal %r voor configuratiewaarde %r, wordt genegeerd"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "kan instelling %r niet overschrijven met zo'n waarde van een niet-ondersteund type; wordt genegeerd"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "onbekende configuratiewaarde %r tijdens overschrijven, wordt genegeerd"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Ongeldige configuratiewaarde: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Configuratiewaarde %r was reeds aangevoerd"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -233,291 +238,328 @@ msgid ""
"%s"
msgstr "Een fout heeft zich voorgedaan in uw configuratiebestand:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Sectie %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabel %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Codefragment %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r onbekend, wordt genegeerd."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Gebeurtenis %r bestaat reeds"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Onbekende gebeurtenisnaam: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Dit project vereist extensie %s met versie %s of hoger, en kan daarom niet met de geladen versie (%s) worden gebouwd"
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Bouwerklasse %s heeft geen \"name\"-attribuut"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Bouwer %r bestaat reeds (in module %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Bouwernaam %s is niet geregistreerd of beschikbaar via entrypoint"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Bouwernaam %s is niet geregistreerd"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domein %s was reeds geregistreerd"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domein %s nog niet geregistreerd"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser voor %r is reeds geregistreerd"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Broncode-parser voor %s is niet geregistreerd"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "extensie %r is reeds in Sphinx ingevoegd sinds Sphinx-versie %s; deze extensie wordt genegeerd."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Oorspronkelijke exceptie:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Kon extensie %s niet importeren"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "extensie %r heeft geen setup() functie; weet u zeker dat het een Sphinx-extensiemodule is?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Dit project gebruikt extensie %s, maar die extensie heeft Sphinx-versie v%s of hoger nodig; het project kan daarom niet worden gebouwd met deze versie."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "de setup() functie van extensie %r retourneerde een niet-ondersteund object; dit moet None of een metadata dictionary zijn"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "thema %r heeft geen \"theme\" instelling"
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "instelling %s.%s komt niet voor in de doorzochte thema configuraties"
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "thema %r heeft geen \"inherit\" instelling"
+msgid "unsupported theme option %r given"
+msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "thema met naam %r niet gevonden, geërfd door %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "bestand %r in thema pad is geen geldige zipfile of bevat geen thema"
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
-msgstr "instelling %s.%s komt niet voor in de doorzochte thema configuraties"
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
-msgstr "bestand %r in thema pad is geen geldige zipfile of bevat geen thema"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "thema met naam %r niet gevonden (ontbrekende theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -533,8 +575,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -583,7 +625,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -592,50 +634,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -644,36 +686,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -681,470 +723,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Builtins"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Moduleniveau"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (in "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Algemene index"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "volgende"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "vorige"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s documentatie"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Release"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1159,15 +1201,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1226,8 +1268,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1259,7 +1301,9 @@ msgid "path to output directory"
msgstr "pad naar doelmap"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1267,249 +1311,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Naam van het project"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Auteur(s)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1518,15 +1567,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Versie van het project"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Release van het project"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1536,21 +1585,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1558,91 +1607,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Bestandsnaam van het hoofddocument (zonder bestandsextensie)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Fout: hoofddocumentbestandsnaam %s is reeds aanwezig op het aangewezen pad."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Afgerond: een beginstructuur van mappen is aangemaakt."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1652,135 +1701,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "release van project"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "documenttaal"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "bestandsextensie van bronbestanden"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "bestandsnaam van hoofddocument"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "sjabloonmap voor sjabloonbestanden"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1831,47 +1880,47 @@ msgstr "\"lineno-match\" kan niet gebruikt worden met een disjuncte set \"lines\
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Regels %r: geen regels gebruikt uit include-bestand %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Auteur van deze sectie: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Auteur van deze module: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Auteur van deze broncode:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Auteur: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1886,82 +1935,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parameters"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Returns"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Return type"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "member"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabele"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "functie"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "type"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nieuw in versie %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1973,346 +1950,423 @@ msgstr "Veranderd in versie %s"
msgid "Deprecated since version %s"
msgstr "Verouderd sinds versie %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Sjabloonparameters"
-
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Werpt"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasse"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "concept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (ingebouwde functie)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s methode)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasse)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globale variabele of constante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attribuut)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumenten"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Werpt"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Returns"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Return type"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (module)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "functie"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "methode"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasse"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribuut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "module"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "duplicaatlabel van formule %s, andere in %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variabelen"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directive)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Veroorzaakt"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directive"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rol"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parameters"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "member"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabele"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "type"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Sjabloonparameters"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "concept"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (in module %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (in module %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (geïntegreerde variabele)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (geïntegreerde klasse)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasse in %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s klassemethode)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (statische methode van %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python-moduleïndex"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modules"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Verouderd"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "exceptie"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klassemethode"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statische methode"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (verouderd)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directive)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rol)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directive"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rol"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variabelen"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Veroorzaakt"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "omgevingsvariabele; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "woordenlijstterm"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammaticatoken"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "verwijzingslabel"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "omgevingsvariabele"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programmaoptie"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "document"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Module-index"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Zoekpagina"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "onderschrift ontbreekt voor link: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2329,35 +2383,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "bronmap is gewijzigd"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2381,39 +2435,39 @@ msgstr ""
msgid "Symbols"
msgstr "Symbolen"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2423,7 +2477,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2435,149 +2489,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "bestandsextensie (standaardwaarde: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s is geen map."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2601,24 +2655,24 @@ msgstr "'%s' is geen geldige pyversion optie"
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2629,32 +2683,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz directive mag niet zowel inhoud als een bestandsnaam argument hebben"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Extern Graphviz bestand %r niet gevonden of het lezen is mislukt"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "\"graphviz\" directive zonder inhoud wordt genegeerd."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot commando %r kan niet worden uitgevoerd (vereist voor graphviz output), controleer de instelling graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2664,7 +2718,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2674,27 +2728,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format moet 'png' of 'svg' zijn, maar is %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graaf: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graaf]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2702,7 +2756,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2712,173 +2766,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(in %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(in %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[broncode]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Te doen"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<origineel item>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(Het <<originele item>> bevindt zich in %s, regel %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "originele item"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documentatie]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modulebroncode"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Broncode voor %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Overzicht: module broncode"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Alle modules waarvoor de broncode beschikbaar is</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2886,112 +2945,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Basisklassen: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2999,25 +3058,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3091,99 +3150,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Sleutelwoordargumenten"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Verwijzingen"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Let op"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Pas op"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Gevaar"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Fout"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Hint"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Belangrijk"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Notitie"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Zie ook"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Waarschuwing"
@@ -3215,7 +3274,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Zoeken"
@@ -3348,34 +3407,22 @@ msgstr "Volgend onderwerp"
msgid "next chapter"
msgstr "volgend hoofdstuk"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Activeer JavaSscript om de zoekfunctionaliteit in te schakelen."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "zoeken"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Zoekresultaten"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Uw zoekopdracht leverde geen resultaten op. Zorg ervoor dat alle woorden juist zijn gespeld en dat u voldoende categorieën hebt geselecteerd."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Snel zoeken"
@@ -3412,20 +3459,30 @@ msgstr "Veranderingen in de C-API"
msgid "Other changes"
msgstr "Andere veranderingen"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Zoekresultaten"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Uw zoekopdracht leverde geen resultaten op. Zorg ervoor dat alle woorden juist zijn gespeld en dat u voldoende categorieën hebt geselecteerd."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Bezig met zoeken"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Zoeken aan het voorbereiden..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", in"
@@ -3446,30 +3503,30 @@ msgstr "Zijpaneel uitklappen"
msgid "Contents"
msgstr "Inhoudsopgave"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3481,13 +3538,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3514,90 +3571,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3620,27 +3677,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3657,13 +3714,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Voetnoten"
@@ -3682,20 +3739,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[afbeelding: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[afbeelding]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "onderschrift niet binnen figuur."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.mo b/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
index c7e0329..379c19f 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/pl/LC_MESSAGES/sphinx.po b/sphinx/locale/pl/LC_MESSAGES/sphinx.po
index b76fd9b..3035227 100644
--- a/sphinx/locale/pl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pl/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Adam C <adam.chyla@gmail.com>, 2023\n"
"Language-Team: Polish (http://app.transifex.com/sphinx-doc/sphinx-1/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: pl\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -43,104 +43,104 @@ msgstr "Katalog źródłowy i katalog docelowy nie mogą być identyczne"
msgid "Running Sphinx v%s"
msgstr "Uruchamianie Sphinksa v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Ten projekt potrzebuje Sphinksa w wersji co najmniej %s, dlatego nie może zostać zbudowany z tą wersją."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "tworzenie katalogu wyjścia"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "podczas ustawiania rozszerzenia %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' podany w conf.py nie jest wywoływalny. Prosimy zmienić jego definicję tak, aby była wywoływalną funkcją. Jest to potrzebne w conf.py, aby zachowywało się jak rozszerzenie Sphinksa."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "ładowanie tłumaczeń [%s]..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "gotowe"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "niedostępne dla wbudowanych wiadomości"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "ładowanie zapakowanego środowiska"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "nie powiodło się: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Nie wybrano buildera, używamy domyślnego: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "zakończony sukcesem"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "zakończony z problemami"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "build %s, %s ostrzeżenie (z ostrzeżeniami traktowanymi jako błędy)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "build %s, %s ostrzeżenie."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "build %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "klasa %r jest już zarejestrowana, jej wizytorzy zostaną nadpisani"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "dyrektywa %r jest już zarejestrowana, jej wizytorzy zostaną nadpisani"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "rola %r jest już zarejestrowana, jej wizytorzy zostaną nadpisani"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -148,12 +148,12 @@ msgid ""
"explicit"
msgstr "rozszerzenie %s nie deklaruje, czy jest bezpieczne do czytania współbieżnego, zakładamy że nie jest – prosimy zapytać autora rozszerzenie o sprawdzenie i zadeklarowania tego wprost"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -161,70 +161,75 @@ msgid ""
"explicit"
msgstr "rozszerzenie %s nie deklaruje, czy jest bezpieczne do pisania współbieżnego, zakładamy że nie jest – prosimy zapytać autora rozszerzenia o sprawdzenie i zadeklarowanie tego wprost"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "tworzenie serii %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "folder konfiguracyjny nie zawiera pliku conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "nie można nadpisać słownikowego ustawienia konfiguracji %r, ignorowanie (użyj %r, by ustawić poszczególne elementy)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "niepoprawna liczba %r dla wartości konfiguracji %r, ignorowanie"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "nie można nadpisać ustawienia konfiguracji %r nie wspieranym typem, ignorowanie"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "nieznana wartość konfiguracji %r w nadpisaniu, ignorowanie"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Nie ma takiej wartości konfiguracyjnej: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Wartość konfiguracji %r już podana"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "W twoim piku konfiguracyjnym jest błąd składniowy: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Plik konfiguracyjny (albo jeden z modułów przez niego zaimportowanych) wywołał sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -232,291 +237,328 @@ msgid ""
"%s"
msgstr "W twoim piku konfiguracyjnym jest błąd programowalny: \n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Rozdział %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Rys. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabela %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listing %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "Wartość konfiguracyjna `{name}` musi być jednym z {candidates}, a podany jest `{current}`."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "Nie odnaleziono primary_domain %r, zignorowano."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Zdarzenie %r już obecne"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nieznana nazwa zdarzenia: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Ten projekt potrzebuje rozszerzenia %s co najmniej w wersji %s, dlatego nie może zostać zbudowany z załadowaną wersją (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Klasa buildera %s nie ma atrybutu \"name\""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Builder %r już istnieje (w module %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Builder o nazwie %s jest niezarejestrowany lub dostępny przez punkt wejścia"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Builder o nazwie %s jest niezarejestrowany"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domena %s jest już zarejestrowana"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domena %s nie została jeszcze zarejestrowana"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "%r object_type jest już zarejestrowany"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "%r crossref_type jest już zarejestrowany"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r jest już zarejestrowany"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser dla %r jest już zarejestrowany"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Parser źródeł dla %s jest nie zarejestrowany"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r już zarejestrowany"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "rozszerzenie %r zostało już włączone do Sphinx'a, począwszy od wersji %s; to rozszerzenie jest zignorowane."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Pierwotny wyjÄ…tek:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Nie można zaimportować rozszerzenia %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "rozszerzenie %r nie zawiera funkcji setup(); czy to na pewno moduł rozszerzenia Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Rozszerzenie %s używane przez ten projekt potrzebuje Sphinksa w wersji co najmniej %s; dlatego nie może zostać zbudowane z tą wersją."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "rozszerzenie %r zwróciło nie wspierany obiekt ze swojej funkcji setup(); powinno zwrócić None lub słownik metadanych"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "motyw %r nie ma ustawienia \"theme\""
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "ustawienie %s.%s nie występuje w żadnej z przeszukiwanych konfiguracji motywów"
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "motyw %r nie ma ustawienia \"inherit\""
+msgid "unsupported theme option %r given"
+msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "nie znaleziono motywu o nazwie %r, z którego dziedziczy %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "plik %r na ścieżce motywu nie jest poprawnym plikiem zip lub nie zawiera motywu"
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
-msgstr "ustawienie %s.%s nie występuje w żadnej z przeszukiwanych konfiguracji motywów"
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
-msgstr "plik %r na ścieżce motywu nie jest poprawnym plikiem zip lub nie zawiera motywu"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "nie znaleziono motywu o nazwie %r (brak theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -532,8 +574,8 @@ msgstr ""
msgid "building [mo]: "
msgstr "budowanie [mo]:"
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "pisanie wyjścia..."
@@ -582,7 +624,7 @@ msgstr "%d plików źródłowych podano w wierszu poleceń"
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -591,50 +633,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "znaleziono %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "nic nie znaleziono"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -643,36 +685,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "kopiowanie obrazków..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -680,470 +722,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "nieznany mimetype dla %s, ignorujÄ™"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "pisanie pliku %s..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "brak zmian w wersji %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Wbudowane"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Poziom modułu"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "kopiowanie plików źródłowych..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "Plik ePub znajduje siÄ™ w %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "nieprawidłowy css_file: %r, zignorowano"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "wczytywanie szablonów... "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "zepsuty odnośnik: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Strona HTML jest w %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Pliki Texinfo znajdujÄ… siÄ™ w %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "nie znaleziono wartości konfiguracyjnej \"texinfo_documents\"; żadne dokumenty nie zostaną zapisane"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "wartość konfiguracyjna \"texinfo_documents\" odwołuje się do nieznanego dokumentu %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (w "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Pliki tekstowe sÄ… w %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "błąd zapisu pliku %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Pliki XML znajdujÄ… siÄ™ w %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Pliki pseudo-XML sÄ… w %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Strony HTML sÄ… w %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Indeks ogólny"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "indeks"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "dalej"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "wstecz"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "kopiowanie plików do pobrania..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "nie można skopiować pliku statycznego %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "nie można skopiować dodatkowego pliku %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Wystąpił błąd podczas renderowania strony %s.\nPowód: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "nieprawidłowy js_file: %r, zignorowano"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "Podano nieznany math_renderer %r."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "plik favicon %r nie istnieje"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s - dokumentacja"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Pliki LaTeX znajdujÄ… siÄ™ w %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "nie znaleziono wartości konfiguracyjnej \"latex_documents\"; żadne dokumenty nie zostaną zapisane"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "wartość konfiguracyjna \"latex_documents\" odwołuje się do nieznanego dokumentu %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Indeks"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Wydanie"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1158,15 +1200,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1225,8 +1267,8 @@ msgstr "Raport o błędzie można zgłosić pod adresem <https://github.com/sphi
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1258,7 +1300,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1266,249 +1310,254 @@ msgid "general options"
msgstr "ogólne opcje"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "zapisz wszystkie pliki (domyślnie: zapisz tylko nowe i zmienione pliki)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr ""
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "zastÄ…p ustawienie w pliku konfiguracyjnym"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "przekaż wartość do szablonów HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
-#: sphinx/cmd/build.py:182
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr ""
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "zwiększ szczegółowość (może być powtórzone)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "zapisz ostrzeżenia (i błędy) do podanego pliku"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "zamień ostrzeżenia na błędy"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "Argument opcji -D musi mieć postać nazwa=wartość"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "Argument opcji -A musi mieć postać nazwa=wartość"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "warunkowe włączenie treści na podstawie wartości konfiguracyjnych"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Wprowadź poprawną nazwę ścieżki."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Wprowadź \"y\" lub \"n\"."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Podaj rozszerzenie pliku, na przykład '.rst' lub '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Witamy w narzędziu quickstart Sphinksa %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Ścieżka root dla dokumentacji"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Błąd: znaleziono istniejący conf.py na wskazanej ścieżce root."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart nie nadpisze istniejących projektów Sphinx."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Wprowadź, prosimy, nową ścieżkę root (lub tylko Enter, aby wyjść)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Rozdziel katalogi source i build (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Prefiks nazw dla katalogów templates i static"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Nazwa projektu"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Nazwisko autora"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1517,15 +1566,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Wersja projektu"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Wydanie projektu"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1535,21 +1584,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Język projektu"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Sufiks pliku źródłowego"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1557,91 +1606,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart nie nadpisze istniejÄ…cego pliku."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Wskaż, które z następujących rozszerzeń Sphinx powinny być włączone:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Stworzyć Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Tworzenie pliku %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Plik %s już istnieje, pomijam."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Zakończono: Utworzono początkową strukturę katalogów."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1651,135 +1700,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "tryb cichy"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Podstawowe opcje projektu"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "nazwa projektu"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "nazwiska autorów"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "wersja projektu"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "język dokumentu"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "rozszerzenie pliku źródłowego"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "nazwa głównego dokumentu"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Opcje rozszerzeń"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "włącz rozszerzenie %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "utwórz plik makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "nie twórz pliku makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "twórz plik wsadowy"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "nie twórz pliku wsadowego"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1830,47 +1879,47 @@ msgstr "Nie można użyć „lineno-match†z rozÅ‚Ä…cznym zbiorem „linesâ€"
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Specyfikacja linii %r: nie wyciągnięto żadnych linii z pliku include %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor rozdziału: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor modułu: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor kodu: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1885,82 +1934,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametry"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Zwraca"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Typ zwracany"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "pole"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "zmienna"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcja"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "unia"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "typ"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nowe w wersji %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1972,346 +1949,423 @@ msgstr "Zmienione w wersji %s"
msgid "Deprecated since version %s"
msgstr "Niezalecane od wersji %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
-#, python-format
-msgid "Citation [%s] is not referenced."
-msgstr "Cytat [%s] nie ma odniesienia."
-
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parametry szablonu"
-
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Wyrzuca"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasa"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "koncepcja"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
+msgid "Citation [%s] is not referenced."
+msgstr "Cytat [%s] nie ma odniesienia."
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (funkcja wbudowana)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metoda)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasa)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (zmienna globalna lub stała)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s atrybut)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumenty"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Wyrzuca"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Zwraca"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Typ zwracany"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (moduł)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcja"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metoda"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasa"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dane"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atrybut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "moduł"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "zduplikowana etykieta równania %s, inne wystąpienie w %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "Nieprawidłowy math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Zmienne"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (dyrektywa)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Wyrzuca"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rola)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "dyrektywa"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rola"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametry"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "pole"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "zmienna"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "unia"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "typ"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parametry szablonu"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "koncepcja"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (w module %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (w module %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (zmienna wbudowana)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (klasa wbudowana)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasa w module %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s metoda klasy)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s metoda statyczna)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Indeks modułów Pythona"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduły"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Niezalecane"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "wyjÄ…tek"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "metoda klasy"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statyczna metoda"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (niezalecane)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (dyrektywa)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rola)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "dyrektywa"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rola"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Zmienne"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Wyrzuca"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "zmienna środowiskowa; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "termin glosariusza"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "symbol gramatyki"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "etykieta odsyłacza"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "zmienna środowiskowa"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opcja programu"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokument"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Indeks modułów"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Wyszukiwanie"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2328,35 +2382,35 @@ msgstr "konfiguracja zmieniona"
msgid "extensions changed"
msgstr "rozszerzenie zmienione"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "katalog źródłowy został zmieniony"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Domena %r nie jest zarejestrowana"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2380,39 +2434,39 @@ msgstr ""
msgid "Symbols"
msgstr "Symbole"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2422,7 +2476,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2434,149 +2488,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "maksymalna głębokość submodułów wyświetlanych w spisie treści (domyślnie: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "nadpisz istniejÄ…ce pliki"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "wykonaj skrypt bez tworzenia plików"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "nie twórz pliku spisu treści"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "rozszerzenie pliku (domyślnie: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s nie jest katalogiem."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "nieprawidłowe wyrażenie regularne %r w %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "nieprawidłowe wyrażenie regularne %r w coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "moduł %s nie mógł zostać zaimportowany: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2600,24 +2654,24 @@ msgstr "'%s' nie jest prawidłową opcją pyversion."
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2628,32 +2682,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "dyrektywa Graphviz nie może mieć jednocześnie argumentów content i filename"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Nie znaleziono zewnętrznego pliku Graphviz %r lub jego odczyt się nie powiódł"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ignorujemy dyrektywę „graphviz†bez treści."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "komenda dot %r nie może zostać uruchomiona (potrzebna do wyjścia graphviz), sprawdź ustawienia graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2663,7 +2717,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2673,27 +2727,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format musi mieć wartość „png†lub „svg†a ma %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[wykres: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[wykres]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2701,7 +2755,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2711,173 +2765,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(w %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr " (w %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[źródło]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<oryginalny wpis>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<Oryginalny wpis>> znajduje siÄ™ w pliku %s, w linii %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "oryginalny wpis"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumentacja]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Kod modułu"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Kod źródłowy modułu %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Przeglądanie: kod modułu"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Wszystkie moduły, dla których jest dostępny kod</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "błąd podczas formatowania argumentów dla %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2885,112 +2944,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Klasy bazowe: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "brakujÄ…cy atrybut %s w obiekcie %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2998,25 +3057,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3090,99 +3149,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumenty Nazwane"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Przykład"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Przykłady"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Uwagi"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Pozostałe parametry"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Uwaga"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Ostrzeżenie"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Niebezpieczeństwo"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "BÅ‚Ä…d"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Podpowiedź"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Ważne"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Informacja"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Zobacz także"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Wskazówka"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Ostrzeżenie"
@@ -3214,7 +3273,7 @@ msgid "Table of Contents"
msgstr "Spis treści"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Szukaj"
@@ -3347,34 +3406,22 @@ msgstr "Następny temat"
msgid "next chapter"
msgstr "następny rozdział"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Aby umożliwić wyszukiwanie, proszę włączyć JavaScript."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "szukaj"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Wyniki wyszukiwania"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Twoje wyszukiwanie nie dało żadnych wyników. Upewnij się, że wszystkie słowa są wpisane prawidłowo i że wybrałeś dostateczną ilość kategorii."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Szybkie wyszukiwanie"
@@ -3411,20 +3458,30 @@ msgstr "Zmiany w C API"
msgid "Other changes"
msgstr "Inne zmiany"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Wyniki wyszukiwania"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Twoje wyszukiwanie nie dało żadnych wyników. Upewnij się, że wszystkie słowa są wpisane prawidłowo i że wybrałeś dostateczną ilość kategorii."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Wyszukiwanie"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Inicjalizacja wyszukiwania..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", w "
@@ -3445,30 +3502,30 @@ msgstr "Rozwiń pasek boczny"
msgid "Contents"
msgstr "Treść"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3480,13 +3537,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3513,90 +3570,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Nieznany format obrazka: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "błąd odczytu: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "błąd zapisu: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3619,27 +3676,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3656,13 +3713,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Przypisy"
@@ -3681,20 +3738,20 @@ msgstr "%s"
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[obraz: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[obraz]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/pt/LC_MESSAGES/sphinx.mo b/sphinx/locale/pt/LC_MESSAGES/sphinx.mo
index 7d97b68..9e04a6c 100644
--- a/sphinx/locale/pt/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/pt/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/pt/LC_MESSAGES/sphinx.po b/sphinx/locale/pt/LC_MESSAGES/sphinx.po
index 0bf07f0..01d79c2 100644
--- a/sphinx/locale/pt/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pt/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (http://app.transifex.com/sphinx-doc/sphinx-1/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: pt\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
index c164f9a..a200764 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
index b9b37f1..4943f0e 100644
--- a/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pt_BR/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,20 +7,20 @@
# FIRST AUTHOR <roger.demetrescu@gmail.com>, 2008
# gilberto dos santos alves <gsavix@gmail.com>, 2015-2016
# Rafael Fontenelle <rafaelff@gnome.org>, 2019
-# Rafael Fontenelle <rffontenelle@gmail.com>, 2019-2023
+# Rafael Fontenelle <rffontenelle@gmail.com>, 2019-2024
# Komiya Takeshi <i.tkomiya@gmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
-"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>, 2019-2023\n"
+"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>, 2019-2024\n"
"Language-Team: Portuguese (Brazil) (http://app.transifex.com/sphinx-doc/sphinx-1/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -43,104 +43,104 @@ msgstr "Diretório de origem e o diretório de destino não podem ser idênticos
msgid "Running Sphinx v%s"
msgstr "Executando Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
-msgstr "Este projeto precisa de pelo menos Sphinx v%s e, portanto, não pode ser compilado com esta versão."
+msgstr "Este projeto precisa de pelo menos Sphinx v%s e, portanto, não pode ser construído com esta versão."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "criando o diretório de saída"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "enquanto definia a extensão %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "“setupâ€, conforme definido atualmente em conf.py, não é um invocável do Python. Modifique sua definição para torná-la uma função que pode ser chamada. Isso é necessário para o conf.py se comportar como uma extensão do Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "carregando traduções [%s]… "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "feito"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "não disponível para mensagens internas"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "carregando ambiente com pickle"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "falha: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
-msgstr "Nenhum compilador selecionado, usando padrão: html"
+msgstr "Nenhum construtor selecionado, usando padrão: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "bem-sucedida"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "finalizada com problemas"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
-msgstr "compilação %s, %s aviso. (com avisos tratados como erros)."
+msgstr "construção %s, %s aviso. (com avisos tratados como erros)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
-msgstr "compilação %s, %s avisos (com avisos tratados como erros)."
+msgstr "construção %s, %s avisos (com avisos tratados como erros)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
-msgstr "compilação %s, %s aviso."
+msgstr "construção %s, %s aviso."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
-msgstr "compilação %s, %s avisos."
+msgstr "construção %s, %s avisos."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
-msgstr "compilação %s."
+msgstr "construção %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "classe de nodo %r já está registrada, seus visitantes serão sobrescritos"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "diretiva %r já está registrada, ela será sobrescrita"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "papel %r já está registrado, ele será sobrescrito"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -148,12 +148,12 @@ msgid ""
"explicit"
msgstr "a extensão %s não declara se é segura para leitura em paralelo, supondo que não seja – peça ao autor da extensão para verificar e torná-la explícita"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "a extensão %s não é segura para leitura em paralelo"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -161,70 +161,75 @@ msgid ""
"explicit"
msgstr "a extensão %s não declara se é segura para escrita em paralelo, supondo que não seja – peça ao autor da extensão para verificar e torná-la explícita"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "a extensão %s não é segura para escrita em paralelo"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "fazendo serial %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "o diretório de configuração não contém um arquivo conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "Valor de configuração inválido encontrado: 'language = None'. Atualize sua configuração para um código de idioma válido. Voltando para 'en' (inglês)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "não foi possível sobrescrever a configuração do dicionário %r ignorando (use %r para definir elementos individuais)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "número inválido %r para valor de configuração %r, ignorando"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "não é possível sobrescrever a configuração %r com tipo sem suporte, ignorando"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "valor de configuração desconhecido %r na sobrescrita, ignorando"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Valor de configuração inexistente: %s"
+msgid "No such config value: %r"
+msgstr "Valor de configuração inexistente: %r"
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Valor da configuração %r já presente"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr "não é possível fazer cache de valor de configuração não serializável com pickle: %r"
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Há um erro de sintaxe em seu arquivo de configuração: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "O arquivo de configuração (ou um dos módulos que ele importa) chamou sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -232,308 +237,345 @@ msgid ""
"%s"
msgstr "Há um erro de programável em seu arquivo de configuração:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr "Falha ao converter %r em um conjunto ou tupla"
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "O valor da configuração “source_suffix†espera uma string, lista de strings ou dicionário. Mas “%r†é fornecido."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Seção %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabela %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listagem %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "O valor da configuração “{name}†deve ser um entre {candidates}, mas “{current}†é fornecido."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "O valor da configuração “{name}†possui tipo “{current.__name__}â€; esperava {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "O valor da configuração “{name}†possui tipo “{current.__name__}â€; o padrão é “{default.__name__}â€."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r não encontrado, ignorado."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Desde v2.0, Sphinx usa \"index\" como root_doc por padrão. Adicione \"root_doc = 'contents'\" ao seu conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Evento %r já presente"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Nome de evento desconhecido: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "O manipulador %r para evento %r levantou uma exceção"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "A extensão %s é requerida pelas configurações needs_extensions, mas não está carregada."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
-msgstr "Este projeto precisa da extensão %s pelo menos na versão %s e, portanto, não pode ser compilado com a versão carregada (%s)."
+msgstr "Este projeto precisa da extensão %s pelo menos na versão %s e, portanto, não pode ser construído com a versão carregada (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Nome de analisador léxico Pygments %r não é conhecido"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
-msgstr ""
+msgstr "Lexar literal_block %r como \"%s\" resultou em um erro no token: %r. Tentando novamente no modo relaxado."
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "vários arquivos encontrados para o documento \"%s\": %r\nUse %r para a construção."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
-msgstr ""
+msgstr "Ignorado documento ilegível %r."
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
-msgstr "Classe de compilador %s possui nenhum atributo “nameâ€"
+msgstr "Classe de construtor %s possui nenhum atributo “nameâ€"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
-msgstr "Compilador %r já existe (no módulo %s)"
+msgstr "Construtor %r já existe (no módulo %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
-msgstr "Nome do compilador %s não registrado ou disponível através do ponto de entrada"
+msgstr "Nome do construtor %s não registrado ou disponível através do ponto de entrada"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
-msgstr "Nome do compilador %s não registrado"
+msgstr "Nome do construtor %s não registrado"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domínio %s já registrado"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domínio %s ainda não registrado"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "A diretiva %r já está registrada para o domínio %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "O papel %r já está registrado para o domínio %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "O índice %r já está registrado para o domínio %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "O object_type %r já está registrado"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "O crossref_type %r já está registrado"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r já está registrado"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser para %r já está registrado"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Analisador de fonte para %s não registrado"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Tradutor para %r já existe"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwargs para add_node() deve ser uma tupla de função (visit, depart): %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r já registrado"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "renderizador matemático %s já está registrado"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "a extensão %r já foi mesclada com Sphinx desde a versão %s; esta extensão é ignorada."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Extensão original:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Não foi possível importar a extensão %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "a extensão %r possui nenhuma função setup(); é realmente um módulo de extensão do Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
-msgstr "A extensão %s usada por este projeto precisa de pelo menos Sphinx v%s e, portanto, não pode ser compilada com esta versão."
+msgstr "A extensão %s usada por este projeto precisa de pelo menos Sphinx v%s e, portanto, não pode ser construída com esta versão."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "a extensão %r retornou um objeto não suportado de sua função setup(); deve retornar None ou um dicionário de metadados"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Propostas Estendidas Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "Número de PEP inválido %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "Número de RFC inválido %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "o tema %r não tem a configuração “themeâ€"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "o tema %r não tem a configuração “inheritâ€"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "nenhum tema chamado %r encontrado, herdado por %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "a configuração %s.%s ocorre em nenhuma das configurações de tema pesquisadas"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "sem suporte à opção de tema %r fornecida"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "o arquivo %r no caminho de tema não é um arquivo zip válido ou contém nenhum tema"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr "nenhum tema chamado %r encontrado (faltando theme.toml?)"
+
+#: sphinx/theming.py:259
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "nenhum tema chamado %r encontrado (faltando theme.conf?)"
+msgid "The %r theme has circular inheritance"
+msgstr "O tema %r tem uma hierarquia circular"
+
+#: sphinx/theming.py:262
+#, python-format
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr "O tema %r herda de %r, que não é um tema carregado. Temas carregados são: %s"
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr "O tema %r tem muitos ancestrais"
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr "nenhum arquivo de configuração de tema encontrado em %r"
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr "o tema %r não tem a tabela “themeâ€"
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr "A tabela \"[theme]\" do tema %r não é uma tabela"
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr "O tema %r deve definir a configuração \"theme.inherit\"."
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr "A tabela \"[options]\" do tema %r não é uma tabela"
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr "A configuração \"theme.pygments_style\" deve ser uma tabela. Dica: \"%s\""
#: sphinx/builders/__init__.py:183
#, python-format
msgid "a suitable image for %s builder not found: %s (%s)"
-msgstr "uma imagem adequada para o compilador %s não encontrada: %s (%s)"
+msgstr "uma imagem adequada para o construtor %s não encontrada: %s (%s)"
#: sphinx/builders/__init__.py:187
#, python-format
msgid "a suitable image for %s builder not found: %s"
-msgstr "uma imagem adequada para o compilador %s não encontrada: %s"
+msgstr "uma imagem adequada para o construtor %s não encontrada: %s"
#: sphinx/builders/__init__.py:207
msgid "building [mo]: "
-msgstr "compilando [mo]: "
+msgstr "construindo [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "escrevendo saída… "
@@ -582,59 +624,59 @@ msgstr "%d arquivos-fonte dados na linha de comando"
msgid "targets for %d source files that are out of date"
msgstr "alvos para %d arquivos fonte que estão desatualizados"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
-msgstr "compilando [%s]: "
+msgstr "construindo [%s]: "
#: sphinx/builders/__init__.py:316
msgid "looking for now-outdated files... "
msgstr "procurando por arquivos agora desatualizados… "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d encontrado"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "nenhum encontrado"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "tornando um ambiente pickle"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "verificando consistência"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "nenhum alvo está desatualizado."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "atualizando ambiente: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s adicionado(s), %s alterado(s), %s removido(s)"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "lendo fontes… "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "docnames para escrever: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "preparando documentos"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr "copiando ativos"
@@ -643,36 +685,36 @@ msgstr "copiando ativos"
msgid "duplicated ToC entry found: %s"
msgstr "entrada de tabela de conteúdos duplicada encontrada: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "copiando imagens… "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "não foi possível ler o arquivo de imagem %r: copiando-o"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "não foi possível copiar arquivo de imagem %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "não foi possível escrever arquivo de imagem %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow não encontrado – copiando arquivos de imagem"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "escrevendo o arquivo mimetype..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "escrevendo o arquivo META-INF/container.xml..."
@@ -680,470 +722,470 @@ msgstr "escrevendo o arquivo META-INF/container.xml..."
msgid "writing content.opf file..."
msgstr "escrevendo o arquivo content.opf..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "tipo mime desconhecido para %s, ignorando"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "escrevendo o arquivo toc.ncx..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "escrevendo arquivo %s…"
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "O arquivo de visão geral está em %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "nenhuma alteração na versão %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "escrevendo arquivo de resumo…"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Internos"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Nível do Módulo"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "copiando arquivos-fonte…"
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "não foi possível ler %r para criação do changelog"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
-msgstr "O compilador fictício não gera arquivos."
+msgstr "O construtor fictício não gera arquivos."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "O arquivo ePub está em %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "escrevendo o arquivo nav.xhtml..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "o valor da configuração “epub_language†(ou “languageâ€) não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "o valor da configuração “epub_uid†deve ser XML NAME para EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "o valor da configuração “epub_title†(ou “html_titleâ€) não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "o valor da configuração “epub_author†não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "o valor da configuração “epub_contributor†não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "o valor da configuração “epub_description†não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "o valor da configuração “epub_publisher†não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "o valor da configuração “epub_copyright†(ou “copyrightâ€) não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "o valor da configuração “epub_identifier†não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "o valor da configuração “version†não deve estar vazio para EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "css_file inválido: %r, ignorado"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Os catálogos de mensagens estão em %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "alvos para os %d arquivos de modelo"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "lendo modelos… "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "escrevendo catálogos de mensagens… "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Procure por quaisquer erros na saída acima ou em %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "link quebrado: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "Falha ao compilar regex em linkcheck_allowed_redirects: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "As páginas de manual estão em %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "nenhum valor de configuração “man_pages†encontrado; nenhuma página de manual será escrita"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "escrevendo"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "o valor da configuração “man_pages†faz referência a um documento desconhecido %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "A página HTML está em %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "montando documento único"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "escrevendo arquivos adicionais"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Os arquivos Texinfo estão em %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nExecute \"make\" nesse diretório para executá-los com makeinfo\n(use \"make info\" aqui para fazer isso automaticamente)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "nenhuma valor de configuração “texinfo_documents†encontrado; nenhum documento será escrito"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "o valor da configuração “texinfo_documents†faz referência a documento desconhecido %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "processando %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "resolvendo referências…"
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (em "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "copiando arquivos de suporte Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "erro ao escrever o arquivo Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Os arquivos texto estão em %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "erro ao escrever o arquivo %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Os arquivos XML estão em %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Os arquivos pseudo-XML estão em %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
-msgstr "arquivo de informações da compilação está quebrado: %r"
+msgstr "arquivo de informações da construção está quebrado: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "As páginas HTML estão em %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
-msgstr "Falha ao ler o arquivo de informações de compilação: %r"
+msgstr "Falha ao ler o arquivo de informações de construção: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ãndice Geral"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "índice"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "próximo"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "anterior"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "gerando índices"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "escrevendo páginas adicionais"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "copiando arquivos baixáveis… "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "não foi possível copiar o arquivo baixável %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "Falha ao copiar um arquivo em html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "copiando arquivos estáticos"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "não foi possível copiar o arquivo estático %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "copiando arquivos extras"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "não foi possível copiar o arquivo extra %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
-msgstr "Falha ao escrever o arquivo de informações de compilação: %r"
+msgstr "Falha ao escrever o arquivo de informações de construção: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
-msgstr "não foi possível carregar o índice de pesquisa, mas nem todos os documentos serão compilados: o índice ficará incompleto."
+msgstr "não foi possível carregar o índice de pesquisa, mas nem todos os documentos serão construídos: o índice ficará incompleto."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "a página %s corresponde a dois padrões em html_sidebars: %r e %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "ocorreu um erro Unicode ao renderizar a página %s. Verifique se todos os valores de configuração que contêm conteúdo não ASCII são strings Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Ocorreu um erro ao renderizar a página %s.\nMotivo: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "despejando inventário de objetos"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "despejando índice de pesquisa em %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "js_file inválido: %r, ignorado"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Muitos math_renders estão registrados, mas nenhum math_renderer está selecionado."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "math_renderer desconhecido %r é fornecido."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "a entrada de html_extra_path %r não existe"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "entrada de html_extra_path %r está posicionada dentro de outdir"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "a entrada de html_static_path %r não existe"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "entrada de html_static_path %r está posicionada dento de outdir"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "o arquivo logo %r não existe"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "o arquivo favicon %r não existe"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr "HTML 4 não encontra mais suporte no Sphinx. (\"html4_writer=True\" detectado nas opções de configuração)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
-msgstr "documentação %s %s"
+msgstr "Documentação %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Os arquivos LaTeX estão em %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nExecute \"make\" nesse diretório para executá-los com (pdf)latex\n(use \"make latexpdf\" aqui para fazer isso automaticamente)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "nenhuma valor da configuração “latex_documents†encontrado; nenhum documento será escrito"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "o valor da configuração “latex_documents†faz referência a um documento desconhecido %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Ãndice"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Release"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "nenhuma opção Babel conhecida para o idioma %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "copiando arquivos de suporte TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "copiando arquivos de suporte TeX…"
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "copiando arquivos adicionais"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Chave configuração desconhecida: latex_elements[%r], ignorado."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Opção de tema desconhecida: latex_theme_options[%r], ignorada."
@@ -1158,22 +1200,22 @@ msgstr "%r não possui a configuração \"theme\""
msgid "%r doesn't have \"%s\" setting"
msgstr "%r não possui a configuração \"%s\""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr "Falha ao obter um docname!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr "Falha ao obter o docname para a fonte {source!r}!"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr "Nenhuma nota de rodapé foi encontrada para o nó de referência %r"
#: sphinx/cmd/build.py:46
msgid "Exception occurred while building, starting debugger:"
-msgstr "Ocorreu uma exceção enquanto compilava, iniciando depurador:"
+msgstr "Ocorreu uma exceção enquanto construía, iniciando depurador:"
#: sphinx/cmd/build.py:61
msgid "Interrupted!"
@@ -1225,8 +1267,8 @@ msgstr "Um relatório de erro pode ser preenchido no rastreador em <https://gith
msgid "job number should be a positive number"
msgstr "número de tarefas deve ser um número positivo"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "Para mais informações, visite <https://www.sphinx-doc.org/>."
@@ -1258,257 +1300,264 @@ msgid "path to output directory"
msgstr "caminho para o diretório de saída"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "uma lista de arquivos específicos para recompilar. Ignorado se -a for especificado"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr "(opcional) uma lista de arquivos específicos para reconstruir. Ignorado se --write-all for especificado"
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "opções gerais"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "compilador para usar (padrão: html)"
+msgid "builder to use (default: 'html')"
+msgstr "construtor para usar (padrão: 'html')"
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr "executa em paralelo com N processos, quando possível. 'auto' usa o número de núcleos da CPU"
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "escrever todos os arquivos (padrão: escrever apenas arquivos novos e alterados)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "não usa um ambiente salvo, sempre lê todos os arquivos"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "caminho para o ambiente em cache e arquivos doctree (padrão: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "compila em paralelo com N processos onde possível (o valor especial “auto†será definido com N para número de CPUs)"
+msgid "path options"
+msgstr "opções de caminho"
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "caminho no qual o arquivo de configuração (conf.py) está localizado (padrão: mesmo que SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr "diretório para arquivos de doctree e de ambiente (padrão: OUTPUT_DIR/.doctrees)"
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "usa nenhum arquivo de configuração, apenas as opções -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr "diretório para o arquivo de configuração (conf.py) (padrão: SOURCE_DIR)"
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr "usa nenhum arquivo de configuração, apenas usa configurações das opções -D"
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "sobrescreve a configuração no arquivo de configuração"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "passa um valor para modelos em HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "define tag: inclui blocos “only†com TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "modo exigente, avisa sobre todas as referências em falta"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr "modo exigente: avisa sobre todas as referências em falta"
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "opções de saída do console"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "aumenta o nível de detalhamento (pode ser repetido)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "nenhuma saída para stdout, apenas avisos na stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "nenhuma saída, nem mesmo avisos"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "emite saída colorida (padrão: detectar automaticamente)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "não emite saída colorida (padrão: detectar automaticamente)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr "opções de controle de aviso"
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "escreve avisos (e erros) para o arquivo fornecido"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "transforma avisos em erros"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "com -W, segue em frente ao receber avisos"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr "com --fail-on-warning, segue em frente ao receber avisos"
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "mostra rastro completo em exceção"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "executa Pdb na exceção"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "não é possível combinar a opção -a e nomes de arquivos"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "não foi possível abrir o arquivo de aviso %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "o argumento da opção -D deve estar no formato nome=valor"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "o argumento da opção -A deve estar no formato nome=valor"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "insere docstrings automaticamente a partir de módulos"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "testa trechos de código automaticamente em blocos de doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "cria link entre documentação Sphinx de diferentes projetos"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
-msgstr "escreve entradas “todo†que podem ser mostradas ou ocultadas na compilação"
+msgstr "escreve entradas “todo†que podem ser mostradas ou ocultadas na construção"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "verifica por cobertura da documentação"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "inclui matemática, renderizada como imagens PNG ou SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "inclui matemática, renderizada no navegador por MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "inclusão condicional de conteúdo com base nos valores de configuração"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "inclui links para o código-fonte dos objetos Python documentados"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "cria um arquivo .nojekyll para publicar o documento em páginas do GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Insira um nome de caminho válido."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Insira algum texto."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Insira um entre %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Insira “y†ou “nâ€."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Insira um sufixo de arquivo, p.ex., “.rst†ou “.txtâ€."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Bem-vindo ao utilitário de início rápido do Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Digite valores para as seguintes configurações (basta pressionar Enter\npara aceitar um valor padrão, se houver um entre colchetes)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Caminho raiz selecionado: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Insira o caminho raiz para a documentação."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Caminho raiz para a documentação"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Erro: um conf.py existente foi encontrado no caminho raiz selecionado."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart não vai sobrescrever projetos Sphinx existentes."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Insira um novo caminho raiz (ou pressione Enter para sair)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
-msgstr "Você tem duas opções para definir o diretório de compilação para a saída\nSphinx. Você pode usar um diretório \"_build\" no caminho raiz ou separar\nos diretórios de \"origem\" e \"compilação\" no caminho raiz."
+msgstr "Você tem duas opções para definir o diretório de construção para a saída\nSphinx. Você pode usar um diretório \"_build\" no caminho raiz ou separar\nos diretórios de \"origem\" e \"construção\" no caminho raiz."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
-msgstr "Separar os diretórios de origem e compilação (y/n)"
+msgstr "Separar os diretórios de origem e de construção (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Dentro do diretório raiz, mais dois diretórios serão criados; \"_templates\"\npara modelos HTML personalizados e \"_static\" para folhas de estilo (CSS)\npersonalizadas e outros arquivos estáticos. Você pode inserir outro prefixo\n(como \".\") para substituir o sublinhado."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Prefixo do nome para o diretório de modelos e de arquivos estáticos"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
-msgstr "O nome do projeto vai aparecer em vários lugares na documentação compilada."
+msgstr "O nome do projeto vai aparecer em vários lugares na documentação construída."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Nome do projeto"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Nome(s) de autor(es)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1517,15 +1566,15 @@ msgid ""
"just set both to the same value."
msgstr "O Sphinx tem a noção de uma \"versão\" e um \"lançamento\" para o software.\nCada versão pode ter vários lançamentos. Por exemplo, para Python a\nversão é algo como 2.5 ou 3.0, enquanto o lançamento é algo como 2.5.1\nou 3.0a1. Se você não precisa dessa estrutura dupla, apenas defina ambos\ncom o mesmo valor."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Versão do projeto"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Lançamento do projeto"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1535,21 +1584,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Se os documentos forem escritos em um idioma diferente do inglês, você\npode selecionar um idioma aqui pelo seu código de idioma. O Sphinx,\nentão, traduzirá o texto gerado para esse idioma.\n\nPara obter uma lista dos códigos suportados, consulte\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Idioma do projeto"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "O sufixo do nome de arquivo para arquivos fonte. Normalmente, isso é\n\".txt\" ou \".rst\". Apenas arquivos com este sufixo são considerados\ndocumentos."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Sufixo de arquivos-fonte"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1557,91 +1606,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Um documento é especial por ser considerado o nó superior da \"árvore de\nconteúdo\", ou seja, é a raiz da estrutura hierárquica dos documentos.\nNormalmente, isso é \"index\", mas se o documento \"index\" for um modelo\npersonalizado, você também poderá configurá-lo para outro nome de arquivo."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Nome do seu documento mestre (sem sufixo)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Erro: o arquivo mestre %s já foi encontrado no caminho raiz selecionado."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart não vai sobrescrever o arquivo existente."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Insira um novo nome de arquivo, ou renomeie o arquivo existente e pressione Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Indique qual das seguintes extensões do Sphinx devem ser habilitadas:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Nota: imgmath e mathjax não podem ser habilitados ao mesmo tempo. imgmath foi desmarcado."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Um Makefile e um arquivo de comando do Windows podem ser gerados para você,\npara que você só precise executar, p.ex., \"make html\" em vez de invocar o\nsphinx-build diretamente."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Criar um Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Criar um arquivo de comando do Windows? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Criando o arquivo %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "O arquivo %s já existe, ignorando."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Finalizado: uma estrutura de diretório inicial foi criada."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Agora você deve preencher seu arquivo mestre %s e criar outros arquivos-fonte\nda documentação. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
-msgstr "Use o Makefile para compilar os documentos, assim:\n make builder"
+msgstr "Use o Makefile para construir os documentos, assim:\n make construtor"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
-msgstr "Use o comando sphinx-build para compilar os documentos, assim:\n sphinx-build -b compilador %s %s"
+msgstr "Use o comando sphinx-build para construir os documentos, assim:\n sphinx-build -b construtor %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
-msgstr "sendo “compilador†um dos compiladores com suporte, p.ex., html, latex ou linkcheck."
+msgstr "sendo “construtor†um dos construtores aceitos, p.ex., html, latex ou linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1651,135 +1700,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nGera os arquivos necessários para um projeto Sphinx.\n\nO sphinx-quickstart é uma ferramenta interativa que faz algumas perguntas\nsobre o seu projeto e gera um diretório de documentação completo e um\nMakefile de amostra para ser usado com o sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "modo silencioso"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "raiz do projeto"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Opção Estrutura"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
-msgstr "se especificado, separa diretórios de fonte e de compilação"
+msgstr "se especificado, separa diretórios de fonte e de construção"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "se especificado, cria o dir de construção sob o dir fonte"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "substituto para ponto em _templates etc."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Opções básicas do projeto"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "nome do projeto"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "nomes de autores"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "versão do projeto"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "lançamento do projeto"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "idioma dos documentos"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "sufixo de arquivos-fonte"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "nome do documento mestre"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "usa epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Opções extensão"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "habilita a extensão %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "habilita extensões arbitrárias"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Criação de Makefile e arquivo Batch"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "cria makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "não cria makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "cria arquivo batch"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "não cria arquivo batch"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "usa modo make para Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "não usa modo make para Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Modelo de projeto"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "diretório para arquivos de modelos"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "define uma variável modelo"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "“quiet†está especificada, mas “project†ou “author†não foi."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Erro: o caminho especificado não é um diretório, ou arquivos sphinx já existem."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart só gera em um diretório vazio. Especifique um novo caminho raiz."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Variável de modelo inválida: %s"
@@ -1830,47 +1879,47 @@ msgstr "Não é possível usar “lineo-match†com um conjunto separado de “
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Especificação de linha %r: nenhuma linha obtida do arquivo incluído %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "o padrão de glob do toctree %r não correspondeu a nenhum documento."
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree contém referência ao documento excluído %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree contém referência ao documento inexistente %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "entrada duplicada encontrada no toctree: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor da seção: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor do módulo: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor do código: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ".. conteúdo acks não está na lista"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ".. conteúdo hlist não está na lista"
@@ -1885,82 +1934,10 @@ msgstr "A opção \":file:\" para a diretiva csv-table agora reconhece um caminh
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Declaração C duplicada, também definida em %s:%s.\nA declaração é '.. c:%s:: %s'."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parâmetros"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "Valores de retorno"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Retorna"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tipo de retorno"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membro"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variável"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "função"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "struct"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "união"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerador"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipo"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "parâmetro de função"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Novo na versão %s"
+msgid "Added in version %s"
+msgstr "Adicionado na versão %s"
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1972,346 +1949,423 @@ msgstr "Alterado na versão %s"
msgid "Deprecated since version %s"
msgstr "Obsoleto desde a versão %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr "Removido na versão %s"
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "citação duplicada %s, outra instância em %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "citação [%s] não é referenciada."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Declaração C++ duplicada, também definida em %s:%s.\nA declaração é '.. cpp:%s:: %s'."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parâmetros do Modelo"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Lança"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "classe"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "conceito"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "parâmetro de modelo"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (função interna)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (método %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (classe)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variável global ou constante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atributo %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumentos"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Lança"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Retorna"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipo de retorno"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (módulo)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "função"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "método"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "classe"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dado"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atributo"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "módulo"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "descrição duplicada de %s de %s, outro %s em %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "rótulo duplicado da equação %s, outra instância em %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "math_eqref_format inválido: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variáveis"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (diretiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Levanta"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (opção diretiva)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (papel)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "diretiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "opção diretiva"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "papel"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "descrição duplicada de %s %s, outra instância em %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Declaração C duplicada, também definida em %s:%s.\nA declaração é '.. c:%s:: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parâmetros"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "Valores de retorno"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membro"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variável"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "struct"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "união"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerador"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipo"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "parâmetro de função"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parâmetros do Modelo"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Declaração C++ duplicada, também definida em %s:%s.\nA declaração é '.. cpp:%s:: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "conceito"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "parâmetro de modelo"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (no módulo %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (no módulo %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variável interna)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (classe interna)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (classe em %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (método de classe %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (método estático %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (propriedade %s )"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Ãndice de Módulos Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "módulos"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Obsoleto"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "exceção"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "método de classe"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "método estático"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "propriedade"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
-msgstr ""
+msgstr "descrição duplicada de objeto de %s, outra instância em %s, use :no-index: para um deles"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "mais de um alvo localizado para referência cruzada %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (obsoleto)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (diretiva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (opção diretiva)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (papel)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "diretiva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "opção diretiva"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "papel"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variáveis"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "descrição duplicada de %s %s, outra instância em %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Levanta"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
-msgstr "váriavel de ambiente; %s"
+msgstr "variável de ambiente; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Descrição de opção %r malformada, deve se parecer com “optâ€, “-opt argsâ€, “--opt argsâ€, “/opt args†ou “+opt argsâ€"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s opção de linha de comando"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "opção de linha de comando"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "um termo de glossário deve ser precedido por uma linha vazia"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "termos de glossário não devem ser separados por linhas vazias"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "o glossário parece estar mal formatado, confira o recuo"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "Glossário de Termos"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "termo gramatical"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "marca referencial"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
-msgstr "váriavel de ambiente"
+msgstr "variável de ambiente"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opção do programa"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "documento"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Ãndice do Módulo"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Página de Busca"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "rótulo duplicada %s, outra instância em %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "descrição duplicada de %s de %s, outra instância em %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig está desabilitado. :numref: é ignorado."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "Falha ao criar uma referência cruzada. Qualquer número não foi atribuído: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "o link não possui legenda: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "numfig_format inválido: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "numfig_format inválido: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "rótulo não definido: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "Falha ao criar uma referência cruzada. Título ou legenda não encontrado: %r"
@@ -2328,35 +2382,35 @@ msgstr "configuração alterada"
msgid "extensions changed"
msgstr "extensões alteradas"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
-msgstr "a versão do ambiente de compilação não é a atual"
+msgstr "a versão do ambiente de construção não é a atual"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "diretório de fontes foi alterado"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
-msgstr "Este ambiente é incompatível com o compilador selecionado, por favor escolha outro diretório de doctree."
+msgstr "Este ambiente é incompatível com o construtor selecionado, por favor escolha outro diretório de doctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Falha ao procurar documentos em %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "O domínio %r ainda não está registrado"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "o documento não está incluído em nenhum toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "toctree autorreferenciada encontrada. Ignorado."
@@ -2380,39 +2434,39 @@ msgstr "tipo desconhecido de entrada de índice %r"
msgid "Symbols"
msgstr "Símbolos"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "referências circulares à toctree detectadas, ignorando: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree contém referência ao documento %r que não possui título: nenhum link será gerado"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "toctree contém referência ao documento não incluído %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "arquivo de imagem não legível: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "arquivo de imagem %s não legível: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "arquivo de download não legível: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s já tem números de seção atribuídos (toctree numerada aninhada?)"
@@ -2422,7 +2476,7 @@ msgstr "%s já tem números de seção atribuídos (toctree numerada aninhada?)"
msgid "Would create file %s."
msgstr "Criaria o arquivo %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2434,149 +2488,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nProcura recursivamente em <MODULE_PATH> módulos e pacotes Python e cria um\narquivo reST com diretivas automodule por pacote no <OUTPUT_PATH>.\n\nOs <EXCLUDE_PATTERN>s podem ser padrões de arquivo e/ou diretório que serão\nexcluídos da geração.\n\nNota: Por padrão, este script não substituirá os arquivos já criados."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "caminho para o módulo a ser documentado"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "padrões de diretório e/ou arquivo no estilo fnmatch para excluir da geração"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "diretório para colocar toda a saída"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "profundidade máxima de submódulos para mostrar no TOC (padrão: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "sobrescreve arquivos existentes"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "segue links simbólicos. Poderoso quando combinado com collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "escreve o script sem criar arquivos"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "coloca a documentação para cada módulo em sua própria página"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "inclui módulos “_privateâ€"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "nome de arquivo da tabela de conteúdo (padrão: modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "não cria um arquivo de tabela de conteúdo"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "não cria títulos para os pacotes de módulo/pacote (p.ex., quando as docstrings já os contêm)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "coloca documentação de módulo antes da documentação do submódulo"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interpreta caminhos de módulos de acordo com a especificação de espaços de nomes implícitos PEP-0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "sufixo dos arquivos (padrão: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "gera um projeto completo com sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "acrescenta module_path a sys.path, usando quando --full é fornecido"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "nome do projeto (padrão nome do módulo raiz)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "autor(e)s do projeto, usado quando --full é fornecido"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "versão do projeto, usado quando --full é fornecido"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "lançamento do projeto, usado quando --full é fornecido, padrão é --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "opções de extensão"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s não é um diretório."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "a seção \"%s\" fica rotulada como \"%s\""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "regex inválida %r em %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Teste de cobertura nos fontes finalizada, confira os resultados em %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "regex inválida %r em coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "api c não documentada: %s [%s] no arquivo %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "o módulo %s não pôde ser importado: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "função python não documentada: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "classe python não documentada: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "método python não documentado: %s :: %s :: %s"
@@ -2600,24 +2654,24 @@ msgstr "“%s†não é uma opção de pyversion válida"
msgid "invalid TestCode type"
msgstr "Tipo de TestCode inválido"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Teste de doctests nos fontes finalizada, confira os resultados em %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "nenhum código/saída no bloco %s em %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "ignorando código de doctest inválido: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "=================== durações de leitura mais lentas ===================="
@@ -2628,32 +2682,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "O link codificado %r pode ser substituído por um extlink (tente usar %r)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "A diretiva de Graphviz não pode ter conteúdo e argumento de nome de arquivo"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Arquivo externo de Graphviz %r não encontrado ou sua leitura falhou"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ignorando diretiva “graphviz†sem conteúdo."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
-msgstr ""
+msgstr "O caminho do executável graphviz_dot deve ser definido! %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "comando de DOT %r não pode ser executado (necessário para a saída do graphviz), verifique a configuração do graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2663,7 +2717,7 @@ msgid ""
"%r"
msgstr "DOT encerrado com erro:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2673,27 +2727,27 @@ msgid ""
"%r"
msgstr "DOT não produziu um arquivo de saída:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format deve ser um entre “png†e “svgâ€, mas é %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "código DOT %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[gráfico: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[gráfico]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2701,7 +2755,7 @@ msgid ""
"Traceback: %s"
msgstr "Não é possível executar o comando de conversão de imagem %r. 'sphinx.ext.imgconverter' requer ImageMagick por padrão. Verifique se ele está instalado ou defina a opção 'image_converter' para um comando de conversão personalizado.\n\nRastreamento: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2711,173 +2765,178 @@ msgid ""
"%r"
msgstr "convert encerrado com erro:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "comando de conversão %r não pode ser executado, verifique a configuração image_converter"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "o comando LaTeX %r não pode ser executado (necessário para exibir matemáticas), verifique a configuração imgmath_latex"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "o comando %s %r não pode ser executado (necessário para exibir matemáticas), verifique a configuração imgmath_%s"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "exibe latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "latex em linha %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
-msgstr ""
+msgstr "Link para esta equação"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "o inventário intersphinx foi movido: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "carregando inventário intersphinx de %s…"
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "encontrados alguns problemas com alguns dos inventários, mas eles tem alternativas em funcionamento:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "falha ao alcançar todos os inventários com os seguintes problemas:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(em %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(em %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr "inventário para referência cruzada externa não encontrado: %r"
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "inventário para referência cruzada externa não encontrado: %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr "sufixo inválido de referência cruzada externa: %r"
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "papel para referência cruzada externa não encontrado: %s"
+msgid "domain for external cross-reference not found: %r"
+msgstr "domínio para referência cruzada externa não encontrado: %r"
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "alvo da referência externa %s:%s não encontrado: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "identificador intersphinx %r não é uma string. Ignorado"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "Falha ao ler intersphinx_mapping[%s], ignorado: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[código fonte]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Por fazer"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "Entrada de “TODO†encontrada: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(A <<original entry>> está localizada na %s, linha %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "entrada original"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "realçando código de módulo… "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documentos]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Código do módulo"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Código fonte para %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Visão geral: código do módulo"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Todos os módulos onde este código está disponível</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "valor inválido para a opção member-order: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "valor inválido para a opção class-doc-from: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "assinatura inválida para auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "erro ao formatar argumentos para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: falhou em determinar %s.%s (%r) a ser documentado, a seguinte exceção foi levantada:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2885,112 +2944,112 @@ msgid ""
"explicit module name)"
msgstr "não sei qual módulo importar para documentação automática %r (tente colocar uma diretiva “module†ou “currentmodule†no documento ou forneça um nome explícito para o módulo)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "Um objeto simulado foi detectado: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "erro ao formatar assinatura para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "“::†no nome de automodule não faz sentido"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "argumentos de assinatura ou anotação de retorno fornecidos para automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ deve ser uma lista de strings, não %r (no módulo %s) -- ignorando __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "faltando atributo mencionado na opção :members: : módulo %s, atributo %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "Falha ao obter uma assinatura de função para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "Falha ao obter uma assinatura de construtor para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Base: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "faltando atributo %s no objeto %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "apelido de %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "apelido de TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "Falha ao obter uma assinatura de método para %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "__slots__ inválido encontrado em %s. Ignorado."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "Falha ao analisar um valor de argumento padrão para %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "Falha ao atualizar a assinatura para %r: parâmetro não encontrado: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "Falha ao analisar type_comment para %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "referências de autosummmary excluíram o documento %r. Ignorado."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: arquivo stub não encontrado %r. Verifique sua configuração autosummary_generate."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "Um autosummary com legenda requer a opção :toctree:. Ignorado."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2998,25 +3057,25 @@ msgid ""
"%s"
msgstr "autosummary: falha ao importar %s\nPossíveis dicas:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "falha ao analisar o nome %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "falha ao importar o objecto %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: arquivo não encontrado: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr "autosummary gera arquivos .rst internamente. Mas seu source_suffix não contém .rst. Ignorado."
#: sphinx/ext/autosummary/generate.py:200
@@ -3090,99 +3149,99 @@ msgid ""
"%(default)s)"
msgstr "documenta exatamente os membros no módulo atributo __all__. (padrão: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumentos de Palavras-chave"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Exemplo"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Exemplos"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Notas"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Outros Parâmetros"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "Recebe"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Referências"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Avisos"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Yields"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "valor inválido definido (faltando chave de fechamento): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "valor inválido definido (faltando chave de abertura): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "string literal malformada (faltando aspas de fechamento): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "string literal malformada (faltando aspas de abertura): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Atenção"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Cuidado"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Perigo"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Erro"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Dica"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Importante"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Nota"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Ver também"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Dica"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Aviso"
@@ -3214,7 +3273,7 @@ msgid "Table of Contents"
msgstr "Tabela de Conteúdo"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Buscar"
@@ -3347,34 +3406,22 @@ msgstr "Próximo tópico"
msgid "next chapter"
msgstr "próximo capítulo"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Por favor, ativar JavaScript para habilitar a\nfuncionalidade de busca."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Pesquisando por várias palavras só mostra correspondências\nque contêm todas as palavras."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "buscar"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Resultados da Busca"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Sua busca não encontrou nenhum documento. Por favor, confirme se todas as palavras estão grafadas corretamente e se você selecionou categorias suficientes."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Busca rápida"
@@ -3411,20 +3458,30 @@ msgstr "Alterações na API C"
msgid "Other changes"
msgstr "Outras alterações"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Resultados da Busca"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Sua busca não encontrou nenhum documento. Por favor, confirme se todas as palavras estão grafadas corretamente e se você selecionou categorias suficientes."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "Pesquisa finalizada, encontrada(s) ${resultCount} página(s) correspondendo à consulta da pesquisa."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Buscando"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Preparando a busca..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", em "
@@ -3445,30 +3502,30 @@ msgstr "Expandir painel lateral"
msgid "Contents"
msgstr "Conteúdos"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
-msgstr ""
+msgstr "não foi possível calcular o progresso da tradução!"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
-msgstr ""
+msgstr "nenhum elemento traduzido!"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "Um índice de 4 colunas encontrado. Pode ser um erro de extensões que você usa: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Nota de rodapé [%s] não é referenciada."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Nota de rodapé [#] não é referenciada."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3480,13 +3537,13 @@ msgid ""
"{1}"
msgstr "referências inconsistentes na mensagem traduzida. original: {0}, traduzida: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "referências de citação inconsistentes na mensagem traduzida. original: {0}, traduzida: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3513,97 +3570,97 @@ msgstr "%s:alvo de referência %s não encontrado: %s"
msgid "%r reference target not found: %s"
msgstr "alvo de referência %r não encontrado: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "Não foi possível obter imagem remota: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "Não foi possível obter imagem remota: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Formato de imagem desconhecido: %s…"
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "caracteres de origem não codificáveis, substituindo por “?â€: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "ignorado"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "falhou"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "Problema no domínio %s: o campo deveria usar o papel \"%s\", mas esse papel não está no domínio."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "diretiva ou nome de papel desconhecida(o): %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "tipo de nó desconhecido: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "erro de leitura: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "erro de escrita: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
-msgstr ""
+msgstr "locale_dir %s não existe"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Formato de data inválido. Envolva a string com aspas simples se desejar emiti-la diretamente: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr "%r foi descontinuado para entradas de índice (da entrada %r). Use \"pair: %s\"."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctree contém referência ao arquivo inexistente %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "exceção ao avaliar apenas a expressão da diretiva: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "papel padrão %s não encontrado"
#: sphinx/writers/html5.py:100 sphinx/writers/html5.py:109
msgid "Link to this definition"
-msgstr ""
+msgstr "Link para esta definição"
#: sphinx/writers/html5.py:397
#, python-format
@@ -3617,29 +3674,29 @@ msgstr "Quaisquer IDs não atribuídos ao nó %s"
#: sphinx/writers/html5.py:462
msgid "Link to this term"
-msgstr ""
+msgstr "Link para este termo"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
-msgstr ""
+msgstr "Link para este cabeçalho"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
-msgstr ""
+msgstr "Link para esta tabela"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
-msgstr ""
+msgstr "Link para este código"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
-msgstr ""
+msgstr "Link para esta imagem"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
-msgstr ""
+msgstr "Link para este toctree"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "Não foi possível obter o tamanho da imagem. A opção :scale: foi ignorada."
@@ -3656,13 +3713,13 @@ msgstr ":maxdepth: grande demais, ignorado."
msgid "document title is not a single Text node"
msgstr "título do documento não é um nó único em Text"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "nó de título encontrado não na section, topic, table, admonition ou sidebar"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Notas de rodapé"
@@ -3681,20 +3738,20 @@ msgstr "a unidade de dimensão %s é inválida. Ignorada."
msgid "unknown index entry type %s found"
msgstr "tipo desconhecido de entrada de índice %s encontrado"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[imagem: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[imagem]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "legenda não dentro de uma imagem."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "tipo de nó não implementado: %r"
diff --git a/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo b/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo
index 8470498..395ac72 100644
--- a/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po b/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po
index 246817d..acf5826 100644
--- a/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/pt_PT/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Komiya Takeshi <i.tkomiya@gmail.com>, 2016\n"
"Language-Team: Portuguese (Portugal) (http://app.transifex.com/sphinx-doc/sphinx-1/language/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: pt_PT\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Internos"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Módulos"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (em "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ãndice Geral"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "índice"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "próximo"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "anterior"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Documentação %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Ãndice"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Versão"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor da secção: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor do módulo: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor do código: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,82 +1930,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parâmetros"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Retorno"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tipo de retorno"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membro"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variável"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "função"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tipo"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Novo na versão %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "Alterado na versão %s"
msgid "Deprecated since version %s"
msgstr "Obsoleto desde a versão %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Gera"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "classe"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (função interna)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (método %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (classe)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variável global ou constante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atributo %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Parâmetros"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Gera"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Retorno"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipo de retorno"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (módulo)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "função"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "método"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "classe"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dados"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atributo"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "módulo"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variáveis"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directiva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Levanta"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (papel)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directiva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "papel"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parâmetros"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membro"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variável"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tipo"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (no módulo %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (no módulo %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variável interna)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (classe interna)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (classe em %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (método de classe %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (método estático %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Ãndice de Módulos do Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "módulos"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Obsoleto"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "excepção"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "método de classe"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "método estático"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (obsoleto)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directiva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (papel)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directiva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "papel"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variáveis"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Levanta"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variável de ambiente; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "Termo de glossário"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "token de gramática"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "rótulo de referência"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variável de ambiente"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opção de programa"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Ãndice de Módulos"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Página de Pesquisa"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr "Símbolos"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[gráfico: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[gráfico]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(em %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[código fonte]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Por fazer"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "entrada original"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documentos]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Código do módulo"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Código fonte de %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Visão geral: código do módulo"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Todos os módulos onde este código está disponível</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Atenção"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Cuidado"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Perigo"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Erro"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Dica"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Importante"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Nota"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Veja também"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Dica"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Aviso"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Pesquisar"
@@ -3343,34 +3402,22 @@ msgstr "Próximo tópico"
msgid "next chapter"
msgstr "próximo capítulo"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Por favor ligue o JavaScript para habilitar a\nfuncionalidade de pesquisa."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "pesquisar"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Resultados da Pesquisa"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "A sua pesquisa não encontrou nenhum documento. Por favor, confirme que todas as palavras estão escritas corretamente e que selecionou categorias suficientes."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Pesquisa rápida"
@@ -3407,20 +3454,30 @@ msgstr "Alterações na API C"
msgid "Other changes"
msgstr "Outras alterações"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Resultados da Pesquisa"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "A sua pesquisa não encontrou nenhum documento. Por favor, confirme que todas as palavras estão escritas corretamente e que selecionou categorias suficientes."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "A Pesquisar"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "A preparar a pesquisa..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", em"
@@ -3441,30 +3498,30 @@ msgstr "Expandir painel lateral"
msgid "Contents"
msgstr "Conteúdo"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Notas de rodapé"
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[imagem: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[imagem]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ro/LC_MESSAGES/sphinx.mo b/sphinx/locale/ro/LC_MESSAGES/sphinx.mo
index c764f03..941b215 100644
--- a/sphinx/locale/ro/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ro/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ro/LC_MESSAGES/sphinx.po b/sphinx/locale/ro/LC_MESSAGES/sphinx.po
index e83cd95..73b0bab 100644
--- a/sphinx/locale/ro/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ro/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Razvan Stefanescu <razvan.stefanescu@gmail.com>, 2015-2017\n"
"Language-Team: Romanian (http://app.transifex.com/sphinx-doc/sphinx-1/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
@@ -39,104 +39,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Proiectul necesită minim Sphinx v%s și de aceea nu poate fi construit cu această versiune."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "eșuat: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "a reușit"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "a fost finalizat cu probleme"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Fig. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabelul %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Cod %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Propuneri de Îmbunătățire Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Integrate"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Nivelul modul"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(în"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Index General"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "următor"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "precedent"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s documentație"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Versiune"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autorul secțiunii:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autorul modulului:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autorul codului:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,82 +1930,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametrii"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "ÃŽntoarce"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Tipul întors"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "membru"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabilă"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funcție"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tip"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nou în versiunea %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "Schimbat în versiunea %s"
msgid "Deprecated since version %s"
msgstr "Învechit începând cu versiunea %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Generează"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "clasă"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (funcție integrată)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (metoda %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (clasă)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (variabilă globală sau constantă)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atribut %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumente"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Generează"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "ÃŽntoarce"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Tipul întors"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funcție"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metodă"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "clasă"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variabile"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (directivă)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Generează"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "directivă"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rol"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametrii"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "membru"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabilă"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tip"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (în modulul %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (în modulul %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (variabilă integrată)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (clasă integrată)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (clasa în %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (metoda clasei %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (metoda statică %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Indexul de Module Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "module"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "ÃŽnvechit"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "excepție"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "metoda clasei"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "metodă statică"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(învechit)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (directivă)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rol)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "directivă"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rol"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variabile"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Generează"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "variabilă de mediu; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "termen de glosar"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "element de gramatică"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "etichetă de referință"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "variabilă de mediu"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "opțiune a programului"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Index al modulelor"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Pagină de Căutare"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr "Simboluri"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[grafic: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[grafic]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(în %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[sursă]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "De făcut"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "înregistrarea inițială"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[documentație]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Codul modulului"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Codul sursă pentru %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Prezentare generală: codul modulului"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Toate modulele pentru care este disponibil codul sursă</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Atenție"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Avertisment"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Pericol"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Eroare"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Sugestie"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Important"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Notă"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Vezi și"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Sfat"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Atenționare"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Căutare"
@@ -3343,34 +3402,22 @@ msgstr "Subiectul următor"
msgid "next chapter"
msgstr "capitolul următor"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Activează JavaScript pentru a permite\nfuncția de căutare."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "căutare"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Rezultatele Căutării"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Căutarea nu a identificat nici un document. Te rog să te asiguri că toate cuvintele sunt scrise corect și că ai selectat suficiente categorii."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Căutare rapidă"
@@ -3407,20 +3454,30 @@ msgstr "Schimbări în API C"
msgid "Other changes"
msgstr "Alte schimbări"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Rezultatele Căutării"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Căutarea nu a identificat nici un document. Te rog să te asiguri că toate cuvintele sunt scrise corect și că ai selectat suficiente categorii."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Căutare"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Se pregătește căutarea..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", în"
@@ -3441,30 +3498,30 @@ msgstr "Expandare bară laterală"
msgid "Contents"
msgstr "Cuprins"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Note de subsol"
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[figura: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[figură]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.mo b/sphinx/locale/ru/LC_MESSAGES/sphinx.mo
index 164e304..3bf0c33 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ru/LC_MESSAGES/sphinx.po b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
index dfee9f8..01dc19f 100644
--- a/sphinx/locale/ru/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ru/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -14,14 +14,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Il'ya <ilya@marshal.dev>, 2022\n"
"Language-Team: Russian (http://app.transifex.com/sphinx-doc/sphinx-1/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
@@ -44,104 +44,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Проект требует верÑию Sphinx не ниже v%s и не может быть поÑтроен текущей верÑией."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "готово"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "ошибка: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Сборщик не указан, по умолчанию иÑпользуетÑÑ html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "уÑпешно"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°Ð¼Ð¸"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "Ñборка завершена %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -149,12 +149,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -162,70 +162,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "в конфигурационной папке нет файла conf.py file (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "ОтÑутÑтвует ключ конфигурации %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Ключ конфигурации %r уже ÑущеÑтвует"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Файл конфигурации (или один из импортированных модулей) вызвал sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -233,290 +238,327 @@ msgid ""
"%s"
msgstr "Ð’ вашем файле конфигурации Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Раздел %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "РиÑ. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Таблица %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "СпиÑок %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Событие %r уже ÑущеÑтвует"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "ÐеизвеÑтное Ñобытие: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "ОтÑутÑтвует аттрибут \"name\" у клаÑÑа Ñборщика %s."
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Сборщик %r уже ÑущеÑтвует (в модуле %s)."
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Сборщик %s не зарегиÑтрирован Ñвно или через реÑурÑÑ‹ пакетов."
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Сборщик %s не зарегиÑтрирован."
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Изначальное иÑключение:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Ðе могу загрузить модуль раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "раÑширение %r не определÑет функцию setup(); Ñто дейÑтвительно модуль раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð± улучшениÑÑ… Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -533,8 +575,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -583,7 +625,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -592,50 +634,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -644,36 +686,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "Ðе получаетÑÑ Ñчитать файл изображение %r: Ñкопируйте его"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "Ðе получаетÑÑ Ñкопировать файл Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "Ðе получаетÑÑ Ð·Ð°Ð¿Ð¸Ñать файл Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -681,470 +723,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "запиÑываетÑÑ %s файл..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Ð’Ñтроенные функции"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Модуль"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (в "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Ðлфавитный указатель"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "указатель"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "вперёд"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "назад"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Ðлфавитный указатель"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "ВыпуÑк"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1159,15 +1201,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1226,8 +1268,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1259,7 +1301,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1267,249 +1311,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "Ðевозможно Ñовмещать ключ -a и Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "Ðе получаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл Ñ Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñми %r:%s "
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1518,15 +1567,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "ВерÑÐ¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Релиз проекта"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1536,21 +1585,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Язык проекта"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1558,91 +1607,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Создание файла %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Файл %s уже ÑущеÑтвует, пропуÑкаем."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1652,135 +1701,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "Ð¸Ð¼Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "имена авторов"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "верÑÐ¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "релиз проекта"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "Ñзык проекта"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "иÑпользовать epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1831,47 +1880,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Ðвтор раздела: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Ðвтор модулÑ: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Ðвтор кода:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Ðвтор: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1886,82 +1935,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Параметры"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Результат"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Тип результата"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "поле"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "переменнаÑ"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "функциÑ"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "макроÑ"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "перечиÑлÑемый тип"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "перечиÑлитель"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "тип"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Добавлено в верÑии %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1973,346 +1950,423 @@ msgstr "Изменено в верÑии %s"
msgid "Deprecated since version %s"
msgstr "Ðе рекомендуетÑÑ, Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð²ÐµÑ€Ñии %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:82
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Параметры шаблона"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "БроÑает иÑключение"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "клаÑÑ"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "концепт"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (вÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (метод %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (клаÑÑ)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ конÑтанта)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (атрибут %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Ðргументы"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "БроÑает иÑключение"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Результат"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Тип результата"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (модуль)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "функциÑ"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "метод"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "клаÑÑ"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "данные"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "атрибут"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "модуль"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "повторÑющаÑÑÑ Ð¼ÐµÑ‚ÐºÐ° ÑƒÑ€Ð°Ð²Ð½ÐµÐ½Ð¸Ñ %s, также иÑпользуетÑÑ Ð² %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Переменные"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (директива)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "ИÑключение"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (роль)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "директива"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "роль"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Параметры"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "поле"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "переменнаÑ"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "макроÑ"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "перечиÑлÑемый тип"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "перечиÑлитель"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "тип"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Параметры шаблона"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "концепт"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (в модуле %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (в модуле %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (вÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (вÑтроенный клаÑÑ)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (клаÑÑ Ð² %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (метод клаÑÑа %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (ÑтатичеÑкий метод %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Содержание модулей Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "модули"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Ðе рекомендуетÑÑ"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "иÑключение"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "метод клаÑÑа"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "ÑтатичеÑкий метод"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(иÑпользование не рекомендуетÑÑ)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (директива)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (роль)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "директива"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "роль"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Переменные"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "ИÑключение"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "Ñлемент ÑловарÑ"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "токен грамматики"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "текÑÑ‚ ÑÑылки"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "документ"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "СоÑтав модулÑ"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "ПоиÑк"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2329,35 +2383,35 @@ msgstr "ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð°"
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2381,39 +2435,39 @@ msgstr ""
msgid "Symbols"
msgstr "Символы"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2423,7 +2477,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2435,149 +2489,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2601,24 +2655,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2629,32 +2683,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2664,7 +2718,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2674,27 +2728,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[иллюÑтрациÑ: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[иллюÑтрациÑ]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2702,7 +2756,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2712,173 +2766,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(в %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[иÑходный код]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "План"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<иÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<ИÑÑ…Ð¾Ð´Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ>> находитÑÑ Ð² %s, Ñтрока %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "иÑходный Ñлемент"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[документациÑ]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Код модулÑ"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>ИÑходный код %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Обзор: иÑходный код модулÑ"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Ð’Ñе модули, в которых еÑÑ‚ÑŒ код</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2886,112 +2945,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Базовые клаÑÑÑ‹: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2999,25 +3058,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3091,99 +3150,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Именованные аргументы"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Пример"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Примеры"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Заметки"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Другие параметры"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "ПредупрждениÑ"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Внимание"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "ОÑторожно"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "ОпаÑно"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Ошибка"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "ПодÑказка"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Важно"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Примечание"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "См.также"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Совет"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Предупреждение"
@@ -3215,7 +3274,7 @@ msgid "Table of Contents"
msgstr "Оглавление"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "ПоиÑк"
@@ -3348,34 +3407,22 @@ msgstr "Следующий раздел"
msgid "next chapter"
msgstr "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ð³Ð»Ð°Ð²Ð°"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Ð”Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ поиÑка включите JavaScript в браузере."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "иÑкать"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Результаты поиÑка"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "По вашему поиÑку не найдено ни одного документа. Проверьте, что вÑе Ñлова напиÑаны без ошибок, и что вы выбрали доÑтаточно категорий."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "БыÑтрый поиÑк"
@@ -3412,20 +3459,30 @@ msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² API C"
msgid "Other changes"
msgstr "Другие изменениÑ"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Результаты поиÑка"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "По вашему поиÑку не найдено ни одного документа. Проверьте, что вÑе Ñлова напиÑаны без ошибок, и что вы выбрали доÑтаточно категорий."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Идёт поиÑк"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Подготовка поиÑка…"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", в"
@@ -3446,30 +3503,30 @@ msgstr "Развернуть боковую панель"
msgid "Contents"
msgstr "Содержание"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3481,13 +3538,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3514,90 +3571,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3620,27 +3677,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3657,13 +3714,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "СноÑки"
@@ -3682,20 +3739,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[риÑунок: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[риÑунок]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/si/LC_MESSAGES/sphinx.mo b/sphinx/locale/si/LC_MESSAGES/sphinx.mo
index b47495f..7799122 100644
--- a/sphinx/locale/si/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/si/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/si/LC_MESSAGES/sphinx.po b/sphinx/locale/si/LC_MESSAGES/sphinx.po
index c55f834..ca78452 100644
--- a/sphinx/locale/si/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/si/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: callkalpa <callkalpa@gmail.com>, 2013\n"
"Language-Team: Sinhala (http://app.transifex.com/sphinx-doc/sphinx-1/language/si/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: si\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:331 sphinx/theming.py:377
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "ඊළඟ"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "පෙර"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s ලේඛණය"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "නිකුත් කිරීම"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "කේත ලේඛක:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "ලේඛක:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
+msgstr "%s වෙළුමේ වෙනස් කල"
+
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "පරà·à¶¸à·’තීන්"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "à·ƒà·à¶¸à·à¶¢à·’ක"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
+msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "විචල්â€à¶ºà¶º"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
+msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "ක්â€à¶»à·’යà·à·€"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
+msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "මà·à¶šà·Šâ€à¶»à·"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
+msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "වර්ගය"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
+msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "ක්â€à¶»à·’යà·à·€"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
-msgstr "%s වෙළුමේ අලුත්"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
-msgstr "%s වෙළුමේ වෙනස් කල"
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
+msgstr "දත්ත"
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "පරà·à¶¸à·’තීන්"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "à·ƒà·à¶¸à·à¶¢à·’ක"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "විචල්â€à¶ºà¶º"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "මà·à¶šà·Šâ€à¶»à·"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
-msgstr "දත්ත"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "වර්ගය"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
-#, python-format
-msgid "Invalid math_eqref_format: %r"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "විචල්â€à¶º"
-
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr ""
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "විචල්â€à¶º"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "සෙවුම් පිටුව"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr "සංකේත"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graph: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graph]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(%s à·„à·’%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[source]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "කිරීමට තිබෙන"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "දà·à·‚ය"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "à·„à·à¶Ÿà·€à·“ම"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "සටහන"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "මෙයද බලන්න"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "අනතුරු ඇඟවීම"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "සොයන්න"
@@ -3342,34 +3401,22 @@ msgstr "ඊළඟ මà·à¶­à·˜à¶šà·à·€"
msgid "next chapter"
msgstr "ඊළඟ පරිච්ඡේදය"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "සොයන්න"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "සෙවුම් ප්â€à¶»à¶­à·’ඵල"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "ඉක්මන් සෙවුම"
@@ -3406,20 +3453,30 @@ msgstr "C API වෙනස්කම්"
msgid "Other changes"
msgstr "වෙනත් වෙනස්කම්"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "සෙවුම් ප්â€à¶»à¶­à·’ඵල"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "සොයමින්..."
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "සෙවුම සූදà·à¶±à¶¸à·Š කරමින්...."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr "අන්තර්ගතය"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[image: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[image]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/sk/LC_MESSAGES/sphinx.mo b/sphinx/locale/sk/LC_MESSAGES/sphinx.mo
index 92a9aca..1455bf5 100644
--- a/sphinx/locale/sk/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sk/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sk/LC_MESSAGES/sphinx.po b/sphinx/locale/sk/LC_MESSAGES/sphinx.po
index 7987c9a..033acb8 100644
--- a/sphinx/locale/sk/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sk/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -10,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Slavko <linux@slavino.sk>, 2013-2019,2021\n"
"Language-Team: Slovak (http://app.transifex.com/sphinx-doc/sphinx-1/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: sk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
@@ -40,104 +40,104 @@ msgstr "Zdrojový a cieľový prieÄinok nemôžu byÅ¥ rovnaké"
msgid "Running Sphinx v%s"
msgstr "Spúšťanie Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Tento projekt vyžaduje aspoň Sphinx v%s a preto s touto verziou nemôže byť zostavený."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "vytváranie výstupnej zložky"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "pri nastavovaní rozšírenia %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' definovaný v conf.py nie je funkciou. Prosím, upravte jeho definíciu tak, aby to bola funkcia. Je to potrebné, aby sa conf.py mohol správať ako rozšírenie Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "naÄítanie prekladov [%s]…"
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "hotovo"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "nedostupné pre zabudované správy"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "naÄítanie uloženého prostredia "
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "zlyhalo: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Nebol zvolený builder, bude použitý predvolený: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "úspešné"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "dokonÄené sproblémami"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "zostavenie %s, %s upozornenia/a (upozornenia považované za chyby)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "zostavenie %s, %s upozornenia/a (upozornenia považované za chyby)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "zostavenie %s, %s upozornenie."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "zostavenie %s, %s upozornenie/a."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "zostavenie %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "trieda uzla %r už je registrovaná, jej metódy (visitors) budú prepísané"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "direktíva %r už je registrovaná, bude prepísaná"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "rola %r už je registrovaná, bude prepísaná"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -145,12 +145,12 @@ msgid ""
"explicit"
msgstr "rozšírenie %s nedeklaruje, Äi je bezpeÄné pri paralelnom Äítaní, predpokladá sa, že nie - prosím, požiadajte autora aby to skontroloval a explicitne to nastavil"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "rozšírenie %s nie je bezpeÄné pre paralelné zostavenie"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -158,70 +158,75 @@ msgid ""
"explicit"
msgstr "rozšírenie %s nedeklaruje, Äi je bezpeÄné pri paralelnom Äítaní, predpokladáme, že nie je – prosím, požiadajte autora aby to skontroloval a explicitne to nastavil"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "rozšírenie %s nie je bezpeÄné pre paralelné zostavenie"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "sériové spracovanie %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "konfiguraÄný prieÄinok neobsahuje súbor conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "nemožno prepísať slovník nastavenia %r, ignorované (použite %r na nastavenie jednotlivých prvkov)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "neplatný poÄet %r pre konfiguraÄnú hodnotu %r, ignorované"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "nemožno prepísaÅ¥ konfiguraÄné nastavenie %r s nepodporovaným typom, ignorované"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "neznáma konfiguraÄná hodnota %r v prepísaní, ignorované"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Neznáma konfiguraÄná hodnota: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "KonfiguraÄná hodnota %r už existuje"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Vo svojom konfiguraÄnom súbore máte chybu: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "KonfiguraÄný súbor (alebo jeden z modulov, ktoré importuje) volal sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -229,291 +234,328 @@ msgid ""
"%s"
msgstr "V konfiguraÄnom súbore je programová chyba:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "KonfiguraÄná hodnota „source_suffix†oÄakáva reÅ¥azec, zoznam reÅ¥azcov alebo slovník, ale zadali ste „%râ€."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Sekcia %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Obr. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabuľka %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Výpis %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "KonfiguraÄná hodnota `{name}` má byÅ¥ jedno z {candidates}, ale je zadané `{current}`."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "KonfiguraÄná hodnota `{name}' má typ `{current.__name__}'; oÄakávané {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "KonfiguraÄná hodnota `{name}' má typ `{current.__name__}', predvolene `{default.__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r nenájdená, ignorované."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Od v2.0 Sphinx predvolene používa „index†ako root_doc. Prosím, pridajte „root_doc = 'contents'†do svojho conf.py."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Udalosť %r už existuje"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Neznáme meno udalosti %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "Obsluha %r udalosti %r vyvolala výnimku"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "Rozšírenie %s je vyžadované nastavením needs_extensions, ale nie je naÄítané."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Tento projekt vyžaduje rozšírenie %s s verziou minimálne %s, a teda ho nemožno zostaviÅ¥ s naÄítanou verziou (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Neznáme meno lexera Pygments %r"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "nájdených viacero súborov pre dokument \"%s\": %r\nNa zostavenie použite %r."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Trieda builder %s nemá atribút „nameâ€"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Builder %r už existuje (v module %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Builder s menom %s nie je registrovaný ani dostupný cez vstupný bod"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Builder s menom %s nie je registrovaný"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "doména %s už je zaregistrovaná"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "doména %s ešte nie je zaregistrovaná"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "Direktíva %r už je registrovaná v doméne %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "Rola %r už je registrovaná v doméne %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "Index %r už je registrovaný v doméne %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr " object_type %r už je registrovaný"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "crossref_type %r už je registrovaný"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r už je registrovaný"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser pre %r už je registrovaný"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Analyzátor pre %s nie je registrovaný"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Translator pre %r už existuje"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r už je registrovaný"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "rozšírenie %r bolo zlúÄené so Sphinx od verzie %s; toto rozšírenie je ignorované."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Pôvodná výnimka:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "Nemožno importovať rozšírenie %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "rozšírenie %r nemá funkciu setup(); je to naozaj modul rozšírenia Sphinx?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Rozšírenie %s použité týmto projektom vyžaduje aspoň Sphinx v%s; takže ho nemožno zostaviť s touto verziou."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "rozšírenie %r vrátilo so svojej funkcie setup() nepodporovaný objekt; musí vrátiť None alebo slovník metadát"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "téma %r nemá nastavenie „themeâ€"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "téma %r nemá nastavenie „inheritâ€"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "nebola nájdená téma s menom %r, dedená v %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "nastavenie %s.%s nenájdené v žiadnom z nastavení témy"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "zadaná nepodporovaná voľba témy %r"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "súbor %r v ceste témy nie je platný súbor ZIP alebo neobsahuje tému"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "nebola nájdená téma smenom %r (chýbajúci theme.conf?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -529,8 +571,8 @@ msgstr "vhodný obrázok pre zostavovaÄ %s nenájdený: %s"
msgid "building [mo]: "
msgstr "zostavenie [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "zápis výstupu…"
@@ -579,7 +621,7 @@ msgstr "%d zdrojové súbory zadané v príkazovom riadku"
msgid "targets for %d source files that are out of date"
msgstr "ciele pre %d zdrojových súborov, ktoré sú zastarané"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "zostavovanie [%s]: "
@@ -588,50 +630,50 @@ msgstr "zostavovanie [%s]: "
msgid "looking for now-outdated files... "
msgstr "hľadanie zastaraných súborov…"
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d nájdené"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "nenájdené"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "ukladanie prostredia"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "kontrolovanie konzistencie"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "žiadne ciele nie sú zastarané."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "aktualizácia prostredia:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s pridané, %s zmenené, %s odstránené"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "Äítanie zdrojov…"
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "mená dokumentov na zapísanie: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "príprava dokumentov"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -640,36 +682,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "nájdená duplicitná položka Obsahu: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "kopírovanie obrázkov…"
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "nemožno ÄítaÅ¥ súbor obrázku %r: jeho kopírovanie namiesto toho"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "nemožno kopírovať súbor obrázka %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "nemožno zapísať súbor obrázka %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Pillow nenájdené – kopírovanie súborov obrázkov"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "zapisovanie súboru mimetype…"
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "zapisovanie súboru META-INF/container.xml…"
@@ -677,470 +719,470 @@ msgstr "zapisovanie súboru META-INF/container.xml…"
msgid "writing content.opf file..."
msgstr "zapisovanie súboru content.opf..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "neznámy typ MIME pre %s, ignorovaný"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "zapisovanie súboru toc.ncx..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "zapisovanie súboru %s…"
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Súbor prehľadu je v %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "žiadne zmeny vo verzii %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "zapisovanie súboru prehľadu…"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Zabudované funkcie"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Úroveň modulu"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "kopírovanie zdrojových súborov…"
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "nemožno ÄítaÅ¥ %r na vytvorenie položky záznamu zmien"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "ZostavovaÄ dummy negeneruje žiadne súbory."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "Súbory ePub sú v %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "zapisovanie súboru nav.xhtml..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_language†(alebo „languageâ€) nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "konfiguraÄná hodnota „epub_uid†má byÅ¥ XML NAME pre EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_title†(alebo „html_titleâ€) nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_author†nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_contributor†nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_description†nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_publisher†nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_copyright†(alebo „copyrightâ€) nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „epub_identifier†nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "konfiguraÄná hodnota „version†nesmie byÅ¥ prázdna pri EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "neplatný css_file: %r, ignorovaný"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Katalógy správ sú v %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "Äítanie Å¡ablón… "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "zapisovanie katalógov správ…"
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Hľadajte akékoľvek chyby v predošlom výstupe alebo v %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "poškodený odkaz: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Manuálové stránky sú v %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "nebola nájdená konfiguraÄná voľba „man_pagesâ€; manuálové stránky nebudú zapísané"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "zapisovanie"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "konfiguraÄná voľba „man_pages†odkazuje na neznámy dokument %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Stránky HTML sú v %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "zostavovanie spoloÄného dokumentu"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "zapisovanie dodatoÄných súborov"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Súbory Texinfo sú v %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nSpustite v tomto adresári 'make' na ich spustenie pomocou makeinfo\n(použite tu 'make info' aby to bolo spustené automaticky)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "nebola nájdená konfiguraÄná voľba „texinfo_documentsâ€; dokumenty nebudú zapísané"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "konfiguraÄná voľba „texinfo_documents†odkazuje na neznámy dokument %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "spracovanie %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "riešenie odkazov…"
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(v"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "kopírovanie podporných súborov Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "chyba zápisu súboru Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Textové súbory sú v %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "chyba zápisu súboru %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Súbory XML sú v %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Súbory pseudo-XML sú v %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "súbor info zostavenia je poškodený: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Stránky HTML sú v %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "Čítanie súboru zostavenia info zlyhalo: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d. %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Všeobecný index"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "Äalší"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "predošlý"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "generovanie indexov"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "zapisovanie dodatoÄných stránok"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "kopírovanie súborov na stiahnutie…"
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "nemožno kopírovať súbor na stiahnutie %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "Kopírovanie súboru v html_static_file zlyhalo: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "kopírovanie statických súborov"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "nemožno kopírovať statický súbor %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "kopírovanie extra súborov"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "nemožno kopírovať extra súbor %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "Zápis súboru zostavenia info zlyhal: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "index hľadania nemožno naÄítaÅ¥, ale nebudú zostavované vÅ¡etky dokumenty, takže index nebude kompletný."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "stránka %s vyhovuje dvom vzorom v html_sidebars: %r a %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "pri spracovaní stránky %s nastala chyba Unicode. Prosím, zaistite, že vÅ¡etky konfiguraÄné hodnoty, ktoré obsahujú nieASCII hodnotu sú reÅ¥azce Unicode."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Nastala chyba pri spracovaní stránky %s.\nPríÄina: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "generovanie inventára objektov…"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "generovanie indexu hľadania v %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "neplatné js_file: %r, ignorované"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Zaregistrovaných je viac math_renderer, ale žiadny nie je zvolený."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "Zdaný neznámy math_renderer %r."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "položka „html_extra_path entry†%r neexistuje"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "položka html_extra_path %r je umiestnené vo vnútri výstupného adresára"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "položka „html_static_path†%r neexistuje"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "položka html_static_path %r je umiestnené vo vnútri výstupného adresára"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "súbor loga %r neexistuje"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "súbor favicon %r neexistuje"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Dokumentácia %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Súbory LaTeX sú v %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nSpustite v tomto adresári 'make' na ich spustenie pomocou (pdf)latex\n(použite tu 'make latexpdf' aby to bolo spustené automaticky)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "nebola nájdená konfiguraÄná voľba „latex_documentsâ€; dokmenty nebudú zapísané"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "konfiguraÄná voľba „latex_documents†odkazuje na neznámy dokument %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Vydanie"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "žiadna známa voľba Babel pre jazyk %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "kopírovanie podporných súborov Tex"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "kopírovanie podporných súborov Tex…"
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "kopírovanie dodatoÄných súborov"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Neznámy konfiguraÄný kľúÄ: latex_elements[%r], ignorovaný."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Neznáma voľba témy: latex_theme_options[%r], ignorovaná."
@@ -1155,15 +1197,15 @@ msgstr "%r nemá nastavenia „themeâ€"
msgid "%r doesn't have \"%s\" setting"
msgstr "téma %r nemá nastavenie „1%sâ€"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1222,8 +1264,8 @@ msgstr "Hlásenie o chybe možno vyplniť na <https://github.com/sphinx-doc/sphi
msgid "job number should be a positive number"
msgstr "poÄet úloh musí byÅ¥ kladné Äíslo"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1255,257 +1297,264 @@ msgid "path to output directory"
msgstr "cesta k výstupnej zložke"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "zoznam špecifických súborov na zostavenie, ignorovaný ak je použité -a"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "všeobecné voľby"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "použitý zostavovaÄ (predvolený: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "zapísať všetky súbory (predvolene: zapísať len nové a zmenené súbory)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "nepoužívaÅ¥ uložené prostredie, vždy ÄítaÅ¥ vÅ¡etky súbory"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "cesta uloženého prostredia a súbory doctree (predvolene: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "zostaviÅ¥ paralelne s N procesmi možné (Å¡peciálna hodnota „auto†nastaví N na poÄet CPU)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "cesta k adresáru s konfiguraÄným súborom (conf.py) (predvolene: rovnaké ako SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "vôbec nepoužiÅ¥ konfiguraÄný súbor, len voľby -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "prepíše nastavenie konfiguraÄného súboru"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "pošle hodnotu do šablón HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "hnidopichný režim, upozorniť na všetky chýbajúce prepojenia"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "voľby výstupu konzoly"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "zvýšiÅ¥ rozvláÄnosÅ¥ (možno opakovaÅ¥)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "žiadny výstup, len upozornenia na stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "vôbec žiadny výstup, ani upozornenia"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "generovať farebný výstup (predvolene: automaticky detegovať)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "negenerovať farebný výstup (predvolene: automaticky detegovať)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "zapísať varovania (a chyby) do zadaného súboru"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "prepnúť upozornenia na chyby"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "s -W, pokraÄovaÅ¥ po upozornení"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "pri výnimke zobraziť úplné chybové hlásenie"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "pri výnimke spustiť Pdb"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "nemožno kombinovať voľbu -a a mená súborov"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "nemožno otvoriť súbor varovaní %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "argument voľby -D musí byť v tvare meno=hodnota"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "argument voľby -A musí byť v tvare meno=hodnota"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "automaticky vložiÅ¥ dokumentaÄné reÅ¥azce z modulov"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "automaticky testovaÅ¥ kúsky kódu v blokoch dokumentaÄných reÅ¥azcov"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "prepojenie medzi dokumentáciou Sphinx rôznych modulov"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "písaÅ¥ položky „todoâ€, ktoré môžu byÅ¥ zobrazené alebo skryté pri zostavení"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "zahrnúť math, spracované ako obrázky PNG alebo SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "zahrnúť math, spracované prehliadaÄom pomocou MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "podmieneÄné zahrnutie obsahu na základe konfiguraÄných volieb"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "zahrnúť odkazy na zdrojový kód dokumentovaných objektov Python"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "vytvoriť súbor .nojekyll na publikovanie dokumentu na GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Prosím, zadajte platnú cestu."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Prosím, zadajte nejaký text."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Prosím, zadajte jedno z 1%s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Prosím, zadajte buÄ 'y' alebo 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Prosím, zadajte príponu súboru, napr. '.rst' alebo '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Vitajte v nástroji Sphinx %s quickstart."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Zvolená cesta koreňa: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Zadajte cestu koreňa tejto dokumentácie."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Cesta koreňa dokumentácie"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Chyba: nájdený existujúci conf.py v zadanej ceste koreňa."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart neprepíše existujúce projekty Sphinx."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Prosím, zadajte novú cestu koreňa (alebo len Enter na skonÄenie)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Sú dve možnosti umiestnenia adresára zostavenia s výstupom Sphinx.\nMôžete použiÅ¥ buÄ adresár „_build†v koreni alebo môžete maÅ¥ oddelené\nadresáre „source†a „build†v ceste koreňa."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Oddeliť zdrojový a výstupný adresár (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "V koreňovom adresári budú vytvorená dva ÄalÅ¡ie adresáre; \"_templates\"\npre vlastné Å¡ablóny HTML a \"_static\" pre vlastné CSS a iné statické súbory\nMôžete zadaÅ¥ inú predponu (napr. „.â€), ktorá nahradí podÄiarkovník."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Predpona mena adresárov templates a static"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "Meno projektu bude na viacerých miestach zostavenej dokumentácie."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Názov projektu"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Meno(á) autora(ov)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1514,15 +1563,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx má predstavu o \"version\" a \"release\" softvéru. Každá\nverzia môže maÅ¥ viacero vydaní. Napríklad, pre Python je verzia\nnieÄo ako 2.5 alebo 3.0, zatiaľÄo vydanie je nieÄo ako 2.5.1\nalebo 3.0a1. Ak nepotrebuje dvojitú Å¡truktúru, jednoducho nastavte\noboje na rovnakú hodnotu."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Verzia projektu"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Vydanie projektu"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1532,21 +1581,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Ak má byť dokumentácia písaná v inom ako Anglickom jazyku,\nmôžete tu zvoliť jazyk pomocou jeho kódu. Sphinx bude potom\nprekladať text, ktorý generuje, do tohoto jazyka.\n\nZoznam podporovaných jazykov nájdete na\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Jazyk projektu"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "Prípona mena zdrojových súborov. ZvyÄajne to je buÄ â€ž.txtâ€\nalebo „.rstâ€. Len súbory s touto príponou sú považované za dokumenty."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Prípona zdrojových súborov"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1554,91 +1603,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Jeden dokument je Å¡peciálny v tom, že je považovaný za vrcholový uzol\n„stromu obsahuâ€, Äiže je to koreň hierarchickej Å¡truktúry dokumentov.\nBežne to je „indexâ€, ale ak je Váš „index†vlastnou Å¡ablónou, môžete\npoužiÅ¥ aj iné meno súboru."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Meno hlavného dokumentu (bez prípony)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Chyba: nájdený existujúci hlavný súbor %s v zadanej ceste koreňa."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart neprepíše existujúci súbor."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Prosím, zadajte nové meno súboru alebo premenujte existujúci súbor a stlaÄte Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Informuje, ktoré z nasledujúcich rozšírení Sphinx majú byť zapnuté:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Pozor: imgmath a mathjax nemožno zapnúť naraz. výber imgmath bol zrušený."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Súbory Makefile a príkazový súbor Windows môže byÅ¥ pre Vás vygenerovaný\ntakže staÄí spustiÅ¥ napr. len `make html' namiesto priameho spúšťania sphinx-build."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Vytvoriť Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Vytvoriť príkazový súbor Windows? (y/n) "
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Vytváranie súboru %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Súbor %s už existuje, preskoÄené."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "DokonÄené: PoÄiatoÄná Å¡truktúra adresára bola vytvorená."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Teraz môže vyplniť svoj hlavný súbor %s a vytvoriť ostatné zdrojové súbory\ndokumentácie. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Na zostavenie dokumentácie použite Makefile, napr.:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Na zostavenie dokumentácie použite príkaz sphinx-build, napr.:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "kde „builder†je jeden z podporovaných formátov, napr. html, latex alebo linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1648,135 +1697,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nGenereuje požadované súbory projektu Sphinx.\n\nsphinx-quickstart je interaktívny nástroj, ktorý kladie niekoľko otázok o Vašom\nprojekte a potom generuje kompletný adresár dokumentácie a vzorový\nMakefile, na použitie so sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "tichý režim"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "koreň projektu"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Voľby štruktúry"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "ak je zadané, oddeliť zdrojový a výstupný adresár"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "ak je zadané, vytvoriť výstupný adresár v zdrojovom"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "náhrada za bodku v _templates apod."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Základné voľby projektu"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "názov projektu"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "mená autorov"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "verzia projektu"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "vydanie projektu"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "jazyk dokumentácie"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "prípona zdrojových súborov"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "meno hlavného dokumentu"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "použiť epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Voľby rozšírenia"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "zapnúť rozšírenie %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "zapnúť konkrétne rozšírenia"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Vytvorenie Makefile a Batchfile"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "vytvoriť makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "nevytvoriť makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "vytvoriť batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "nevytvoriť batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "použiť režim make pre Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "nepoužiť režim make pre Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Šablóny projektu"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "adresár šablóny pre súbory šablóny"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "definovať premennú šablóny"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "bolo zadané „quietâ€, ale nebol zadaný „project†alebo „authorâ€."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Chyba: zadaná cesta nie je adresár alebo súbory sphinx už existujú."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart generuje len do prázdneho adresára. Prosím, zadajte novú cestu koreňa."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Neplatná premenná šablóny: %s"
@@ -1827,47 +1876,47 @@ msgstr "Nemožno použiÅ¥ „lineno-match†s rozdelenou množinou „linesâ€"
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Riadok %r: žiadne riadky z vloženého súboru %r"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "strom obsahu obsahuje odkaz na vylúÄený dokument %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "strom obsahu obsahuje odkaz na neexistujúci dokument %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor sekcie:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor modulu:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor kódu:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1882,82 +1931,10 @@ msgstr "voľba \":file:\" direktívy csv-table teraz rozpoznáva absolútnu cest
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Duplicitná deklarácia C, definovaná aj v %s:%s.\nDeklarácia je '.. c:%s:: %s'."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametre"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Vracia"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Návratový typ"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "Älen"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "premenná"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcia"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerátor"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "typ"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "parameter funkcie"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nové vo verzii %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1969,346 +1946,423 @@ msgstr "Zmenené vo verzii %s"
msgid "Deprecated since version %s"
msgstr "Zastarané od verzie %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "duplicitná citácia %s, Äalší výskyt v %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Citácia [%s] nie je odkazovaná."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Duplicitná deklarácia C++, definovaná aj v %s:%s.\nDeklarácia je '.. cpp:%s:: %s'."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parametre šablóny"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Vyvoláva"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "trieda"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "koncept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "parameter šablóny"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (zabudovaná funkcia)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (metóda %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (trieda)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (globálna premenná alebo konštanta)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atribút %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumenty"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Vyvoláva"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Vracia"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Návratový typ"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcia"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metóda"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "trieda"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dáta"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribút"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "duplicitný %s popis %s, Äalší výskyt%s v %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "duplicitná menovka vzorca %s, Äalší výskyt v %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "neplatný math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Premenné"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktíva)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Vyzdvihuje"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr "%s (voľba direktívy)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rola)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktíva"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rola"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "duplicitný popis %s %s, Äalší výskyt v %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Duplicitná deklarácia C, definovaná aj v %s:%s.\nDeklarácia je '.. c:%s:: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametre"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "Älen"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "premenná"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerátor"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "typ"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "parameter funkcie"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parametre šablóny"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Duplicitná deklarácia C++, definovaná aj v %s:%s.\nDeklarácia je '.. cpp:%s:: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "koncept"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "parameter šablóny"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (v module %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (v module %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (zabudovaná premenná)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (zabudovaná trieda)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (trieda v %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (metóda triedy %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (statická metóda %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (vlastnosť %s)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Index modulov Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduly"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Zastarané"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "výnimka"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "metóda triedy"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statická metóda"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "vlastnosť"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "nájdený viac ako jeden cieľ krížového odkazu %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (zastarané)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktíva)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr "%s (voľba direktívy)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rola)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktíva"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rola"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Premenné"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "duplicitný popis %s %s, Äalší výskyt v %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Vyzdvihuje"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "premenná prostredia; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Nesprávny popis voľby %r, má vyzeraÅ¥ ako „optâ€, „-opt argumentyâ€, „--opt argumentyâ€, „/opt argumenty†alebo „+opt argumentyâ€"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s voľba príkazového riadka"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "voľba príkazového riadka"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "položke glosára musí predchádzať prázdny riadok"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "položky glosára nesmú byť oddelené prázdnymi riadkami"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "glosár vyzerá byť zle naformátovaný, skontrolujte odsadenie"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "termín glosára"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "jazykový token"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "menovka odkazu"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "premenná prostredia"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "voľba programu"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokument"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Index modulov"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Stránka hľadania"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "duplicitná menovka %s, Äalší výskyt v %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "duplicitný %s popis %s, Äalší výskyt v %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig je vypnutý, :numref: je ignorované."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "Zlyhalo vytvorenie krížového odkazu. Nie je priradené žiadne Äíslo: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "odkaz nemá popisok: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "neplatný numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "neplatný numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2325,35 +2379,35 @@ msgstr "zmenená konfigurácia"
msgid "extensions changed"
msgstr "zmenené rozšírenie"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "prostredie zostavenia nie je aktuálne"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "zdrojový adresár zmenený"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Toto prostredie nie je kompatibilné zo zvoleným zostavovaÄom, prosím, zvoľte iný adresár doctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "Zlyhalo skenovanie dokumentov v %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Doména %r nie je zaregistrovaná"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "dokument nie je zahrnutý v žiadnom strome obsahu"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "nájdený na seba odkazujúci strom obsahu. Ignorované."
@@ -2377,39 +2431,39 @@ msgstr "neznámy typ položky indexu %r"
msgid "Symbols"
msgstr "Symboly"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "zistený cirkulárny odkaz stromu obsahu, ignorované: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "strom obsahu obsahuje odkaz na dokument %r, ktorý nemá názov, odkaz nebude generovaný"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "súbor obrázku nemožno ÄítaÅ¥: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr " Súbor obrázku %s nemožno ÄítaÅ¥: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "súbor na stiahnutie nemožno ÄítaÅ¥: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s už je priradené Äíslo sekcie (vnorený Äíslovaný strom obsahu?)"
@@ -2419,7 +2473,7 @@ msgstr "%s už je priradené Äíslo sekcie (vnorený Äíslovaný strom obsahu?
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2431,149 +2485,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "cesta k dokumentovanému modulu"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "adresár umiestnenia výstupu"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "maximálna hĺbka submodulov, ktorá má byť zobrazená v obsahu (predvolene: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "prepísať existujúce súbory"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "nasledovať symbolické odkazy. Vhodné v kombinácii s collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "spustí skript bez vytvorenia súborov"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "umiestniť dokumentáciu každého modulu vo vlastnej stránke"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "zahrnúť â€_súkromné†moduly"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "meno súboru obsahu (predvolene: modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "nevytvárať súbor obsahu"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "vložiť dokumentáciu modulu pred dokumentáciou submodulu"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interpretovať cesty modulov v zmysle implicitnej špecifikácie menných priestorov PEP-0420"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "prípona súboru (predvolene: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "generovať úplný projekt pomocou sphinx-quickstart"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "pripojiť module_path do sys.path, použité pri --full"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "meno projektu (predvolene: meno koreňového modulu)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "autor(i) projektu, použité pri --full"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "verzia projektu, použité pri --full"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "vydanie projektu, použité pri --full, predvolene --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "voľby rozšírenia"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s nie je adresár."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "neplatný regulárny výraz %r v %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "neplatný regulárny výraz %r v coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "nedokumentované API C: %s [%s] v súbore %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "modul %s nemožno importovať: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "nedokumentovaná funkcia Python: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "nedokumentovaná trieda Python: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "nedokumentovaná metóda Python: %s :: %s :: %s"
@@ -2597,24 +2651,24 @@ msgstr "„%s†nie je platná voľba pyversion"
msgid "invalid TestCode type"
msgstr "neplatný typ TestCode"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2625,32 +2679,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Direktíva graphviz nemôže mať naraz argumenty content a filename"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "Externý súbor Graphviz %r nebol nájdený alebo zlyhalo jeho Äítanie"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Ignorovaná direktíva „graphviz†bez obsahu."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "príkaz dot %r nemožno spustiť (nutný kvôli výstupu graphviz), skontrolujte nastavenie graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2660,7 +2714,7 @@ msgid ""
"%r"
msgstr "dot skonÄil chybou:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2670,27 +2724,27 @@ msgid ""
"%r"
msgstr "dot nevytvoril výstupný súbor:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format musí byÅ¥ „png†alebo „svgâ€, ale je %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "kód dot %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[graf: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[graf]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2698,7 +2752,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2708,173 +2762,178 @@ msgid ""
"%r"
msgstr "convert skonÄil chybou:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "príkaz convert %r nemožno spustiť, skontrolujte nastavenie image_converter"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "Nemožno spustiť príkaz LaTeX %r (potrebný na zobrazenie math), skontrolujte nastavenia imgmath_latex"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "zobrazený latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "vnorený latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "inventár intersphinx bol presunutý: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "naÄítanie inventára intersphinx z %s..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "nastali problémy s niektorými inventármi, ale boli nájdené funkÄné alternatívy:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "nemožno získať žiadne inventáre kvôli týmto problémom:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(v %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(v %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "identifikátor intersphinx %rnie je raťzec, ignorované"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "Zlyhalo Äítanie intersphinx_mapping[%s], ignorované: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[zdroj]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "ToDo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "Nájdená položka TODO: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<pôvodná položka>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> je umiestnená v %s, riadok %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "pôvodná položka"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "zvýrazňovanie syntaxe kódu modulu... "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumenty]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Kód modulu"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Zdrojový kód %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Prehľad: kód modulu"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Všetky moduly, pre ktoré je dostupný kód</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "chyba formátovania argumentov %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2882,112 +2941,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "„::†v automodule nedáva zmysel"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ má byť zoznam reťazcov, nie %r (v module %s) -- ignorované __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "chýbajúci atribút spomenutý vo voľbe :members: : modul %s, atribút %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Základ: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "chýba atribút %s objektu %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "alias pre %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "alias pre TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "Neplatné __slots__ nájdené v %s. Ignorované."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "Zlyhalo spracovanie predvolenej hodnoty argumentu %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "Autosummary s popiskom vyžaduje voľbu :toctree: , ignorované."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2995,26 +3054,26 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "zlyhalo spracovanie mena %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "zlyhal import objektu %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: súbor nenájdený: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary interne generuje súbory .rst. Ale Váš source_suffix neobsahuje .rst. PreskoÄené."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3087,99 +3146,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumenty kľúÄových slov"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Príklad"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Príklady"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Poznámky"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Ostatné parametre"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Varovania"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "neplatná hodnota množiny (chýba koncová zátvorka): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "neplatná hodnota množiny (chýba zaÄiatoÄná zátvorka): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "neplatná textová konštanta (chýba koncová úvodzovka): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "neplatná textová konÅ¡tanta (chýba zaÄiatoÄná úvodzovka): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Výstraha"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Upozornenie"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "NebezpeÄné"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Chyba"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Rada"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Dôležité"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Poznámka"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "ViÄ aj"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tip"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Varovanie"
@@ -3211,7 +3270,7 @@ msgid "Table of Contents"
msgstr "Obsah"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Hľadať"
@@ -3344,34 +3403,22 @@ msgstr "Ďalšia téma"
msgid "next chapter"
msgstr "ÄalÅ¡ia kapitola"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Prosím, na zapnutie funkcie hľadania,aktivujte\nJavaScript ."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Hľadanie viacerých slov vracia len zhody, ktoré obsahujú\n všetky slová."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "hľadať"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Výsledky hľadania"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Vášmu hľadaniu nezodpovedá žiadny dokument. Prosím, skontrolujte, že všetky zadané slová sú správne napísané a že ste zvolili vhodné kategórie."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Rýchle hľadanie"
@@ -3408,20 +3455,30 @@ msgstr "Zmeny API C"
msgid "Other changes"
msgstr "Ostatné zmeny"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Výsledky hľadania"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Vášmu hľadaniu nezodpovedá žiadny dokument. Prosím, skontrolujte, že všetky zadané slová sú správne napísané a že ste zvolili vhodné kategórie."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Hľadanie"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Príprava hľadania..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", v "
@@ -3442,30 +3499,30 @@ msgstr "RozbaliÅ¥ boÄný panel"
msgid "Contents"
msgstr "Obsah"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Poznámka pod Äiarou [%s] nie je odkazovaná."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Poznámka pod Äiarou [#] nie je odkazovaná."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3477,13 +3534,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3510,90 +3567,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr "%r cieľ odkazu nenájdený: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "Nemožno získať vzdialený obrázok: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "Nemožno získať vzdialený obrázok: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Neznámy formát obrázku: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "nedekódovateľné zdrojové znaky, nahradené „?â€: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "preskoÄené"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "zlyhalo"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "neznáma direktíva alebo meno role: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "neznámy typ uzla: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "chyba Äítania: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "chyba zápisu: %s: %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Neplatný formát dátumu. Použije jednoduché úvodzovky, ak ho chcete priamo vo výstupe: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "strom obsahu obsahuje neexistujúci súbor %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "predvolená rola %s nenájdená"
@@ -3616,27 +3673,27 @@ msgstr "Žiadne ID nie je priradené uzlu %s"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "Nemožno získať veľkosť obrázku. voľba :scale: je ignorovaná."
@@ -3653,13 +3710,13 @@ msgstr "príliš veľké :maxdepth:, ignorované."
msgid "document title is not a single Text node"
msgstr "názov dokumentu nie je jeden uzol Text"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Poznámky pod Äiarou"
@@ -3678,20 +3735,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[obrázok: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[obrázok]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "titulok nie je vo vnútri figure."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "neimplementovaný typ uzla: %r"
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.mo b/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
index 99459e2..698e340 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sl/LC_MESSAGES/sphinx.po b/sphinx/locale/sl/LC_MESSAGES/sphinx.po
index f4f51da..183c484 100644
--- a/sphinx/locale/sl/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sl/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian (http://app.transifex.com/sphinx-doc/sphinx-1/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Vgrajeni deli"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Nivo modula"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (v "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Splošni abecedni seznam"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "abecedni seznam"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "naprej"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "nazaj"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Abecedni seznam"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Izdaja"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Avtor sekcije: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Avtor modula: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Avtor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
+#, python-format
+msgid "Changed in version %s"
+msgstr "Spremenjeno v verziji %s"
+
+#: sphinx/domains/changeset.py:25
#, python-format
-msgid "%s (C %s)"
+msgid "Deprecated since version %s"
+msgstr "Zastarelo od verzije %s"
+
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametri"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
+msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Vrne"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
+msgstr "%s() (vgrajene funkcije)"
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Vrne tip"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
+msgstr "%s() (%s metoda)"
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "Älan"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
+msgstr "%s() (razred)"
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funkcija"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
+msgstr "%s (%s atribut)"
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Vrne"
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Vrne tip"
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
+msgstr "%s (modul)"
+
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funkcija"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "tip"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "razred"
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
-msgstr "Novo v verziji %s"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr "atribut"
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
-msgstr "Spremenjeno v verziji %s"
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr "modul"
-#: sphinx/domains/changeset.py:25
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "Deprecated since version %s"
-msgstr "Zastarelo od verzije %s"
+msgid "duplicate %s description of %s, other %s in %s"
+msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/math.py:63
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:213
#, python-format
-msgid "%s (C++ %s)"
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "razred"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
-msgstr "%s() (vgrajene funkcije)"
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
-msgstr "%s() (%s metoda)"
+msgid "%s (C %s)"
+msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
-msgstr "%s() (razred)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametri"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
-msgstr "%s (%s atribut)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "Älan"
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
-msgstr "%s (modul)"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
-msgstr "atribut"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
-msgstr "modul"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "tip"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Sproži izjemo"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (v modulu %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (v modulu %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (vgrajene spremenljivke)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (vgrajen razred)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (razred v %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statiÄna metoda)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "Moduli"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Zastarelo"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "izjema"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statiÄna metoda"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (zastarelo)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Sproži izjemo"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "okoljska spremenljivka; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "okoljska spremenljivka"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Seznam modulov"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Iskalnik"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Pozor"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Previdno"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Nevarno"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Napaka"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Nasvet"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Pomembno"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Opomba"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Poglej Tudi"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Nasvet"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Opozorilo"
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "IÅ¡Äi"
@@ -3341,34 +3400,22 @@ msgstr "Naslednja tema"
msgid "next chapter"
msgstr "naslednje poglavje"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Za pravilno delovanje Iskanja morete vklopiti\n JavaScript."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "iÅ¡Äi"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Rezultati Iskanja"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Hitro iskanje"
@@ -3405,20 +3452,30 @@ msgstr "C API spremembe"
msgid "Other changes"
msgstr "Ostale spremembe"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Rezultati Iskanja"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Opombe"
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[slika]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/sphinx.pot b/sphinx/locale/sphinx.pot
index 1e02038..e915d48 100644
--- a/sphinx/locale/sphinx.pot
+++ b/sphinx/locale/sphinx.pot
@@ -1,21 +1,21 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Sphinx 7.2.2\n"
+"Project-Id-Version: Sphinx 7.3.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-16 21:54+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
#: sphinx/application.py:157
#, python-format
@@ -36,104 +36,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with"
" this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -141,12 +141,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -154,71 +154,76 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called "
"sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but "
"`{current}` is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it"
" should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes"
+" are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -575,7 +617,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -584,50 +626,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -636,36 +678,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -673,476 +715,476 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid ""
"conf value \"epub_language\" (or \"language\") should not be empty for "
"EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid ""
"conf value \"epub_title\" (or \"html_title\") should not be empty for "
"EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid ""
"conf value \"epub_copyright\" (or \"copyright\")should not be empty for "
"EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the"
" index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all"
" config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected "
"in configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1157,15 +1199,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1224,8 +1266,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1261,7 +1303,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is"
+" specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1269,214 +1313,220 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number "
+"of CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\""
-" will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: "
+"OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you "
@@ -1484,11 +1534,11 @@ msgid ""
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; "
"\"_templates\"\n"
@@ -1498,23 +1548,23 @@ msgid ""
"underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid "The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1523,15 +1573,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1542,21 +1592,21 @@ msgid ""
"language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1564,36 +1614,36 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root "
"path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid "Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has"
" been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that "
"you\n"
@@ -1601,29 +1651,29 @@ msgid ""
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other "
@@ -1631,26 +1681,26 @@ msgid ""
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1661,136 +1711,136 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid ""
"\"quiet\" is specified, but any of \"project\" or \"author\" is not "
"specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid "Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a "
"new root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1841,47 +1891,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1896,433 +1946,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: "
"for one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\","
" \"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2339,35 +2394,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose"
" another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2391,39 +2446,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no "
"link will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2433,7 +2488,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and "
@@ -2448,148 +2503,148 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid "fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2613,24 +2668,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid "====================== slowest reading durations ======================="
msgstr ""
@@ -2639,32 +2694,32 @@ msgstr ""
msgid "hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2674,7 +2729,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2684,27 +2739,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' "
@@ -2714,7 +2769,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2724,166 +2779,171 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the "
"imgmath_%s setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had "
"working alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following "
@@ -2891,7 +2951,7 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2899,111 +2959,111 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid "missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -3011,24 +3071,24 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does "
+"autosummary generates .rst files internally. But your source_suffix does "
"not contain .rst. Skipped."
msgstr ""
@@ -3106,99 +3166,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3230,7 +3290,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3363,34 +3423,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words "
-"are spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3427,19 +3475,29 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words "
+"are spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid "Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3460,29 +3518,29 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid "4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3494,13 +3552,13 @@ msgid ""
" {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3527,91 +3585,91 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role "
"is not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to "
"output it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' "
"instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3634,27 +3692,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3671,12 +3729,12 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid "encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3694,20 +3752,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/sq/LC_MESSAGES/sphinx.js b/sphinx/locale/sq/LC_MESSAGES/sphinx.js
index 4fb03bc..063220b 100644
--- a/sphinx/locale/sq/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/sq/LC_MESSAGES/sphinx.js
@@ -2,7 +2,7 @@ Documentation.addTranslations({
"locale": "sq",
"messages": {
"%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s",
- "&#169; %(copyright_prefix)s %(copyright)s.": "",
+ "&#169; %(copyright_prefix)s %(copyright)s.": "&#169; %(copyright_prefix)s %(copyright)s.",
", in ": ", n\u00eb ",
"About these documents": "Mbi k\u00ebto dokumente",
"Automatically generated list of changes in version %(version)s": "List\u00eb ndryshime n\u00eb versionin %(version)s e prodhuar automatikisht",
diff --git a/sphinx/locale/sq/LC_MESSAGES/sphinx.mo b/sphinx/locale/sq/LC_MESSAGES/sphinx.mo
index d211329..1cf9abf 100644
--- a/sphinx/locale/sq/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sq/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sq/LC_MESSAGES/sphinx.po b/sphinx/locale/sq/LC_MESSAGES/sphinx.po
index 318011a..5fdf73f 100644
--- a/sphinx/locale/sq/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sq/LC_MESSAGES/sphinx.po
@@ -1,21 +1,21 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
-# Besnik Bleta <besnik@programeshqip.org>, 2021-2023
+# Besnik Bleta <besnik@programeshqip.org>, 2021-2024
msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
-"Last-Translator: Besnik Bleta <besnik@programeshqip.org>, 2021-2023\n"
+"Last-Translator: Besnik Bleta <besnik@programeshqip.org>, 2021-2024\n"
"Language-Team: Albanian (http://app.transifex.com/sphinx-doc/sphinx-1/language/sq/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: sq\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -38,104 +38,104 @@ msgstr "Drejtoria burim dhe drejtoria vendmbërritje s’mund të jenë identike
msgid "Running Sphinx v%s"
msgstr "Po xhirohet Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Ky projekt lyp të paktën Sphinx v%s, ndaj s’mund të montohet me këtë version."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "po krijohet drejtori përfundimesh"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "teksa ujdiset zgjerimi %s:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "'setup' siç është përcaktuar aktualisht te conf.py s’është funksion Python që mund të thirret. Ju lutemi, ndryshojeni përcaktimin e tij që ta bëni një funksion që mund të thirret. Kjo është e nevojshme që conf.py të sillet si një zgjerim Sphinx."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "po ngarkohen përkthime [%s]… "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "u bë"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "s’është i passhëm për mesazhe të brendshëm"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "dështoi: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "S’u përzgjodh montues, po përdoret parazgjedhja: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "doli me sukses"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "u përfundua me probleme"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "montimi %s, % sinjalizim (me sinjalizime të trajtuara si gabime)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "montimi %s, %s sinjalizime (me sinjalizime të trajtuara si gabime)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "build %s, %s warning."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "montimi %s, %s sinjalizime."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "montimi %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "klasa %r e nyjeve është e regjistruar tashmë, vizitorët e saj do të anashkalohen"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "direktiva %r është e regjistruar tashmë, do të anashkalohet"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "roli %r është e regjistruar tashmë, do të anashkalohet"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr "zgjerimi %s nuk deklaron nëse është i parrezik për lexim paralel, po merret se s’është - ju lutemi, kërkojini autorin të zgjerimit ta kontrollojë dhe ta bëjë këtë shprehimisht"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "zgjerimi %s s’është i sigurt për lexim paralel"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr "zgjerimi %s nuk deklaron nëse është i parrezik për shkrim paralel, po merret se s’është - ju lutemi, kërkojini autorin të zgjerimit ta kontrollojë dhe ta bëjë këtë shprehimisht"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "zgjerimi %s s’është i sigurt për shkrim paralel"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "drejtoria e formësimeve nuk përmban një kartelë conf.py (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "U gjet vlerë e pavlefshme formësimi: 'language = Asnjë'. Përditësojeni formësimin tuaj me një kod të vlefshëm gjuhe. Përkohësisht po përdoret 'en' (anglisht)."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "s’mund të anashkalohet rregullim formësimi fjalorthi %r, po shpërfillet (për të ujdisur elemente individuale, përdorni %r)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "numër %r i pavlefshëm për vlerë formësimi %r, po shpërfillet"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "s’mund të anashkalohet rregullim formësimi %r me një lloj të pambuluar, po shpërfillet"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "vlerë e panjohur formësimi %r te anashkalimi, po shpërfillet"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "S’ka vlerë të tillë formësimi: %s"
+msgid "No such config value: %r"
+msgstr "S’ka vlerë të tillë formësimi: %r"
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Vlerë formësimi %r e pranishme tashmë"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Ka një gabim sintakse te kartela juaj e formësimit: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Kartela e formësimit (ose një nga modulet që ajo importon) thirri sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,291 +232,328 @@ msgid ""
"%s"
msgstr "Ka një gabim të programueshëm te kartela juaj e formësimit:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "Vlera e formësimit `source_suffix' pret një varg, një listë vargjesh, ose një fjalor. Por është dhënë `%r'."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Ndarja %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Figura %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tabela %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "Vlera e formësimit `{name}` duhet të jetë një nga {candidates}, por është dhënë `{current}`."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "Vlera e formësimit `{name}' është e llojit `{current.__name__}'; pritej {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "Vlera e formësimit `{name}' është e llojit `{current.__name__}', si parazgjedhje merr `{default.__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "s’u gjet primary_domain %r, po shpërfillet."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "Që prej v2.0, Sphinx përdor \"index\" për root_doc, si parazgjedhje. Ju lutemi, shtoni \"root_doc = 'contents'\" te conf.py juaj."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Vlerë formësimi %r e pranishme tashmë"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Emër i panjohur akti: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "Trajtuesi %r për aktin %r u përgjigj me një përjashtim"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "Zgjerimi %s është i domosdoshëm për needs_extensions settings, por s’është ngarkuar."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Ky projekt lyp zgjerimin %s të paktën nën versionin %s dhe prandaj s’mund të montohet me versionin e ngarkuar (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "u gjetën shumë kartela për dokumentin \"%s\": %r\nPërdorni %r për montimin."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr "U shpërfill dokument i palexueshëm %r."
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Klasa %s e montuesit nuk ka atribut \"name\""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Montuesi %r ekziston tashmë (te moduli %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Emër %s montuesi jo i regjistruar ose i passhëm përmes pike hyrjeje"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Emër montuesi %s jo i regjistruar"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "përkatësi %s e regjistruar tashmë"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "përkatësi %s ende e paregjistruar"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "Direktiva %r është e regjistruar tashmë te përkatësia %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "Roli %r është i regjistruar tashmë te përkatësia %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "Treguesi %r është i regjistruar tashmë te përkatësia %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "object_type %r është i regjistruar tashmë"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "crossref_type %r është i regjistruar tashmë"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r është i regjistruar tashmë"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "source_parser për %r është i regjistruar tashmë"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "Përtypës burimesh për %s jo i regjistruar"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Përkthyesi për %r ekziston tashmë"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "kwargs për add_node() duhet të jetë një çift funksioni (visit, depart): %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r tashmë i regjistruar"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "vizatuesi i formulave matematikore %s është i regjistruar tashmë"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "zgjerimi %r qe shkrirë me Sphinx-in që me versionin %s; ky zgjerim është shpërfillur."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Përjashtimi origjinal:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "S’u importua dot zgjerimi %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "zgjerimi %r s’ka funksion setup(); a është vërtet një modul zgjerimi Sphinx-i?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Zgjerimi %s i përdorur nga ky projekt lyp të paktën Sphinx v%s; prandaj s’mund të montohet me këtë version."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "zgjerimi %r u përgjigj me një objekt të pambuluar prej funksionit të vet setup(); duhet të përgjigjet me Asnjë ose një fjalorth tejtëdhënash"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "numër PEP i pavlefshëm %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "numër RFC i pavlefshëm %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "tema %r s’ka rregullimin \"theme\""
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "tema %r s’ka rregullimin \"inherit\""
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "s’u gjet temë e emërtuar %r, u trashëgua nga %r"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "rregullimi %s.%s nuk haset në asnjë prej formësimeve temash ku u kërkua"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "është dhënë mundësi teme %r e pambuluar"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "kartela %r te shteg teme s’është kartelë zip e vlefshme ose nuk përmban temë"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr "s’u gjet temë e emërtuar %r (mungon theme.toml?)"
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr "Tema %r ka trashëgimi rrethore"
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "s’u gjet temë e emërtuar %r (mos mungon theme.conf?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr "Tema %r trashëgon nga %r, e cila s’është temë e ngarkuar. Temat e ngarkuara janë: %s"
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr "Tema %r ka shumë paraardhës"
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr "s’u gjet kartelë formësimi teme në %r"
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr "tema %r s’ka tabelën “themeâ€"
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr "Tabela “[theme]†e temës %r s’është tabelë"
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr "Tema %r duhet të përcaktojë rregullimin “theme.inheritâ€"
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr "Tablea “[options]†e temës %r s’është tabelë"
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr "Rregullimi “theme.pygments_style†duhet të jetë një tabelë. Ndihmëz: “%sâ€"
#: sphinx/builders/__init__.py:183
#, python-format
@@ -527,8 +569,8 @@ msgstr "s’u gjet figurë e përshtatshme për montuesin %s: %s"
msgid "building [mo]: "
msgstr "po montohet [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "po shkruhet përfundim… "
@@ -577,7 +619,7 @@ msgstr "kartela burim %d dhënë te rresht urdhrash"
msgid "targets for %d source files that are out of date"
msgstr "objektiva për kartela burim %d që janë të papërditësuara"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "po montohet [%s]: "
@@ -586,50 +628,50 @@ msgstr "po montohet [%s]: "
msgid "looking for now-outdated files... "
msgstr "po shihet për kartela të sapovjetruara… "
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "U gjet %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "s’u gjet gjë"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "po kontrollohet njëtrajtshmëria"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "s’ka objektiva të vjetruar."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "po përditësohet mjedisi: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s të shtuar, %s të ndryshuar, %s të hequr"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "po lexohen burime… "
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "emra dokumentesh për shkrim: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "po përgatiten dokumente"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "u gjet zë TeL i përsëdytur: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "po kopjohen figura… "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "s’lexohet dot kartelë figure %r: në vend të tij, po kopjohet"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "s’kopjohet dot kartelë figure %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "s’shkruhet dot kartelë figure %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "S’u gjet Pillow - po kopjohen kartela figurë"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "po shkruhet kartelë llojesh MIME…"
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "po shkruhet kartelë META-INF/container.xml…"
@@ -675,470 +717,470 @@ msgstr "po shkruhet kartelë META-INF/container.xml…"
msgid "writing content.opf file..."
msgstr "po shkruhet kartelë content.opf…"
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "lloj MIME i panjohur për %s, po shpërfillet"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "po shkruhet kartelë toc.ncx…"
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "po shkruhet kartelë %s…"
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Kartela përmbledhje gjendet te %(outdir)s."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "s’ka ndryshime në version %s."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "po shkruhet kartelë përmbledhje…"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Të brendshme"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Shkallë moduli"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "po kopjohen kartela burim…"
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "s’u lexua dot %r për krijim regjistrimi ndryshimesh"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "Montuesi provë nuk prodhon kartela."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "Kartela ePub gjendet te %(outdir)s."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "po shkruhet kartelë nav.xhtml…"
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_language\" (ose \"language\") s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "vlera e formësimit \"epub_uid\" duhet të jetë XML NAME për EPUB3"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_title\" (ose \"html_title\") s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_author\" s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_contributor\" s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_description\" s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_publisher\" s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_copyright\" (ose \"copyright\") s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "vlera e formësimit \"epub_identifier\" s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "vlera e formësimit \"version\" s’duhet të jetë e zbrazët për EPUB3"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "css_file e pavlefshme: %r, u shpërfill"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "Katalogët e mesazheve gjenden te %(outdir)s."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "objektiva për kartela gjedhe %d"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "po lexohen gjedhe… "
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "po shkruhen katalogë mesazhesh… "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Shihni për çfarëdo gabimesh te përfundimi më sipër ose te %(outdir)s/output.txt"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "lidhje e dëmtuar: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "S’u arrit të përpilohet shprehje e rregullt te linkcheck_allowed_redirects: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Faqet e doracakut gjenden në %(outdir)s."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "s’u gjet vlerë formësimi \"man_pages\"; s’do të shkruhet ndonjë faqe doracaku"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "po shkruhet"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "vlera e formësimit \"man_pages\" i referohet një dokumenti të panjohur %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "Faqja HTML gjenden në %(outdir)s."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "po montohet dokument njësh"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "po shkruhen kartela shtesë"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Kartelat Texinfo gjenden në %(outdir)s."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nXhironi 'make' te ajo drejtori, që të xhirohen këto përmes makeinfo-s\n(përdorni këtu 'make info' që kjo të kryhet automatikisht)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "s’u gjet vlerë formësimi \"texinfo_documents\"; s’do të shkruhet ndonjë dokument"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "vlera e formësimit \"texinfo_documents\" i referohet një dokumenti të panjohur %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "po përpunohet %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "po shquhen referencat…"
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (në "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "po kopjohen kartela mbulimi Texinfo"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "gabim në shkrim kartele Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Kartelat tekst gjenden në %(outdir)s."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "gabim në shkrim kartele %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "Kartelat XML gjenden në %(outdir)s."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Kartelat pseudo-XML gjenden në %(outdir)s."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "kartela e të dhënave të montimit është e dëmtuar: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "Faqet HTML gjenden në %(outdir)s."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "S’u arrit të lexohet kartelë të dhënash montimi: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Tregues i Përgjithshëm"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "tregues"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "pasuesi"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "i mëparshmi"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "po prodhohen tregues"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "po shkruhen faqe shtesë"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "po kopjohen kartela të shkarkueshme… "
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "s’kopjohet dot kartelë e shkarkueshme %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "S’u arrit të kopjohet një kartelë te html_static_file: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "po kopjohen kartela statike"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "s’kopjohet dot kartelë statike %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "po kopjohen kartela ekstra"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "s’kopjohet dot kartelë ekstra %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "S’u arrit të shkruhet kartelë të dhënash montimi: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "treguesi i kërkimi s’u ngarkua dot, por jo krejt dokumentet do të montohen: treguesi do të jetë i paplotë."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "faqja %s ka përputhje me dy rregullsi te html_sidebars: %r dhe %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "ndodhi një gabim Unikod, kur vizatohej faqja %s. Ju lutemi, siguroni që krejt vlerat e formësimit që përmbajnë lëndë jo-ASCII të jenë vargje Unikod."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "Ndodhi një gabim gjatë vizatimit të faqes %s.\nArsye: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "po shkruhet lënda e treguesit të kërkimeve në %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "js_file e pavlefshme: %r, u shpërfill"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Janë të regjistruar plot math_renderers. Por s’u përzgjodh math_renderer."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "U dha math_renderer %r i panjohur."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "zëri html_extra_path %r s’ekziston"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "zëri %r i html_extra_path entry është vendosur jashtë outdir-it"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "zëri html_static_path %r s’ekziston"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "zëri %r i html_extra_path entry është vendosur brenda outdir-it"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "kartela stemë %r s’ekziston"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "kartela favikonë %r s’ekziston"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr "HTML 4 s’mbulohet më nga Sphinx-i. (U pikas “html4_writer=True†te mundësi formësimi)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Dokumentim i %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "Kartelat LaTeX gjenden në %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nXhironi 'make' te ajo drejtori që të xhirohen këto përmes (pdf)latex\n(që të bëhet kjo automatikisht, përdorni `make latexpdf' këtu)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "s’u gjet vlerë formësimi \"texinfo_documents\"; s’do të shkruhet ndonjë dokument"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "vlera e formësimit \"texinfo_documents\" i referohet një dokumenti të panjohur %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Tregues"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Hedhje Në Qarkullim"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "s’ka mundësi Babel të njohur për gjuhën %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "po kopjohen kartela mbulimi TeX"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "po kopjohen kartela mbulimi TeX…"
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "po kopjohen kartela shtesë"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Kyç i panjohur formësimi: latex_elements[%r], u shpërfill."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "Mundësi e panjohur teme: latex_theme_options[%r], u shpërfill."
@@ -1153,15 +1195,15 @@ msgstr "%r s’ka rregullimin \"theme\""
msgid "%r doesn't have \"%s\" setting"
msgstr "%r s’ka rregullimin \"%s\""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr "S’u arrit të merrej një “docnameâ€!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr "S’u arrit të merrej një “docname†për burimin {source!r}!"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr "S’u gjet poshtëshënim për nyjë reference të dhënë %r"
@@ -1220,8 +1262,8 @@ msgstr "Një njoftim të mete mund të depozitohet te gjurmuesi në <https://git
msgid "job number should be a positive number"
msgstr "numri i aktit duhet të jetë një numër pozitiv"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "Për më tepër hollësi, vizitoni <https://www.sphinx-doc.org/>."
@@ -1253,257 +1295,264 @@ msgid "path to output directory"
msgstr "shteg për te drejtori përfundimesh"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "një listë kartelash specifike për rimontim. E shpërfillur, nëse jepet -a"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr "(opsionale) një listë kartelash të caktuara për t’u rimontuar. E shpërfillur, nëse është dhënë --write-all"
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "mundësi të përgjithshme"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "montues për t’u përdorur (parazgjedhje: html)"
+msgid "builder to use (default: 'html')"
+msgstr "montues për t’u përdorur (parazgjedhje: 'html')"
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "shkruaj krejt kartelat (parazgjedhje: shkruaj vetëm kartela të reja dhe ato të ndryshuara)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "mos përdor një mjedis të ruajtur, lexo përherë krejt kartelat"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "shteg për mjedis të ruajtur në fshehtinë dhe kartela doctree (parazgjedhje: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "montoje në paralel me N procese, kur është e mundur (vlera speciale “autoâ€\" do ta vërë N-në sa cpu-count)"
+msgid "path options"
+msgstr "mundësi shtegu"
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "shteg ku gjendet kartelë formësimi (conf.py) (parazgjedhje: i njëjtë me SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr "drejtori për kartela doctree dhe mjedisi (parazgjedhje: OUTPUT_DIR/.doctrees)"
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "mos përdor fare kartelë formësimesh, vetëm mundësitë -D"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr "drejtori për kartelën e formësimit (conf.py) (parazgjedhje: SOURCE_DIR)"
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr "mos përdor kartelë formësimi, përdor vetëm rregullime nga mundësitë -D"
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "anashkalo një rregullim te kartelë formësimi"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "jep një vlerë te gjedhe HTML"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "përcaktoni etiketë: përfshi blloqe “only†me TAG"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "mënyrë gërricëse, sinjalizo mbi krejt referencat që mungojnë"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr "mënyra “nit-pickyâ€: sinjalizo për krejt referencat që mungonjnë"
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "mundësi për ç’prodhon konsola"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "pa output në stdout, thjesht sinjalizime në stderr"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "pa output fare, madje as sinjalizime"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr "mundësi kontrolli sinjalizimesh"
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "shkruaj sinjalizime (dhe gabime) te kartela e dhënë"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "shndërroji sinjalizimet në gabime"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "me -W, vazhdo punën, kur merren sinjalizime"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr "me --fail-on-warning, vazhdo, kur merren sinjalizime"
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "xhiro Pdb, në rast përjashtimesh"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "s’mund të ndërthuret një mundësi -a dhe emra kartelash"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "s’hapet dot kartelë sinjalizimesh %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "argumenti i mundësisë -D duhet të jetë në formën emër=vlerë"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "argumenti i mundësisë -A duhet të jetë në formën emër=vlerë"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "fut automatikisht docstrings prej modulesh"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "testo automatikisht copëza kodi te blloqe doctest"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "lidhje mes dokumentimi Sphinx projektesh të ndryshëm"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "shkruaj zëra \"todo\" që mund të shfaqen ose fshihen te montimi"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "kontrolle për mbulim dokumentimi"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "përfshi formula matematikore, të vizatuara si figura PNG ose SVG"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "përfshi formula matematikore, të vizatuara te shfletuesi nga MathJax"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "përfshirje e kushtëzuar lënde, bazuar në vlera formësimi"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "përfshi lidhje te kodi burim i objekteve Python të dokumentuara"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "krijo kartelë .nojekyll për të botuar dokumentin në faqe GitHub"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Ju lutemi, jepni një emër shtegu të vlefshëm."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Ju lutemi, jepni ca tekst."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Ju lutemi, jepni një nga %s."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Ju lutemi, jepni 'y' ose 'n'."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Ju lutemi, jepni një prapashtesë kartele, për shembull, '.rst' ose '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Mirë se vini te mjeti për fillim të shpejtë me Sphinx %s."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Ju lutemi, jepni vlera për rregullimet vijuese (thjesht shtypni tastin\nEnter që të pranohet një vlerë parazgjedhje, nëse është një e tillë\nbrenda kllapave)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Shteg rrënjë i përzgjedhur: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Jepni shtegun rrënjë për te dokumenti."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Shteg rrënje për te dokumenti"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Gabim: te shtegu rrënjë i përzgjedhur u gjet një conf.py ekzistues."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart s’do të mbishkruajë projekte ekzistuese Sphinx."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Ju lutemi, jepni një shteg të ri rrënjë (ose thjesht shtypni tastin Enter, që të dilet)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Keni dy mundësi për vendosjen e drejtorisë së montimeve për çka prodhon Sphinx-i.\nPërdorni një drejtori \"_build\" brenda shtegut rrënjë, ose i ndani\ndrejtoritë \"burim\" dhe \"montim\" brenda shtegut rrënjë."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Nda veçmas drejtoritë burim dhe montim (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Brenda drejtorisë rrënjë do të krijohen dy drejtori të tjera; \"_templates\" për\ngjedhe vetjake HTML, dhe \"_static\" për fletëstile vetjakë dhe kartela të tjera statike.\nMund të krijoni një tjetër parashtesë (bie fjala, \".\") në vend të nënvijës."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Parashtesë emrash për drejtori gjedhesh dhe statikesh"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "Emri i projektit do të shfaqet në disa vende te dokumentimi i montuar."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Emër projekti"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Emër(a) autori(ësh)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr "Sphinx-i përdor nocionet e “versionit†dhe “hedhjes në qarkullim†për\nsoftware-in. Çdo version mund të ketë hedhje të shumta në qarkullim.\nBie fjala, për Python-in versionet ngjajnë me 2.5 ose 3.0, teksa hedhja\nnë qarkullim ngjan me 2.5.1 ose 3.0a1. Nëse kjo strukturë duale s’ju\nhyn në punë, thjesht vëruni të dyjave të njëjtën vlerë."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Version projekti"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Hedhje në qarkullim e projektit"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Nëse dokumentet janë shkruan në gjuhë tjetër nga anglishtja,\nmund të përzgjidhni një gjuhë këtu, përmes kodit të asaj gjuhe. Sphinx-i mandej\ndo të përkthejë në atë gjuhë tekstin që prodhon.\n\nPër një listë kodesh të mbuluar, shihni\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Gjuhë projekti"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "Prapashtesa e emrave të kartelave për kartela burim. Zakonisht, kjo\nështë ose \".txt\", ose \".rst\". Vetëm kartelat me këtë prapashtesë\nmerren si dokumente."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Prapashtesë kartele burim"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Një dokument është i veçantë, për faktin se konsiderohet si nyja e epërme\ne \"pemës së lëndës\", domethënë, është rrënja e strukturës hierarkike\ntë dokumenteve. Zakonisht, ky është \"index\", por nëse dokumenti juaj \"index\"\nështë një gjedhe vetjake, si të tillë mund të caktoni një tjetër emër kartele."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Emër i dokumentit tuaj kryesor (pa prapashtesë)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Gabim: kartela master %s është gjetur tashmë një herë në shtegun rrënjë të përzgjedhur."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart s’do të mbishkruajë kartelën ekzistuese."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Ju lutemi, jepni një emër të ri kartele, ose riemërtojeni kartelën ekzistuese dhe shtypni tastin Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Përcaktoni se cilët nga zgjerimet vijuese Sphinx duhen aktivizuar:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Shënim: imgmath dhe mathjax s’mund të aktivizohen në të njëjtën kohë. U hoqë përzgjedhja e imgmath-it."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Për ju mund të prodhohen një kartelë makefile dhe një urdhrash Windows, që\nkështu t’ju duhet vetëm të xhironi, për shembull, `make html', në vend se\ntë thirret drejtpërsëdrejti sphinx-build."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Të krijohet Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Të krijohet kartelë urdhrash Windows? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "Po krijohet kartela %s."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "Ka tashmë një kartelë %s, po anashkalohet."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Përfundoi: U krijua një strukturë fillestare drejtorish."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Tani duhet të populloni kartelën tuaj master file %s dhe të krijoni kartela të tjera\nburim të dokumentimit. "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Përdorni Makefile-in që të montohen dokumentet, kështu:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Përodrni urdhrin sphinx-build që të montohen dokumentet, kështu:\n sphinx-build -b montues %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "ku montues është një nga montuesin e mbuluar, p.sh., html, latex ose linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nProdho kartelat e domosdoshme për një projekt Sphinx.\n\nsphinx-quickstart është një mjet ndërveprues që bën disa pyetje rreth projektit\ntuaj dhe mandej prodhon një drejtori të plotë dokumentimi dhe një shembull\nMakefile për t’u përdorur me sphinx-build.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "mënyra pa zhurmë"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "rrënjë e projektit"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Mundësi strukture"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "nëse është kërkuar, nda veçmas drejtoritë burim dhe montim"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "në u përcaktoftë, krijo drejtori montimi nën drejtorinë burim"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "zëvendësim për pikën te _templates, etj."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Mundësi bazë të projektit"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "emër projekti"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "emra autorësh"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "version i projektit"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "hedhje në qarkullim e projektit"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "gjuhë dokumenti"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "prapashtesë kartele burim"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "emër dokumenti bazë"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "përdor epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Mundësi zgjerimi"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "aktivizo zgjerimin %s"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "aktivizo zgjerime arbitrare"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Krijim makefile-i dhe batchfile-i"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "krijo makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "mos krijo makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "krijo batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "mos krijo batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "përdor make-mode për Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "mos përdor make-mode për Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Gjedhe projekti"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "drejtori gjedhesh për kartela gjedhe"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "përkufizoni një ndryshore gjedheje"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"quiet\" është specifikuar, por s’është specifikuar ndonjë \"projekt\" ose \"autor\"."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Gabim:shtegu i dhënë s’është drejtori, ose kartelat sphinx ekzistojnë tashmë."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart prodhon vetëm te një drejtori e zbrazët. Ju lutemi, specifikoni një shteg rrënjë të ri."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Ndryshore e pavlefshme gjedheje: %s"
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree përmban referencë ndaj dokumenti %r të përjashtuar"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree përmban referencë ndaj dokumenti %r që s’ekziston"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "zë i përsëdytur, gjetur te toctree: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Autor ndarjeje: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Autor moduli: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Autor kodi: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Autor: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,82 +1929,10 @@ msgstr "Mundësia \":file:\" për direktivë csv-table tani njeh një shteg abso
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "Deklarim C i përsëdytur, përkufizuar edhe te %s:%s.\nDeklarimi është '.. c:%s:: %s'."
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametra"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Kthime"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Lloj kthimi"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "anëtar"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "ndryshore"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funksion"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "bashkim"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "lloj"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "parametër funksioni"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Të reja në versionin %s"
+msgid "Added in version %s"
+msgstr "Shtuar në versionin %s"
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1967,346 +1944,423 @@ msgstr "Ndryshuar në versionin %s"
msgid "Deprecated since version %s"
msgstr "Nxjerrë nga përdorimi që me versionin %s"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr "Hequr në versionin %s"
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "citim i përsëdytur %s, tjetër instancë te %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Përmendja [%s] s’është në referencë."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "Deklarim C++ i përsëdytur, përkufizuar edhe te %s:%s.\nDeklarimi është '.. cpp:%s:: %s'."
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Parametra Gjedhesh"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klasë"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "koncept"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "parametër gjedheje"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (funksion i brendshëm)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (metodë %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klasë)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s ( ndryshore globale ose konstante)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (atribut %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argumente"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Kthime"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Lloj kthimi"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funksion"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metodë"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klasë"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "të dhëna"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "atribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "përshkrim %s i përsëdytur i %s, tjetër %s në %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "etiketë e përsëdytur ekuacioni %s, instancë tjetër te %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "math_eqref_format i pavlefshëm: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Ndryshore"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktivë)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (mundësi direktive)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktivë"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rol"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "përshkrim i përsëdytur %s %s, instancë tjetër te %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "Deklarim C i përsëdytur, përkufizuar edhe te %s:%s.\nDeklarimi është '.. c:%s:: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametra"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "anëtar"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "ndryshore"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "bashkim"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "lloj"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "parametër funksioni"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Parametra Gjedhesh"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "Deklarim C++ i përsëdytur, përkufizuar edhe te %s:%s.\nDeklarimi është '.. cpp:%s:: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "koncept"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "parametër gjedheje"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (te moduli %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (te moduli %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (ndryshore e brendshme)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (klasë e brendshme)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klasë te %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (metodë klase %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (metodë statike %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (veti %s)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Tregues Modulesh Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "module"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Nxjerrë nga përdorimi"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "përjashtim"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "metodë klase"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "metodë statike"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "veti"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr "përshkrim i përsëdytur objekti %s, hasje tjetër te %s, për njërin prej tyre përdorni :no-index:"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "për ndërreferencën %r u gjet më shumë se një objektiv: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (nxjerrë nga përdorimi)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktivë)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (mundësi direktive)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rol)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktivë"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Ndryshore"
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rol"
-
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "përshkrim i përsëdytur %s %s, instancë tjetër te %s"
-
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "ndryshore mjedisi; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Përshkrim i keqformuar mundësie %r, duhet të duket si \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" ose \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "Mundësi për rresht urdhrash %s"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "mundësi për rresht urdhrash"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "termi i fjalorthit duhet të paraprihet nga një rresht i zbrazët"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "termat e fjalorthit s’duhet të paraprihet nga rreshta të zbrazët"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "fjalorthi duket të jetë i keformatuar, kontrolloni shmangie kryeradhe"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "term fjalorthi"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "etiketë reference"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "ndryshore mjedisi"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "mundësi programi"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "dokument"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Tregues Modulesh"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Faqe Kërkimesh"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "etiketë %s e përsëdytur, tjetër instancë te %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "përshkrim %s i përsëdytur për %s, tjetër instancë te %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig është i çaktivizuar. :numref: është shpërfillur."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "S’u arrit të krijohej një ndërreferencë. S’u caktua ndonjë numër: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "lidhja s’ka titull: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "numfig_format i pavlefshëm: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "numfig_format i pavlefshëm: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "etiketë e papërkufizuar: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "S’u arrit të krijohet ndërreferencë. S’u gjet një titull, ose një përshkrim: %r"
@@ -2323,35 +2377,35 @@ msgstr "formësimi ndryshoi"
msgid "extensions changed"
msgstr "zgjerimet u ndryshuan"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "version jo i tanishëm i mjedisit të montimit"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "drejtoria burim ka ndryshuar"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Ky mjedis është i papërputhshëm me montuesin e përzgjedhur, ju lutemi, zgjidhni një tjetër drejtori doctree."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "S’u arrit të skanohen dokumente te %s: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Përkatësia %r s’është e regjistruar"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "dokumenti s’është i përfshirë në ndonjë toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "U gjet “toctree†që i referohet vetes. U shpërfill."
@@ -2375,39 +2429,39 @@ msgstr "lloj i panjohur zëri treguesi: %r"
msgid "Symbols"
msgstr "Simbole"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "u pikasën referenca rrethore toctree-je, po shpërfllen: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree përmban referencë ndaj dokumenti %r që s’ka titull: s’do të prodhohet ndonjë lidhje"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "toctree përmban referencë dokumenti të papërfshirë %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "kartelë figure jo e lexueshme: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "kartelë figure %s jo e lexueshme: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "kartelë shkarkimi jo e lexueshme: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr "Do të krijonte kartelë %s."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nShih në mënyrë rekursive te <MODULE_PATH> për module dhe\npaketa Python dhe krijo një kartelë reST me direktiva\nautomodulesh për paketë te <OUTPUT_PATH>.\n\n<EXCLUDE_PATTERN>s mund të jetë shprehje kartelash dhe/ose\ndrejtorish që mund të përjashtohen nga prodhimi.\n\nShënim: Si parazgjedhje, ky programth s’do të anashkalojë\nkartela të krijuara tashmë."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "shteg për te modul për te dokumenti"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "kartelë fnmatch-style dhe/ose rregullsi drejtorish për t’u përjashtuar prej prodhimit"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "drejtori ku të vendosen krejt përfundimet"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "thellësi maksimum nënmodulesh për shfaqje te TEL (parazgjedhje: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "mbishkruaj kartela ekzistuese"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "ndiq lidhje simbolike. E fuqishme, kur ndërthuret me collective.recipe.omelette."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "xhiroje programthin pa krijuar kartela"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "vendose dokumentim për çdo modul në faqe më vete"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "përfshi modulet \"_private\""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "emër kartele për tryezën e lëndës (parazgjedhje: modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "mos krijo një kartelë tryeze lënde"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "mos krijo krye për paketat modul/paketë (për shembull, kur ato i përmban tashmë docstrings)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "vendose dokumentimin e modulit përpara dokumentimit të nënmodulit"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "interpreto shtigje modulesh sipas specifikimeve impicite PEP-0420 për emërhapësira"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "prapashtesë kartele (parazgjedhje: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "prodho me sphinx-quickstart një projekt të plotë"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "shto module_path pas sys.path, e përdorur kur është dhënë --full"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "emër projekti (parazgjedhje: emër moduli rrënjë)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "autor(ë) projekti, e përdorur kur është dhënë --full"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "version projekti, e përdorur kur është dhënë --full"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "hedhje në qarkullim e projektit, e përdorur kur është dhënë --full, si parazgjedhje merr --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "mundësi zgjatimi"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s s’është drejtori."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "pjesa “%s†etiketohet si “%sâ€"
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "shprehje e rregullt e pavlefshme %r te %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "Testimi i mbulimit te burimet përfundoi, shihni te përfundimet në %(outdir)spython.txt."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "shprehje e rregullt %r e pavlefshme te coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "API C e padokumentuar: %s [%s] te kartela %s"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "moduli %s s’u importua dot: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "funksion python i padokumentuar: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "klasë python e padokumentuar: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "metodë python e padokumentuar: %s :: %s :: %s"
@@ -2595,24 +2649,24 @@ msgstr "'%s' s’është mundësi pyversion e vlefshme"
msgid "invalid TestCode type"
msgstr "lloj TestCode i pavlefshëm"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "Testimi i doctests-eve te burimet përfundoi, shihni te përfundimet në %(outdir)s/output.txt."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "s’ka kod/dhënie te blloku %s në %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "po shpërfillet kod “doctest†i pavlefshëm: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "=================== kohëzgjatjet më të ngadalta të leximit ==================="
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Një direktivë Graphviz s’mund të ketë edhe lëndë, edhe argument emri kartelash"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "S’u gjet kartelë e jashtme Graphviz %r, ose dështoi leximi i saj"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "Po shpërfillet direktivë “graphviz†pa lëndë."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr "Duhet ujdisur shteg të ekzekutueshmi graphviz_dot! %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "urdhri dot %r s’mund të xhirohet (i nevojshëm për çka prodhon graphviz), kontrolloni rregullimin graphviz_dot"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr "dot përfundoi me gabim:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr "dot s’prodhoi kartelë përfundim:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format duhet të jetë një nga 'png', 'svg', por është %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "kod dot %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[grafik: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[grafik]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr "S’arrihet të xhirohet urdhri %r. për shndërrim figure. Si parazgjedhje, 'sphinx.ext.imgconverter' lyp ImageMagick. Sigurohuni se është i instaluar, ose për mundësinë 'image_converter' caktoni një urdhër vetjak shndërrimi .\n\nTraceback: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr "shndërrimi përfundoi me gabimin:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "s’mund të xhirohet urdhër shndërrimi %r, kontrolloni rregullimin image_converter"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "Urdhri LaTeX %r s’mund të xhirohet (i nevojshëm për shfaqje formulash matematikore), kontrolloni rregullimin imgmath_late"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "Urdhri %s %r s’mund të xhirohet (i nevojshëm për shfaqje formulash matematikore), kontrolloni rregullimin imgmath_%s"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "shfaq latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "latex brendazi %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr "Lidhje për te ky ekuacion"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "inventari intersphinx është lëvizur: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "po ngarkohet inventari intersphinx prej %s…"
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "u hasën disa probleme me disa nga inventare, por kishin alternativa funksionale:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "s’u arrit të kapej ndonjë inventar me problemet vijuese:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(te %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(te %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "s’u gjet objektiv reference të jashtme %s:%s: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "identifikuesi intersphinx %r s’është varg. U shpërfill"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "S’u arrit të lexohej intersphinx_mapping[%s], u shpërfill: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[burim]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Për T’u Bërë"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "U gjet zë Për T’u Bërë: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<zëri origjinal>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> gjendet te %s, rreshti %d.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "zëri origjinal"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "po theksohet kod moduli… "
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[dokumente]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Kod moduli"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Kod burim për %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Përmbledhje: kod moduli"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Krejt modulet për të cilët ka kod të gatshëm</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "vlerë e pavlefshme mundësie për member-order: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "vlerë e pavlefshme për mundësinë class-doc-from: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "nënshkrim i pavlefshëm për auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "gabim gjatë formatimi argumentesh për %s: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: s’u arrit të përcaktohet %s.%s (%r) për t’u dokumentuar, u shfaq përjashtimi vijues:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr "s’dihet cili modul të importohet për vetëdokumentim të %r (provoni të vendosni te dokumenti një direktivë \"module\" ose \"currentmodule\", ose të jepni shprehimisht një emër moduli)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "gabim gjatë formatimi nënshkrimesh për %s: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" në emër automoduli nuk ka kuptim"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ should duhet të jetë një listë vargjesh, jo %r (në module %s) -- ignoring __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "u përmend atribut që mungon në :members: mundësi: modul %s, atributi %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "S’u arrit të merret një nënshkrim funksioni për %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "S’u arrit të merrej nënshkrim konstruktori për %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "Baza: %s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "atribut %s që mungon te objekt %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "alias për %s"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "alias për TypeVar(%s)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "S’u arrit të merre një nënshkrim metode për %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "U gjet __slots__ i pavlefshëm në %s. U shpërfill."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "S’u arrit të përtypej një vlerë parazgjedhje argumenti për %r: %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "S’u arrit të përditësohet nënshkrim për %r: s’u gjet parametër: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "S’u arrit të përtypet type_comment për %r: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "referenca vetëpërmbledhjeje përjashtuan dokumentin %r. U shpërfill."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "vetëpërmbledhje: s’u gjet kartelë stub %r. Kontrolloni rregullimin tuaj autosummary_generate."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,26 +3052,26 @@ msgid ""
"%s"
msgstr "përmbledhje e automatizuar: s’u arrit të importohej %s.\nNdihmëza të mundshme:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "s’u arrit të përtypej emri %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "s’u arrit të importohej objekti %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: s’u gjet kartelë: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "vetëpërmbledhja prodhon së brendshmi kartela .rst. Por source_suffix juaj s’përmban .rst. U anashkalua."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr "veçoria e përmbledhjes së automatizuar prodhon kartela .rst së brendshmi. Por source_suffix juaj nuk përmban .rst. U anashkalua."
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr "dokumentoni saktësisht pjesët te moduli __all__ attribute. (parazgjedhje: %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "Argumente Fjalëkyçi"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Shembull"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Shembuj"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Shënime"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "Parametra të Tjerë"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Referenca"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Sinjalizime"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "u caktua vlerë e pavlefshme (mungon kllapë mbyllëse): %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "u caktua vlerë e pavlefshme (mungon kllapë hapëse): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "shprehje vargu e keqformuar (mungon thonjëz mbyllëse): %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "shprehje vargu e keqformuar (mungon thonjëz hapëse): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Vëmendje"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Kujdes"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Rrezik"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Gabim"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Ndihmëz"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "E rëndësishme"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Shënim"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Shihni edhe"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Ndihmëz"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Sinjalizim"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr "Tryeza e Lëndës"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "KÄ“rko"
@@ -3307,7 +3366,7 @@ msgstr "Të drejta kopjimi"
#: sphinx/themes/basic/layout.html:194 sphinx/themes/basic/layout.html:200
#, python-format
msgid "&#169; %(copyright_prefix)s %(copyright)s."
-msgstr ""
+msgstr "&#169; %(copyright_prefix)s %(copyright)s."
#: sphinx/themes/basic/layout.html:212
#, python-format
@@ -3342,34 +3401,22 @@ msgstr "Subjekti pasues"
msgid "next chapter"
msgstr "kapitulli pasues"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Që të aktivizohet funksioni i kërkimit, ju lutemi, aktivizoni\n JavaScript-in."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "Kërkimi për disa fjalë njëherësh shfaq vetëm përputhje që\n përmbajnë krejt fjalët."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "kërko"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Përfundime Kërkimi"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Kërkimi juaj s’gjeti përputhje me ndonjë dokument. Ju lutemi, sigurohuni se janë shkruar saktë krejt fjalët dhe se keni përzgjedhur aq kategori sa duhen."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Kërkim i shpejtë"
@@ -3406,20 +3453,30 @@ msgstr "Ndryshime API C"
msgid "Other changes"
msgstr "Ndryshime të tjera"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Përfundime Kërkimi"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Kërkimi juaj s’gjeti përputhje me ndonjë dokument. Ju lutemi, sigurohuni se janë shkruar saktë krejt fjalët dhe se keni përzgjedhur aq kategori sa duhen."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "Kërkimi përfundoi, u gjetën ${resultCount} faqe me përputhje me vargun e kërkimit."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Kërkim"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Po përgatitet kërkim..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", në "
@@ -3440,30 +3497,30 @@ msgstr "Zgjeroje anështyllën"
msgid "Contents"
msgstr "Lëndë"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
-msgstr ""
+msgstr "s’u njehsua dot ecuri përkthimi!"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
-msgstr ""
+msgstr "pa elementë të përkthyer!"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "U gjet tregues me bazë 4 shtylla. Mund të jetë një e metë e zgjerimeve që përdorni: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "Poshtëshënimi [%s] s’është në referencë."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "Poshtëshënimi [#] s’është në referencë."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr "referenca pa njëtrajtësi, te mesazhi i përkthyer. origjinali: {0}, përkthimi: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "referenca citimi pa njëtrajtësi, te fundfaqe në mesazhin e përkthyer. origjinali: {0}, përkthimi: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,97 +3565,97 @@ msgstr "s’u gjet objektiv reference %s:%s: %s"
msgid "%r reference target not found: %s"
msgstr "s’u gjet objektiv reference %r: %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "S’u pru dot figurë e largët: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "S’u soll dot figurë e largët: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Format i panjohur figure: %s…"
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "shenja burimi të padeshifrueshme, po zëvendësohen me \"?\": %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "e anashkaluar"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "e dështuar"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "Problem në përkatësinë %s: fusha supozohet të përdorë rol '%s', por ai rol s’gjendet te përkatësia."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "emër direktive ose roli të panjohur: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "lloj i panjohur nyjeje: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "gabim leximi: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "gabim shkrimi: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
-msgstr ""
+msgstr "locale_dir %s s’ekziston"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "Format i pavlefshëm datash. Quote the string by single quote Nëse doni të jepet drejtpërsëdrejti, përdorni për vargun thonjëza njëshe: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr "%r është nxjerrë nga funksionimi për zëra treguesi (nga zëri %r). Në vend të tij përdorni “pair: %sâ€."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "“toctree†përmban referencë për te një kartelë joekzistuese %r"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "përjashtim teksa vlerësohej vetëm shprehje direktive: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "s’u gjet rol parazgjedhje %s"
#: sphinx/writers/html5.py:100 sphinx/writers/html5.py:109
msgid "Link to this definition"
-msgstr ""
+msgstr "Lidhje për te ky përkufizim"
#: sphinx/writers/html5.py:397
#, python-format
@@ -3612,29 +3669,29 @@ msgstr "Çfarëdo ID-sh jo të përshoqëruara për nyjën %s"
#: sphinx/writers/html5.py:462
msgid "Link to this term"
-msgstr ""
+msgstr "Lidhje për te ky term"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
-msgstr ""
+msgstr "Lidhje për te kjo krye"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
-msgstr ""
+msgstr "Lidhje për te kjo tabelë"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
-msgstr ""
+msgstr "Lidhje për te ky kod"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
-msgstr ""
+msgstr "Lidhje për te kjo figurë"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
-msgstr ""
+msgstr "Lidhje për te kjo “toctreeâ€"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "S’u mor dot madhësi figure. Mundësia :scale: u shpërfill."
@@ -3651,13 +3708,13 @@ msgstr ":maxdepth: shumë i madh, u shpërfill."
msgid "document title is not a single Text node"
msgstr "titulli i dokumentit s’është nyje njëshe Teksti"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "u has nyje titulli jo në ndarje, temë, tabelë, paralajmërim ose anështyllë"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Poshtëshënime"
@@ -3676,20 +3733,20 @@ msgstr "njësia e përmasave %s është e pavlefshme. U shpërfill."
msgid "unknown index entry type %s found"
msgstr "u gjet lloj i panjohur %s zërash treguesi"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[figurë: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[figurë]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "titull jo brenda një figure."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "lloj nyjeje i pasendërtuar: %r"
diff --git a/sphinx/locale/sr/LC_MESSAGES/sphinx.mo b/sphinx/locale/sr/LC_MESSAGES/sphinx.mo
index 2309a0d..1d6b421 100644
--- a/sphinx/locale/sr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sr/LC_MESSAGES/sphinx.po b/sphinx/locale/sr/LC_MESSAGES/sphinx.po
index 52a57ae..656bffe 100644
--- a/sphinx/locale/sr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sr/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Vladimir Milovanović <vmilovanovic@gmail.com>, 2020\n"
"Language-Team: Serbian (http://app.transifex.com/sphinx-doc/sphinx-1/language/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: sr\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
@@ -39,104 +39,104 @@ msgstr "Изворни и одредишни директоријум не моÐ
msgid "Running Sphinx v%s"
msgstr "Покрећем Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Овај пројекат захтева верзију Sphinx v%s или већу, не може Ñе изградити инÑталираном верзијом."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "учитавање превода [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "готово"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "ÐеуÑпешно: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "уÑпешно"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "Ñа грешкама"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -144,12 +144,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -157,70 +157,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "Конфигурациони директоријум не Ñадржи conf.py датотеку (%s)."
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -228,290 +233,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Одељак %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Сл. %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Табела %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "СпиÑак %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Догађај %r већ поÑтоји"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Ðепознат догађај: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "Преводилац за %r већ поÑтоји"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -528,8 +570,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -578,7 +620,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -587,50 +629,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "ажурирање окружења: "
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "припремање докумената"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -639,36 +681,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "пребацивање Ñлика... "
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -676,470 +718,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "пребацивање изворних датотека..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (у "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "индекÑ"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "напред"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "назад"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "документација %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeX датотеке Ñу у %(outdir)s."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\nПокрените 'make' у том директоријуму да биÑте их пропуÑтили кроз (pdf)latex\n(или употребите `make latexpdf' овде да Ñе то одради аутоматÑки)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "ИндекÑ"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Издање"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1154,15 +1196,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1221,8 +1263,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1254,7 +1296,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1262,249 +1306,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Име пројекта"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Име(на) аутора"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1513,15 +1562,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Верзија пројекта"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Издање пројекта"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1531,21 +1580,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Језик пројекта"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Ð¡ÑƒÑ„Ð¸ÐºÑ Ð¸Ð·Ð²Ð¾Ñ€Ð½Ðµ датотеке"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1553,91 +1602,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1647,135 +1696,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "име пројекта"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "имена аутора"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "верзија пројекта"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "издање пројекта"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "језик пројекта"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "ÑÑƒÑ„Ð¸ÐºÑ Ð¸Ð·Ð²Ð¾Ñ€Ð½Ðµ датотеке"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "кориÑти epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1826,47 +1875,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Ðутор одељка: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Ðутор модула: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Ðутор кода: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Ðутор: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1881,82 +1930,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Параметри"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Резултат"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Тип резултата"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr ""
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "променљива"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "функција"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr ""
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "тип"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Додато у верзији %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1968,346 +1945,423 @@ msgstr "Измењено у верзији %s"
msgid "Deprecated since version %s"
msgstr "ЗаÑтарело почевши од верзије %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "клаÑа"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (уграђена функција)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s метода)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (клаÑа)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (глобална променљива или конÑтанта)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (атрибут %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Ðргументи"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Резултат"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Тип резултата"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (модул)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "функција"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "метода"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "клаÑа"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "атрибут"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "модул"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Променљиве"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr ""
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "директива"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr ""
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Параметри"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "променљива"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "тип"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (у модулу %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (у модулу %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (уграђена променљива)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (уграђена клаÑа)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (клаÑа у %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (метода клаÑе %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (Ñтатичка метода %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "модули"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "ЗаÑтарело"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "изузетак"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "метода клаÑе"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "Ñтатичка метода"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "директива"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr ""
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Променљиве"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "променљива окружења; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "документ"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2324,35 +2378,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2376,39 +2430,39 @@ msgstr ""
msgid "Symbols"
msgstr "Симболи"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2418,7 +2472,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2430,149 +2484,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "ÑÑƒÑ„Ð¸ÐºÑ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ (подразумевани: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2596,24 +2650,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2624,32 +2678,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2659,7 +2713,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2669,27 +2723,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2697,7 +2751,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2707,173 +2761,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(у %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(у %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[изворни код]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "План"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[документација]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Код модула"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Изворни код %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Преглед: код модула"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2881,112 +2940,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2994,25 +3053,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3086,99 +3145,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Пример"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Примери"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Белешке"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Упозорења"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Пажња"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Грешка"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Путоказ"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Важно"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Белешка"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Савет"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Упозорење"
@@ -3210,7 +3269,7 @@ msgid "Table of Contents"
msgstr "Садржај"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Претрага"
@@ -3343,34 +3402,22 @@ msgstr "Следећи одељак"
msgid "next chapter"
msgstr "наредна глава"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "тражи"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Резултати претраге"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Брза претрага"
@@ -3407,20 +3454,30 @@ msgstr ""
msgid "Other changes"
msgstr "Друге измене"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Резултати претраге"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Претражује Ñе"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Припрема претраге..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", у "
@@ -3441,30 +3498,30 @@ msgstr ""
msgid "Contents"
msgstr "Садржај"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3476,13 +3533,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3509,90 +3566,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3615,27 +3672,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3652,13 +3709,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3677,20 +3734,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[Ñлика: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[Ñлика]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo b/sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo
index 39eef88..56b31d8 100644
--- a/sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sr@latin/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo b/sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo
index 9df27e9..c4821d0 100644
--- a/sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sr_RS/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sv/LC_MESSAGES/sphinx.mo b/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
index c9f280d..7331a07 100644
--- a/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/sv/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/sv/LC_MESSAGES/sphinx.po b/sphinx/locale/sv/LC_MESSAGES/sphinx.po
index 135fa9d..42c4b33 100644
--- a/sphinx/locale/sv/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/sv/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Swedish (http://app.transifex.com/sphinx-doc/sphinx-1/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Inbyggda"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modulnivå"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(i "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Huvudindex"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "index"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "nästa"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "föregående"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Index"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Utgåva"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Sektionsförfattare"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Modulförfattare"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Källkodsförfattare"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Upphovsman:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,82 +1928,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametrar"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Returnerar"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Returtyp"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "medlem"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "variabel"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "funktion"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "typ"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Nyheter i version %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1966,346 +1943,423 @@ msgstr "Förändrat i version %s"
msgid "Deprecated since version %s"
msgstr "Ersatt sedan version %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Kastar"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "klass"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (inbyggd funktion)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s metod)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (klass)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (global variabel eller konstant)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s attribut)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Argument"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Kastar"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Returnerar"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Returtyp"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modul)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "funktion"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "metod"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "klass"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "data"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "attribut"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modul"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Variabler"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (direktiv)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Väcker"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (roll)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "direktiv"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "roll"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametrar"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "medlem"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "variabel"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "typ"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (i modul %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (i modul %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (inbyggd variabel)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (inbyggd klass)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (klass i %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s klassmetod)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s statisk metod)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python Modulindex"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "moduler"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Ersatt"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "undantag"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "klassmetod"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "statisk metod"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (direktiv)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (roll)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "direktiv"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "roll"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Variabler"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Väcker"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "miljövariabel; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "ordlista"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "grammatisk token"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "referensetikett"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "miljövariabel"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "programväxel"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modulindex"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Söksida"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[source]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Att göra"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "ursprungsvärde"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[docs]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modulkällkod"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>Källkod för %s</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Översikt: modulkällkod"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Alla moduler där källkod finns</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Uppmärksamma"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Varning"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Risk"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Fel"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "RÃ¥d"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Viktigt"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Observera"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Se även"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tips"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Varning"
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Sök"
@@ -3341,34 +3400,22 @@ msgstr "Nästa titel"
msgid "next chapter"
msgstr "Nästa kapitel"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Var god aktivera JavaScript för sökfunktionalitet."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "sök"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Sökresultat"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Snabbsök"
@@ -3405,20 +3452,30 @@ msgstr "Förändringar i C-API"
msgid "Other changes"
msgstr "Övriga förändringar"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Sökresultat"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr "Expandera sidolist"
msgid "Contents"
msgstr "Innehåll"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Fotnoter"
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[image]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ta/LC_MESSAGES/sphinx.js b/sphinx/locale/ta/LC_MESSAGES/sphinx.js
index 9e9ca89..1aa60c1 100644
--- a/sphinx/locale/ta/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/ta/LC_MESSAGES/sphinx.js
@@ -1,60 +1,60 @@
Documentation.addTranslations({
"locale": "ta",
"messages": {
- "%(filename)s &#8212; %(docstitle)s": "",
- "&#169; %(copyright_prefix)s %(copyright)s.": "",
- ", in ": "",
- "About these documents": "",
- "Automatically generated list of changes in version %(version)s": "",
- "C API changes": "",
- "Changes in Version %(version)s &#8212; %(docstitle)s": "",
- "Collapse sidebar": "",
- "Complete Table of Contents": "",
- "Contents": "",
- "Copyright": "",
- "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "",
- "Expand sidebar": "",
- "Full index on one page": "",
- "General Index": "",
- "Global Module Index": "",
- "Go": "",
- "Hide Search Matches": "",
- "Index": "",
- "Index &ndash; %(key)s": "",
- "Index pages by letter": "",
- "Indices and tables:": "",
- "Last updated on %(last_updated)s.": "",
- "Library changes": "",
- "Navigation": "",
- "Next topic": "",
- "Other changes": "",
- "Overview": "",
- "Please activate JavaScript to enable the search\n functionality.": "",
- "Preparing search...": "",
- "Previous topic": "",
- "Quick search": "",
- "Search": "",
- "Search Page": "",
- "Search Results": "",
- "Search finished, found ${resultCount} page(s) matching the search query.": "",
- "Search within %(docstitle)s": "",
- "Searching": "",
- "Searching for multiple words only shows matches that contain\n all words.": "",
- "Show Source": "",
- "Table of Contents": "",
- "This Page": "",
- "Welcome! This is": "",
- "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "",
- "all functions, classes, terms": "",
- "can be huge": "",
- "last updated": "",
- "lists all sections and subsections": "",
- "next chapter": "",
- "previous chapter": "",
- "quick access to all modules": "",
- "search": "",
- "search this documentation": "",
- "the documentation for": ""
+ "%(filename)s &#8212; %(docstitle)s": "%(\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1 \u0baa\u0bc6\u0baf\u0bb0\u0bcd) \u0b8e\u0bb8\u0bcd &#8212; %(\u0b9f\u0bbe\u0b95\u0bcd\u0bb8\u0bcd\u0b9f\u0bbf\u0b9f\u0bbf\u0bb2\u0bcd) \u0b95\u0bb3\u0bcd",
+ "&#169; %(copyright_prefix)s %(copyright)s.": "&#169; %(\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bbf\u0bae\u0bc8_\u0baa\u0bbf\u0bb0\u0bc6\u0b83\u0baa\u0bbf\u0b95\u0bcd\u0bb8\u0bcd) \u0b8e\u0bb8\u0bcd %(\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bbf\u0bae\u0bc8) \u0b95\u0bb3\u0bcd.",
+ ", in ": ", \u0b87\u0bb2\u0bcd",
+ "About these documents": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b86\u0bb5\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bc8\u0baa\u0bcd \u0baa\u0bb1\u0bcd\u0bb1\u0bbf",
+ "Automatically generated list of changes in version %(version)s": "\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1 %(\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1) S \u0b87\u0bb2\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bbf\u0ba9\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd \u0ba4\u0bbe\u0ba9\u0bbe\u0b95 \u0b89\u0bb0\u0bc1\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
+ "C API changes": "\u0b9a\u0bbf \u0b8f\u0baa\u0bbf\u0b90 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Changes in Version %(version)s &#8212; %(docstitle)s": "\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1 %(\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1) S &#8212; %(\u0b9f\u0bbe\u0b95\u0bcd\u0bb8\u0bcd\u0b9f\u0bbf\u0b9f\u0bbf\u0bb2\u0bcd) \u0b95\u0bb3\u0bcd",
+ "Collapse sidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf \u0b9a\u0bb0\u0bbf\u0bb5\u0bc1",
+ "Complete Table of Contents": "\u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bbf\u0ba9\u0bcd \u0bae\u0bc1\u0bb4\u0bc1\u0bae\u0bc8\u0baf\u0bbe\u0ba9 \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
+ "Contents": "\u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Copyright": "\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bbf\u0bae\u0bc8",
+ "Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> %(sphinx_version)s.": "<a href=\"https://www.sphinx-doc.org/\"> \u0bb8\u0bcd\u0baa\u0bbf\u0ba9\u0bcd\u0b95\u0bcd\u0bb8\u0bcd </\u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd> %(\u0bb8\u0bcd\u0baa\u0bbf\u0ba9\u0bcd\u0b95\u0bcd\u0bb8\u0bcd \u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd.",
+ "Expand sidebar": "\u0baa\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bc8 \u0bb5\u0bbf\u0bb0\u0bbf\u0bb5\u0bbe\u0b95\u0bcd\u0b95\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Full index on one page": "\u0b92\u0bb0\u0bc1 \u0baa\u0b95\u0bcd\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0bae\u0bc1\u0bb4\u0bc1 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1",
+ "General Index": "\u0baa\u0bca\u0ba4\u0bc1 \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
+ "Global Module Index": "\u0b89\u0bb2\u0b95\u0bb3\u0bbe\u0bb5\u0bbf\u0baf \u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
+ "Go": "\u0baa\u0bc7\u0bbe",
+ "Hide Search Matches": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bcd \u0baa\u0bcb\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bb3\u0bc8 \u0bae\u0bb1\u0bc8\u0b95\u0bcd\u0b95\u0bb5\u0bc1\u0bae\u0bcd",
+ "Index": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1",
+ "Index &ndash; %(key)s": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1 & ndash; %(\u0bb5\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd",
+ "Index pages by letter": "\u0b95\u0b9f\u0bbf\u0ba4\u0bae\u0bcd \u0bae\u0bc2\u0bb2\u0bae\u0bcd \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc1 \u0baa\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Indices and tables:": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8\u0b95\u0bb3\u0bcd:",
+ "Last updated on %(last_updated)s.": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf\u0baf\u0bbe\u0b95 %(last_updated) s \u0b87\u0bb2\u0bcd \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1.",
+ "Library changes": "\u0ba8\u0bc2\u0bb2\u0b95 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Navigation": "\u0bb5\u0bb4\u0bbf\u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd",
+ "Next topic": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+ "Other changes": "\u0baa\u0bbf\u0bb1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Overview": "\u0b95\u0ba3\u0bcd\u0ba3\u0bcb\u0b9f\u0bcd\u0b9f\u0bae\u0bcd",
+ "Please activate JavaScript to enable the search\n functionality.": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bc8 \u0b87\u0baf\u0b95\u0bcd\u0b95 \u0b9c\u0bbe\u0bb5\u0bbe\u0bb8\u0bcd\u0b95\u0bbf\u0bb0\u0bbf\u0baa\u0bcd\u0b9f\u0bc8 \u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd \n \u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0baa\u0bbe\u0b9f\u0bc1.",
+ "Preparing search...": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bc8\u0ba4\u0bcd \u0ba4\u0baf\u0bbe\u0bb0\u0bbf\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd ...",
+ "Previous topic": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf \u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1",
+ "Quick search": "\u0bb5\u0bbf\u0bb0\u0bc8\u0bb5\u0bc1 \u0ba4\u0bc7\u0b9f\u0bb2\u0bcd",
+ "Search": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bcd",
+ "Search Page": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bcd \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd",
+ "Search Results": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bcd \u0bae\u0bc1\u0b9f\u0bbf\u0bb5\u0bc1\u0b95\u0bb3\u0bcd",
+ "Search finished, found ${resultCount} page(s) matching the search query.": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bcd \u0bae\u0bc1\u0b9f\u0bbf\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1, \u0ba4\u0bc7\u0b9f\u0bb2\u0bcd \u0bb5\u0bbf\u0ba9\u0bb5\u0bb2\u0bc1\u0b9f\u0ba9\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0b95\u0bcd\u0b95\u0bc2\u0b9f\u0bbf\u0baf $ {resultCount} \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd (\u0b95\u0bb3\u0bcd) \u0b95\u0bbf\u0b9f\u0bc8\u0ba4\u0bcd\u0ba4\u0ba4\u0bc1.",
+ "Search within %(docstitle)s": "%(\u0b9f\u0bbe\u0b95\u0bcd\u0bb8\u0bcd\u0b9f\u0bbf\u0b9f\u0bbf\u0bb2\u0bcd) \u0b95\u0bb3\u0bcd \u0ba4\u0bc7\u0b9f\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "Searching": "\u0ba4\u0bc7\u0b9f\u0bbf",
+ "Searching for multiple words only shows matches that contain\n all words.": "\u0baa\u0bb2 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bc8\u0ba4\u0bcd \u0ba4\u0bc7\u0b9f\u0bc1\u0bb5\u0ba4\u0bc1 \u0b95\u0bbe\u0ba3\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0baa\u0bcb\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bb3\u0bc8 \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bc7 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1 \n \u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0bb5\u0bbe\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc8\u0b95\u0bb3\u0bc1\u0bae\u0bcd.",
+ "Show Source": "\u0bae\u0bc2\u0bb2\u0ba4\u0bcd\u0ba4\u0bc8\u0b95\u0bcd \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1",
+ "Table of Contents": "\u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95 \u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8",
+ "This Page": "\u0b87\u0ba8\u0bcd\u0ba4 \u0baa\u0b95\u0bcd\u0b95\u0bae\u0bcd",
+ "Welcome! This is": "\u0bb5\u0bb0\u0bb5\u0bc7\u0bb1\u0bcd\u0baa\u0bc1! \u0b87\u0ba4\u0bc1",
+ "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories.": "\u0b89\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0ba4\u0bc7\u0b9f\u0bb2\u0bcd \u0b8e\u0ba8\u0bcd\u0ba4 \u0b86\u0bb5\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0baa\u0bca\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0b8e\u0bb2\u0bcd\u0bb2\u0bbe \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bc1\u0bae\u0bcd \u0b9a\u0bb0\u0bbf\u0baf\u0bbe\u0b95 \u0b89\u0b9a\u0bcd\u0b9a\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3\u0ba9 \u0b8e\u0ba9\u0bcd\u0baa\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd, \u0ba8\u0bc0\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0bcb\u0ba4\u0bc1\u0bae\u0bbe\u0ba9 \u0bb5\u0b95\u0bc8\u0b95\u0bb3\u0bc8\u0ba4\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc6\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb3\u0bcd\u0bb3\u0bc0\u0bb0\u0bcd\u0b95\u0bb3\u0bcd \u0b8e\u0ba9\u0bcd\u0baa\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb5\u0bc1\u0bae\u0bcd.",
+ "all functions, classes, terms": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0baa\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd, \u0bb5\u0b95\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd, \u0bb5\u0bbf\u0ba4\u0bbf\u0bae\u0bc1\u0bb1\u0bc8\u0b95\u0bb3\u0bcd",
+ "can be huge": "\u0bae\u0bbf\u0b95\u0baa\u0bcd\u0baa\u0bc6\u0bb0\u0bbf\u0baf\u0ba4\u0bbe\u0b95 \u0b87\u0bb0\u0bc1\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bc1\u0bae\u0bcd",
+ "last updated": "\u0b95\u0b9f\u0bc8\u0b9a\u0bbf\u0baf\u0bbe\u0b95 \u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1",
+ "lists all sections and subsections": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1\u0b95\u0bb3\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc1\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1\u0b95\u0bb3\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bbf\u0b9f\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1",
+ "next chapter": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0b85\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbe\u0baf\u0bae\u0bcd",
+ "previous chapter": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf \u0b85\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbe\u0baf\u0bae\u0bcd",
+ "quick access to all modules": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1 \u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bae\u0bcd \u0bb5\u0bbf\u0bb0\u0bc8\u0bb5\u0bbe\u0ba9 \u0b85\u0ba3\u0bc1\u0b95\u0bb2\u0bcd",
+ "search": "\u0ba4\u0bc7\u0b9f\u0bb2\u0bcd",
+ "search this documentation": "\u0b87\u0ba8\u0bcd\u0ba4 \u0b86\u0bb5\u0ba3\u0ba4\u0bcd\u0ba4\u0bc8\u0ba4\u0bcd \u0ba4\u0bc7\u0b9f\u0bc1\u0b99\u0bcd\u0b95\u0bb3\u0bcd",
+ "the documentation for": "\u0b86\u0bb5\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bcd"
},
"plural_expr": "(n != 1)"
}); \ No newline at end of file
diff --git a/sphinx/locale/ta/LC_MESSAGES/sphinx.mo b/sphinx/locale/ta/LC_MESSAGES/sphinx.mo
index f9c85a7..cf2e108 100644
--- a/sphinx/locale/ta/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ta/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ta/LC_MESSAGES/sphinx.po b/sphinx/locale/ta/LC_MESSAGES/sphinx.po
index bcb65e2..a56273d 100644
--- a/sphinx/locale/ta/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ta/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,1222 +8,1264 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Julien Malard <julien.malard@mail.mcgill.ca>, 2019\n"
"Language-Team: Tamil (http://app.transifex.com/sphinx-doc/sphinx-1/language/ta/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: sphinx/application.py:157
#, python-format
msgid "Cannot find source directory (%s)"
-msgstr ""
+msgstr "மூல கோபà¯à®ªà®•à®¤à¯à®¤à¯ˆ (%களà¯) கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
#: sphinx/application.py:161
#, python-format
msgid "Output directory (%s) is not a directory"
-msgstr ""
+msgstr "வெளியீடà¯à®Ÿà¯ அடைவ௠(%களà¯) ஒர௠அடைவ௠அலà¯à®²"
#: sphinx/application.py:165
msgid "Source directory and destination directory cannot be identical"
-msgstr ""
+msgstr "மூல அடைவ௠மறà¯à®±à¯à®®à¯ இலகà¯à®•à¯ அடைவ௠ஒரே மாதிரியாக இரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
#: sphinx/application.py:197
#, python-format
msgid "Running Sphinx v%s"
-msgstr ""
+msgstr "இயஙà¯à®•à¯à®®à¯ Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
-msgstr ""
+msgstr "இநà¯à®¤ திடà¯à®Ÿà®¤à¯à®¤à®¿à®±à¯à®•à¯ கà¯à®±à¯ˆà®¨à¯à®¤à®ªà®Ÿà¯à®šà®®à¯ ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ வி%கள௠தேவை, எனவே இநà¯à®¤ பதிபà¯à®ªà®¿à®²à¯ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
-msgstr ""
+msgstr "வெளியீடà¯à®Ÿà¯ கோபà¯à®ªà®•à®¤à¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®¤à®²à¯"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ %s ஠அமைகà¯à®•à¯à®®à¯ போதà¯:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
-msgstr ""
+msgstr "தறà¯à®ªà¯‹à®¤à¯ conf.py இல௠வரையறà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®ªà®Ÿà®¿ 'அமைவà¯' ஒர௠பைதான௠அழைகà¯à®•à®•à¯à®•à¯‚டியத௠அலà¯à®². அதை அழைகà¯à®•à®•à¯à®•à¯‚டிய செயலà¯à®ªà®¾à®Ÿà®¾à®• மாறà¯à®± அதன௠வரையறையை மாறà¯à®±à®µà¯à®®à¯. Conf.py ஒர௠ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ நீடà¯à®Ÿà®¿à®ªà¯à®ªà®¾à®• நடநà¯à®¤à¯ கொளà¯à®³ இத௠தேவை."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
-msgstr ""
+msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯à®•à®³à¯ˆ à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯ [%களà¯] ..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
-msgstr ""
+msgstr "à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
-msgstr ""
+msgstr "உளà¯à®³à®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ செயà¯à®¤à®¿à®•à®³à¯à®•à¯à®•à¯ கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
-msgstr ""
+msgstr "ஊறà¯à®•à®¾à®¯à¯ சூழலை à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
-msgstr ""
+msgstr "தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯: %களà¯"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
-msgstr ""
+msgstr "இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆà®¯à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ பிலà¯à®Ÿà®°à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: HTML"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
-msgstr ""
+msgstr "வெறà¯à®±à®¿ பெறà¯à®±à®¾à®°à¯"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
-msgstr ""
+msgstr "சிகà¯à®•à®²à¯à®•à®³à¯à®Ÿà®©à¯ à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
-msgstr ""
+msgstr "%s, %s எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®¯à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯ (எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ பிழைகளாகக௠கரà¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
-msgstr ""
+msgstr "%s, %s எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯ (எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ பிழைகளாகக௠கரà¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
-msgstr ""
+msgstr "%களà¯, %கள௠எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®¯à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
-msgstr ""
+msgstr "%s, %s எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
-msgstr ""
+msgstr "%s ஠உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
-msgstr ""
+msgstr "à®®à¯à®©à¯ˆ வகà¯à®ªà¯à®ªà¯ %ஆர௠à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, அதன௠பாரà¯à®µà¯ˆà®¯à®¾à®³à®°à¯à®•à®³à¯ மீறபà¯à®ªà®Ÿà¯à®µà®¾à®°à¯à®•à®³à¯"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
-msgstr ""
+msgstr "டைரகà¯à®Ÿà®¿à®µà¯ %ஆர௠à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, அத௠மீறபà¯à®ªà®Ÿà¯à®®à¯"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
-msgstr ""
+msgstr "பஙà¯à®•à¯ %ஆர௠à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, அத௠மீறபà¯à®ªà®Ÿà¯à®®à¯"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
"assuming it isn't - please ask the extension author to check and make it "
"explicit"
-msgstr ""
+msgstr "இணையான வாசிபà¯à®ªà¯à®•à¯à®•à¯ இத௠பாதà¯à®•à®¾à®ªà¯à®ªà®¾à®• இரà¯à®¨à¯à®¤à®¾à®²à¯ %கள௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ அறிவிகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ, அத௠இலà¯à®²à¯ˆ எனà¯à®±à¯ கரà¯à®¤à®¿ - தயவà¯à®šà¯†à®¯à¯à®¤à¯ நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ ஆசிரியரிடம௠சரிபாரà¯à®¤à¯à®¤à¯ அதை வெளிபà¯à®ªà®Ÿà¯ˆà®¯à®¾à®•à®šà¯ சொலà¯à®²à¯à®™à¯à®•à®³à¯"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
-msgstr ""
+msgstr "இணையான வாசிபà¯à®ªà¯à®•à¯à®•à¯ %கள௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ பாதà¯à®•à®¾à®ªà¯à®ªà®¾à®©à®¤à¯ அலà¯à®²"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
"assuming it isn't - please ask the extension author to check and make it "
"explicit"
-msgstr ""
+msgstr "இணையான எழà¯à®¤à¯à®¤à¯à®•à¯à®•à¯ பாதà¯à®•à®¾à®ªà¯à®ªà®¾à®©à®¤à®¾ எனà¯à®±à¯ %கள௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ அறிவிகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ, அத௠இலà¯à®²à¯ˆ எனà¯à®±à¯ கரà¯à®¤à®¿ - தயவà¯à®šà¯†à®¯à¯à®¤à¯ நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ ஆசிரியரிடம௠சரிபாரà¯à®¤à¯à®¤à¯ அதை வெளிபà¯à®ªà®Ÿà¯ˆà®¯à®¾à®•à®šà¯ சொலà¯à®²à¯à®™à¯à®•à®³à¯"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
-msgstr ""
+msgstr "இணையான எழà¯à®¤à¯à®¤à¯à®•à¯à®•à¯ %கள௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ பாதà¯à®•à®¾à®ªà¯à®ªà®¾à®©à®¤à¯ அலà¯à®²"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
-msgstr ""
+msgstr "சீரியல௠%கள௠செயà¯à®µà®¤à¯"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®²à¯ ஒர௠conf.py கோபà¯à®ªà¯ (%களà¯) இலà¯à®²à¯ˆ"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
-msgstr ""
+msgstr "தவறான உளà¯à®³à®®à¯ˆà®µà¯ மதிபà¯à®ªà¯ காணபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯: 'மொழி = எதà¯à®µà¯à®®à®¿à®²à¯à®²à¯ˆ'. உஙà¯à®•à®³à¯ உளà¯à®³à®®à¯ˆà®µà¯ˆ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à¯à®®à¯ மொழிக௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà®¿à®±à¯à®•à¯ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®µà¯à®®à¯. 'EN' (ஆஙà¯à®•à®¿à®²à®®à¯) கà¯à®•à¯ மீணà¯à®Ÿà¯à®®à¯ விழà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
-msgstr ""
+msgstr "பà¯à®±à®•à¯à®•à®£à®¿à®¤à¯à®¤à®²à¯ (தனிபà¯à®ªà®Ÿà¯à®Ÿ கூறà¯à®•à®³à¯ˆ அமைகà¯à®• %R à®à®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯) அகராதி கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ அமைபà¯à®ªà¯ˆ மேலெழà¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯à®•à¯à®•à¯ தவறான எண௠%r, பà¯à®±à®•à¯à®•à®£à®¿à®¤à¯à®¤à®²à¯"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
-msgstr ""
+msgstr "பà¯à®±à®•à¯à®•à®£à®¿à®ªà¯à®ªà¯, ஆதரிகà¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤ வகையà¯à®Ÿà®©à¯ %r ஠கடà¯à®Ÿà®®à¯ˆà®•à¯à®•à¯à®®à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ அமைபà¯à®ªà¯ˆ மீற à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ %r மேலெழà¯à®¤à®²à®¿à®²à¯, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ %r à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®¤à¯"
+
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
-msgstr ""
+msgstr "உஙà¯à®•à®³à¯ உளà¯à®³à®®à¯ˆà®µà¯ கோபà¯à®ªà®¿à®²à¯ ஒர௠தொடரியல௠பிழை உளà¯à®³à®¤à¯: %களà¯"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
-msgstr ""
+msgstr "Sys.exit () எனபà¯à®ªà®Ÿà¯à®®à¯ உளà¯à®³à®®à¯ˆà®µà¯ கோபà¯à®ªà¯ (அலà¯à®²à®¤à¯ அத௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à¯à®®à¯ தொகà¯à®¤à®¿à®•à®³à®¿à®²à¯ ஒனà¯à®±à¯)"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
"\n"
"%s"
+msgstr "உஙà¯à®•à®³à¯ உளà¯à®³à®®à¯ˆà®µà¯ கோபà¯à®ªà®¿à®²à¯ நிரலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®•à¯à®•à¯‚டிய பிழை உளà¯à®³à®¤à¯: \n\n %களà¯"
+
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ `source_suffix 'ஒர௠சரமà¯, சரஙà¯à®•à®³à®¿à®©à¯ படà¯à®Ÿà®¿à®¯à®²à¯ அலà¯à®²à®¤à¯ அகராதியை எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®¿à®±à®¤à¯. ஆனால௠`%r 'வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
-msgstr ""
+msgstr "பிரிவ௠%களà¯"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
-msgstr ""
+msgstr "படமà¯. %களà¯"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
-msgstr ""
+msgstr "அடà¯à®Ÿà®µà®£à¯ˆ %களà¯"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
-msgstr ""
+msgstr "படà¯à®Ÿà®¿à®¯à®²à¯ %களà¯"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ `{பெயரà¯}` {வேடà¯à®ªà®¾à®³à®°à¯à®•à®³à®¿à®²à¯ à®’à®°à¯à®µà®°à®¾à®• இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯, ஆனால௠`{நடபà¯à®ªà¯}` வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ `{பெயரà¯} 'வகை` {நடபà¯à®ªà¯ .__ பெயரà¯__}'; எதிரà¯à®ªà®¾à®°à¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯ {அனà¯à®®à®¤à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ `{பெயரà¯} 'வகை` {நடபà¯à®ªà¯ .__ பெயரà¯__}', இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ `{இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ .__ பெயரà¯__} '."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
-msgstr ""
+msgstr "à®®à¯à®¤à®©à¯à®®à¯ˆ_ டொமைன௠%r கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
-msgstr ""
+msgstr "V2.0 எனà¯à®ªà®¤à®¾à®²à¯, SPHINX இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆà®¯à®¾à®• \"கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ\" ரூடà¯_டாக௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯. உஙà¯à®•à®³à¯ conf.py இல௠\"root_doc = 'பொரà¯à®³à®Ÿà®•à¯à®•à®®à¯'\" à®à®šà¯ சேரà¯à®•à¯à®•à®µà¯à®®à¯."
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
-msgstr ""
+msgstr "நிகழà¯à®µà¯ %r à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®¤à¯"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
-msgstr ""
+msgstr "தெரியாத நிகழà¯à®µà¯ பெயரà¯: %களà¯"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
-msgstr ""
+msgstr "நிகழà¯à®µà¯ %r கà¯à®•à¯ ஹேணà¯à®Ÿà¯à®²à®°à¯ %r ஒர௠விதிவிலகà¯à®•à¯ˆ வீசினாரà¯"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
-msgstr ""
+msgstr "%S நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ தேவைகளà¯_எகà¯à®¸à¯à®Ÿà¯†à®©à¯à®šà®©à¯à®¸à¯ அமைபà¯à®ªà¯à®•à®³à®¾à®²à¯ தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯, ஆனால௠அத௠à®à®±à¯à®±à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
-msgstr ""
+msgstr "இநà¯à®¤ திடà¯à®Ÿà®¤à¯à®¤à®¿à®±à¯à®•à¯ கà¯à®±à¯ˆà®¨à¯à®¤à®ªà®Ÿà¯à®šà®®à¯ %கள௠பதிபà¯à®ªà¯ %s இல௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯, எனவே à®à®±à¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿ பதிபà¯à®ªà¯ ( %களà¯) உடன௠உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
-msgstr ""
+msgstr "பைகà¯à®®à¯†à®©à¯à®Ÿà¯ லெகà¯à®¸à®°à¯ பெயர௠%ஆர௠அறியபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
-msgstr ""
+msgstr "\" %S\" என லெகà¯à®šà®¿à®™à¯ literal_block %r டோகà¯à®•à®©à®¿à®²à¯ பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %r. தளரà¯à®µà®¾à®© பயனà¯à®®à¯à®±à¯ˆà®¯à®¿à®²à¯ மீணà¯à®Ÿà¯à®®à¯ à®®à¯à®¯à®±à¯à®šà®¿à®ªà¯à®ªà®¤à¯."
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
-msgstr ""
+msgstr "\" %s\" ஆவணதà¯à®¤à®¿à®±à¯à®•à¯ பல கோபà¯à®ªà¯à®•à®³à¯ காணபà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©: %r \n உரà¯à®µà®¾à®•à¯à®• %R à®à®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯."
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
-msgstr ""
+msgstr "படிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤ ஆவணம௠%r ஠பà¯à®±à®•à¯à®•à®£à®¿à®¤à¯à®¤à®¤à¯."
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
-msgstr ""
+msgstr "பிலà¯à®Ÿà®°à¯ வகà¯à®ªà¯à®ªà¯ %எஸ௠\"பெயரà¯\" பணà¯à®ªà¯à®•à¯à®•à¯‚ற௠இலà¯à®²à¯ˆ"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
-msgstr ""
+msgstr "பிலà¯à®Ÿà®°à¯ %ஆர௠à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®¤à¯ (தொகà¯à®¤à®¿ %களà¯)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
-msgstr ""
+msgstr "பிலà¯à®Ÿà®°à¯ பெயர௠%எஸ௠பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ அலà¯à®²à®¤à¯ நà¯à®´à¯ˆà®µà¯ பà¯à®³à¯à®³à®¿ மூலம௠கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
-msgstr ""
+msgstr "பிலà¯à®Ÿà®°à¯ பெயர௠%கள௠பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
-msgstr ""
+msgstr "டொமைன௠%கள௠à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®©"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
-msgstr ""
+msgstr "டொமைன௠%எஸ௠இனà¯à®©à¯à®®à¯ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
-msgstr ""
+msgstr "%R உதà¯à®¤à®°à®µà¯ à®à®±à¯à®•à®©à®µà¯‡ டொமைன௠%s இல௠பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
-msgstr ""
+msgstr "%R பஙà¯à®•à¯ à®à®±à¯à®•à®©à®µà¯‡ டொமைன௠%s கà¯à®•à¯ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
-msgstr ""
+msgstr "%R கà¯à®±à®¿à®¯à¯€à®Ÿà¯ à®à®±à¯à®•à®©à®µà¯‡ டொமைன௠%s இல௠பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
-msgstr ""
+msgstr "%R object_type à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
-msgstr ""
+msgstr "%ஆர௠கிராஸà¯à®°à¯†à®ƒà®ªà¯_ டைப௠à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
-msgstr ""
+msgstr "source_suffix %r à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
-msgstr ""
+msgstr "%R கà¯à®•à®¾à®© source_parser à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
-msgstr ""
+msgstr "%கள௠பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ எனà¯à®ªà®¤à®±à¯à®•à®¾à®© மூல பாகà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
-msgstr ""
+msgstr "%R கà¯à®•à®¾à®© மொழிபெயரà¯à®ªà¯à®ªà®¾à®³à®°à¯ à®à®±à¯à®•à®©à®µà¯‡ இரà¯à®•à¯à®•à®¿à®±à®¾à®°à¯"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
-msgstr ""
+msgstr "Add_node () கà¯à®•à®¾à®© கà¯à®µà®¾à®°à¯à®•à¯à®¸à¯ ஒர௠(வரà¯à®•à¯ˆ, பà¯à®±à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯) செயலà¯à®ªà®¾à®Ÿà¯ டூபà¯à®ªà®¿à®³à¯: %r = %r ஆக இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
-msgstr ""
+msgstr "கணகà¯à®•à®¿à®Ÿà®•à¯à®•à¯‚டிய à®®à¯à®©à¯ˆ %à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
-msgstr ""
+msgstr "கணித ரெணà¯à®Ÿà®°à®°à¯ %கள௠à®à®±à¯à®•à®©à®µà¯‡ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®©"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
-msgstr ""
+msgstr "பதிபà¯à®ªà¯ %கள௠மà¯à®¤à®²à¯ %R நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ à®à®±à¯à®•à®©à®µà¯‡ SPHINX உடன௠இணைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯; இநà¯à®¤ நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
-msgstr ""
+msgstr "அசல௠விதிவிலகà¯à®•à¯:"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ %s ஠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ %r எநà¯à®¤ அமைபà¯à®ªà¯à®®à¯ () செயலà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆà®•à¯ கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à®µà®¿à®²à¯à®²à¯ˆ; இத௠உணà¯à®®à¯ˆà®¯à®¿à®²à¯ ஒர௠ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ தொகà¯à®¤à®¿à®¯à®¾?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
-msgstr ""
+msgstr "இநà¯à®¤ திடà¯à®Ÿà®¤à¯à®¤à®¾à®²à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®®à¯ %கள௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯à®•à¯à®•à¯ கà¯à®±à¯ˆà®¨à¯à®¤à®ªà®Ÿà¯à®šà®®à¯ ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ v %கள௠தேவை; எனவே இநà¯à®¤ பதிபà¯à®ªà®¿à®²à¯ இதை உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ %r அதன௠அமைவ௠() செயலà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ ஆதரிகà¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤ பொரà¯à®³à¯ˆà®¤à¯ திரà¯à®ªà¯à®ªà®¿à®¯à®¤à¯; இத௠எதà¯à®µà¯à®®à¯ அலà¯à®²à®¤à¯ மெடà¯à®Ÿà®¾à®Ÿà¯‡à®Ÿà¯à®Ÿà®¾ அகராதியைத௠திரà¯à®ªà¯à®ªà®¿à®¤à¯ தரகà¯à®•à¯‚டாதà¯"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
-msgstr ""
+msgstr "பைதான௠மேமà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ திடà¯à®Ÿà®™à¯à®•à®³à¯; Pep %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
-msgstr ""
+msgstr "தவறான PEP எண௠%s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
+msgstr "தவறான RFC எண௠%s"
+
+#: sphinx/theming.py:125
+#, python-format
+msgid "setting %s.%s occurs in none of the searched theme configs"
+msgstr "தேடபà¯à®ªà®Ÿà¯à®Ÿ தீம௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯à®•à®³à¯ எதà¯à®µà¯à®®à¯ இலà¯à®²à¯ˆ. %s. %s à®à®±à¯à®ªà®Ÿà®¾à®¤à¯"
+
+#: sphinx/theming.py:140
+#, python-format
+msgid "unsupported theme option %r given"
+msgstr "ஆதரிகà¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤ தீம௠விரà¯à®ªà¯à®ªà®®à¯ %r கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯"
+
+#: sphinx/theming.py:206
+#, python-format
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgstr "தீம௠பாதையில௠கோபà¯à®ªà¯ %r எனà¯à®ªà®¤à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à¯à®®à¯ ஜிபà¯à®ƒà®ªà¯ˆà®²à¯ அலà¯à®² அலà¯à®²à®¤à¯ எநà¯à®¤ கரà¯à®ªà¯à®ªà¯Šà®°à¯à®³à¯à®®à¯ இலà¯à®²à¯ˆ"
+
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:259
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:262
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:295
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme configuration file found in %r"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:323 sphinx/theming.py:374
#, python-format
-msgid "unsupported theme option %r given"
+msgid "theme %r doesn't have the \"theme\" table"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:327
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:353
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
msgid "a suitable image for %s builder not found: %s (%s)"
-msgstr ""
+msgstr "%கள௠பிலà¯à®Ÿà®°à¯à®•à¯à®•à¯ பொரà¯à®¤à¯à®¤à®®à®¾à®© படம௠காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %கள௠( %களà¯)"
#: sphinx/builders/__init__.py:187
#, python-format
msgid "a suitable image for %s builder not found: %s"
-msgstr ""
+msgstr "%கள௠பிலà¯à®Ÿà®°à¯à®•à¯à®•à¯ பொரà¯à®¤à¯à®¤à®®à®¾à®© படம௠காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %களà¯"
#: sphinx/builders/__init__.py:207
msgid "building [mo]: "
-msgstr ""
+msgstr "கடà¯à®Ÿà®¿à®Ÿà®®à¯ [மோ]:"
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
-msgstr ""
+msgstr "எழà¯à®¤à¯à®¤à®²à¯ வெளியீட௠..."
#: sphinx/builders/__init__.py:217
#, python-format
msgid "all of %d po files"
-msgstr ""
+msgstr "%டி போ கோபà¯à®ªà¯à®•à®³à¯ அனைதà¯à®¤à¯à®®à¯"
#: sphinx/builders/__init__.py:235
#, python-format
msgid "targets for %d po files that are specified"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ %d po கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© இலகà¯à®•à¯à®•à®³à¯"
#: sphinx/builders/__init__.py:243
#, python-format
msgid "targets for %d po files that are out of date"
-msgstr ""
+msgstr "காலாவதியான %d po கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© இலகà¯à®•à¯à®•à®³à¯"
#: sphinx/builders/__init__.py:252
msgid "all source files"
-msgstr ""
+msgstr "அனைதà¯à®¤à¯ மூல கோபà¯à®ªà¯à®•à®³à¯à®®à¯"
#: sphinx/builders/__init__.py:262
#, python-format
msgid "file %r given on command line does not exist, "
-msgstr ""
+msgstr "கடà¯à®Ÿà®³à¯ˆ வரியில௠கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯ %r இலà¯à®²à¯ˆ,"
#: sphinx/builders/__init__.py:267
#, python-format
msgid ""
"file %r given on command line is not under the source directory, ignoring"
-msgstr ""
+msgstr "கடà¯à®Ÿà®³à¯ˆ வரியில௠கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯ %r மூல கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®©à¯ கீழ௠இலà¯à®²à¯ˆ, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®¿à®±à®¤à¯"
#: sphinx/builders/__init__.py:273
#, python-format
msgid "file %r given on command line is not a valid document, ignoring"
-msgstr ""
+msgstr "கடà¯à®Ÿà®³à¯ˆ வரியில௠கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯ %r எனà¯à®ªà®¤à¯ சரியான ஆவணம௠அலà¯à®², பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®¿à®±à®¤à¯"
#: sphinx/builders/__init__.py:282
#, python-format
msgid "%d source files given on command line"
-msgstr ""
+msgstr "கடà¯à®Ÿà®³à¯ˆ வரியில௠கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ %d மூல கோபà¯à®ªà¯à®•à®³à¯"
#: sphinx/builders/__init__.py:294
#, python-format
msgid "targets for %d source files that are out of date"
-msgstr ""
+msgstr "காலாவதியான %d மூல கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© இலகà¯à®•à¯à®•à®³à¯"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
-msgstr ""
+msgstr "கடà¯à®Ÿà®¿à®Ÿà®™à¯à®•à®³à¯]:"
#: sphinx/builders/__init__.py:316
msgid "looking for now-outdated files... "
-msgstr ""
+msgstr "இபà¯à®ªà¯‹à®¤à¯ வெளியேறà¯à®±à®ªà¯à®ªà®Ÿà®¾à®¤ கோபà¯à®ªà¯à®•à®³à¯ˆà®¤à¯ தேடà¯à®•à®¿à®±à®¤à¯ ..."
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d கணà¯à®Ÿà¯ பà¯à®ªà®¿à®Ÿà®¿à®¤à¯à®¤ விடà¯à®Ÿà®¤à¯"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
-msgstr ""
+msgstr "எதà¯à®µà¯à®®à¯ கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
-msgstr ""
+msgstr "ஊறà¯à®•à®¾à®¯à¯ சூழலà¯"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
-msgstr ""
+msgstr "நிலைதà¯à®¤à®©à¯à®®à¯ˆà®¯à¯ˆ சரிபாரà¯à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
-msgstr ""
+msgstr "இலகà¯à®•à¯à®•à®³à¯ எதà¯à®µà¯à®®à¯ காலாவதியானவை அலà¯à®²."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
-msgstr ""
+msgstr "சூழலைப௠பà¯à®¤à¯à®ªà¯à®ªà®¿à®¤à¯à®¤à®²à¯:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
-msgstr ""
+msgstr "%கள௠சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®©, %கள௠மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®©, %கள௠அகறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®©"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
-msgstr ""
+msgstr "வாசிபà¯à®ªà¯ ஆதாரஙà¯à®•à®³à¯ ..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
-msgstr ""
+msgstr "எழà¯à®¤ டாக௠பெயரà¯à®•à®³à¯: %களà¯"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
-msgstr ""
+msgstr "ஆவணஙà¯à®•à®³à¯ˆà®¤à¯ தயாரிதà¯à®¤à®²à¯"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
-msgstr ""
+msgstr "சொதà¯à®¤à¯à®•à¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à¯à®®à¯"
#: sphinx/builders/_epub_base.py:215
#, python-format
msgid "duplicated ToC entry found: %s"
-msgstr ""
+msgstr "நகல௠TOC நà¯à®´à¯ˆà®µà¯ காணபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
-msgstr ""
+msgstr "படஙà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à¯à®®à¯ ..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
-msgstr ""
+msgstr "படக௠கோபà¯à®ªà¯ %ஆரà¯: அதறà¯à®•à¯ பதிலாக நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
-msgstr ""
+msgstr "படக௠கோபà¯à®ªà¯ %r: %s ஠நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
-msgstr ""
+msgstr "படக௠கோபà¯à®ªà¯ %r: %s ஠எழà¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
-msgstr ""
+msgstr "தலையணை கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ - படக௠கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à¯à®®à¯"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
-msgstr ""
+msgstr "Mimetype கோபà¯à®ªà¯ˆ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
-msgstr ""
+msgstr "Meta-inf/contain.xml கோபà¯à®ªà¯ˆ எழà¯à®¤à¯à®¤à®²à¯ ..."
#: sphinx/builders/_epub_base.py:508
msgid "writing content.opf file..."
-msgstr ""
+msgstr "content.opf கோபà¯à®ªà¯ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
-msgstr ""
+msgstr "பà¯à®±à®•à¯à®•à®£à®¿à®ªà¯à®ªà¯ %s கà¯à®•à®¾à®© அறியபà¯à®ªà®Ÿà®¾à®¤ Mimetype"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
-msgstr ""
+msgstr "toc.ncx கோபà¯à®ªà¯ˆ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
-msgstr ""
+msgstr "%s கோபà¯à®ªà¯ˆ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
-msgstr ""
+msgstr "கணà¯à®£à¯‹à®Ÿà¯à®Ÿà®®à¯ கோபà¯à®ªà¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®¤à¯."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
-msgstr ""
+msgstr "பதிபà¯à®ªà¯ %s இல௠மாறà¯à®±à®™à¯à®•à®³à¯ இலà¯à®²à¯ˆ."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
-msgstr ""
+msgstr "சà¯à®°à¯à®•à¯à®•à®®à¯ கோபà¯à®ªà¯ˆ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
-msgstr ""
+msgstr "பிலà¯à®Ÿà®¿à®©à¯à®¸à¯"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ நிலை"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
-msgstr ""
+msgstr "மூல கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à¯à®®à¯ ..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
-msgstr ""
+msgstr "சேஞà¯à®šà¯à®²à®¾à®•à¯ உரà¯à®µà®¾à®•à¯à®•à®¤à¯à®¤à®¿à®±à¯à®•à¯ %R à®à®ªà¯ படிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
-msgstr ""
+msgstr "போலி பிலà¯à®Ÿà®°à¯ எநà¯à®¤ கோபà¯à®ªà¯à®•à®³à¯ˆà®¯à¯à®®à¯ உரà¯à®µà®¾à®•à¯à®•à®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
-msgstr ""
+msgstr "எபப௠கோபà¯à®ªà¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®¤à¯."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
-msgstr ""
+msgstr "Nav.xhtml கோபà¯à®ªà¯ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
-msgstr ""
+msgstr "conf மதிபà¯à®ªà¯ \"epub_language\" (அலà¯à®²à®¤à¯ \"மொழி\") EPUB3 கà¯à®•à¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
-msgstr ""
+msgstr "conf மதிபà¯à®ªà¯ \"EPUB_UID\" EPUB3 கà¯à®•à®¾à®© XML பெயராக இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
-msgstr ""
+msgstr "conf மதிபà¯à®ªà¯ \"epub_title\" (அலà¯à®²à®¤à¯ \"HTML_TITLE\") EPUB3 கà¯à®•à¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
-msgstr ""
+msgstr "EPUB3 கà¯à®•à¯ \"EPUB_AUTHOR\" கான௠மதிபà¯à®ªà¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
-msgstr ""
+msgstr "EPUB3 கà¯à®•à¯ \"epub_contributor\" கானà¯à®¸à¯ மதிபà¯à®ªà¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
-msgstr ""
+msgstr "EPUB3 கà¯à®•à¯ \"EPUB_DESCRIPTION\" CONF மதிபà¯à®ªà¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
-msgstr ""
+msgstr "EPUB3 கà¯à®•à¯ \"EPUB_PUBLISHER\" கானà¯à®¸à¯ மதிபà¯à®ªà¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
-msgstr ""
+msgstr "conf மதிபà¯à®ªà¯ \"epub_copyright\" (அலà¯à®²à®¤à¯ \"பதிபà¯à®ªà¯à®°à®¿à®®à¯ˆ\") EPUB3 கà¯à®•à¯ காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
-msgstr ""
+msgstr "EPUB3 கà¯à®•à¯ \"EPUB_IDENTIFIER\" காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
-msgstr ""
+msgstr "EPUB3 கà¯à®•à¯ \"பதிபà¯à®ªà¯\" காலியாக இரà¯à®•à¯à®•à®•à¯à®•à¯‚டாதà¯"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
-msgstr ""
+msgstr "தவறான CSS_FILE: %r, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
-msgstr ""
+msgstr "செயà¯à®¤à®¿ படà¯à®Ÿà®¿à®¯à®²à¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
-msgstr ""
+msgstr "%டி வாரà¯à®ªà¯à®ªà¯à®°à¯ கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© இலகà¯à®•à¯à®•à®³à¯"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
-msgstr ""
+msgstr "வாரà¯à®ªà¯à®ªà¯à®°à¯à®•à¯à®•à®³à¯ படிதà¯à®¤à®²à¯ ..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
-msgstr ""
+msgstr "செயà¯à®¤à®¿ படà¯à®Ÿà®¿à®¯à®²à¯à®•à®³à¯ˆ எழà¯à®¤à¯à®¤à®²à¯ ..."
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
-msgstr ""
+msgstr "மேலே உளà¯à®³ வெளியீடà¯à®Ÿà®¿à®²à¯ அலà¯à®²à®¤à¯ %(வெளிபà¯à®ªà¯à®±) s/output.txt இல௠à®à®¤à¯‡à®©à¯à®®à¯ பிழைகள௠தேடà¯à®™à¯à®•à®³à¯"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
-msgstr ""
+msgstr "உடைநà¯à®¤ இணைபà¯à®ªà¯: %கள௠( %களà¯)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
-msgstr ""
+msgstr "Regex ஠லிஙà¯à®•à¯à®šà¯†à®•à¯_அலோவà¯_ரெடிரெகà¯à®Ÿà¯à®¸à®¿à®²à¯ தொகà¯à®•à¯à®•à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
-msgstr ""
+msgstr "கையேட௠பகà¯à®•à®™à¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
-msgstr ""
+msgstr "\"MAN_PAGES\" கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ இலà¯à®²à¯ˆ; கையேட௠பகà¯à®•à®™à¯à®•à®³à¯ எதà¯à®µà¯à®®à¯ எழà¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤à¯"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
-msgstr ""
+msgstr "எழà¯à®¤à¯à®¤à®²à¯"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
-msgstr ""
+msgstr "\"man_pages\" கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯ அறியபà¯à®ªà®Ÿà®¾à®¤ ஆவணம௠%s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
-msgstr ""
+msgstr "HTML பகà¯à®•à®®à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®¤à¯."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
-msgstr ""
+msgstr "à®’à®±à¯à®±à¯ˆ ஆவணதà¯à®¤à¯ˆ ஒனà¯à®±à¯ சேரà¯à®ªà¯à®ªà®¤à¯"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
-msgstr ""
+msgstr "கூடà¯à®¤à®²à¯ கோபà¯à®ªà¯à®•à®³à¯ˆ எழà¯à®¤à¯à®¤à®²à¯"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
-msgstr ""
+msgstr "டெகà¯à®¸à®¿à®©à¯à®ƒà®ªà¯‹ கோபà¯à®ªà¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
-msgstr ""
+msgstr "மேகà¯à®‡à®©à¯à®ƒà®ªà¯‹ மூலம௠இயகà¯à®• அநà¯à®¤ கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®²à¯ 'மேகà¯' இயகà¯à®•à®µà¯à®®à¯ \n (தானாகவே அதைச௠செயà¯à®¯ இஙà¯à®•à¯‡ 'தகவலà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯' பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
-msgstr ""
+msgstr "இலà¯à®²à¯ˆ \"டெகà¯à®¸à®¿à®©à¯à®ƒà®ªà¯‹_டோகெனà¯à®Ÿà¯à®¸à¯\" கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ; எநà¯à®¤ ஆவணஙà¯à®•à®³à¯à®®à¯ எழà¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤à¯"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
-msgstr ""
+msgstr "\"Dexinfo_Documents\" கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯ அறியபà¯à®ªà®Ÿà®¾à®¤ ஆவணம௠%s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
-msgstr ""
+msgstr "செயலாகà¯à®•à®®à¯ %களà¯"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯ˆà®¤à¯ தீரà¯à®ªà¯à®ªà®¤à¯ ..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
-msgstr ""
+msgstr "(இலà¯"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
-msgstr ""
+msgstr "டெகà¯à®¸à®¿à®©à¯à®ƒà®ªà¯‹ ஆதரவ௠கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
-msgstr ""
+msgstr "பிழை எழà¯à®¤à¯à®®à¯ கோபà¯à®ªà¯ மேகà¯à®ƒà®ªà¯ˆà®²à¯: %களà¯"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
-msgstr ""
+msgstr "உரை கோபà¯à®ªà¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
-msgstr ""
+msgstr "பிழை எழà¯à®¤à¯à®®à¯ கோபà¯à®ªà¯ %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
-msgstr ""
+msgstr "எகà¯à®¸à¯à®Žà®®à¯à®Žà®²à¯ கோபà¯à®ªà¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
-msgstr ""
+msgstr "போலி-எகà¯à®¸à¯à®Žà®®à¯à®Žà®²à¯ கோபà¯à®ªà¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
-msgstr ""
+msgstr "உரà¯à®µà®¾à®•à¯à®•à¯ தகவல௠கோபà¯à®ªà¯ உடைநà¯à®¤à®¤à¯: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
-msgstr ""
+msgstr "HTML பகà¯à®•à®™à¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
-msgstr ""
+msgstr "உரà¯à®µà®¾à®•à¯à®• தகவல௠கோபà¯à®ªà¯ˆà®ªà¯ படிகà¯à®•à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
-msgstr ""
+msgstr "%b %d, %y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
-msgstr ""
+msgstr "பொத௠அடà¯à®Ÿà®µà®£à¯ˆ"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "அடà¯à®¤à¯à®¤"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
-msgstr ""
+msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®¤à®²à¯"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
-msgstr ""
+msgstr "கூடà¯à®¤à®²à¯ பகà¯à®•à®™à¯à®•à®³à¯ˆ எழà¯à®¤à¯à®¤à®²à¯"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
-msgstr ""
+msgstr "தரவிறகà¯à®•à®®à¯ செயà¯à®¯à®•à¯à®•à¯‚டிய கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à®¿à®±à®¤à¯ ..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
-msgstr ""
+msgstr "தரவிறகà¯à®•à®®à¯ செயà¯à®¯à®•à¯à®•à¯‚டிய கோபà¯à®ªà¯ %r: %s ஠நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
-msgstr ""
+msgstr "HTML_STATIC_FILE இல௠ஒர௠கோபà¯à®ªà¯ˆ நகலெடà¯à®ªà¯à®ªà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
-msgstr ""
+msgstr "நிலையான கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à¯à®®à¯"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
-msgstr ""
+msgstr "நிலையான கோபà¯à®ªà¯ %r ஠நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
-msgstr ""
+msgstr "கூடà¯à®¤à®²à¯ கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
-msgstr ""
+msgstr "கூடà¯à®¤à®²à¯ கோபà¯à®ªà¯ %r ஠நகலெடà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
-msgstr ""
+msgstr "உரà¯à®µà®¾à®•à¯à®• தகவல௠கோபà¯à®ªà¯ˆ எழà¯à®¤à¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
-msgstr ""
+msgstr "தேடல௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ à®à®±à¯à®± à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯, ஆனால௠எலà¯à®²à®¾ ஆவணஙà¯à®•à®³à¯à®®à¯ கடà¯à®Ÿà®ªà¯à®ªà®Ÿà®¾à®¤à¯: கà¯à®±à®¿à®¯à¯€à®Ÿà¯ à®®à¯à®´à¯à®®à¯ˆà®¯à®Ÿà¯ˆà®¯à®¾à®¤à¯."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
-msgstr ""
+msgstr "பகà¯à®•à®®à¯ %S HTML_SIDEBARS இல௠இரணà¯à®Ÿà¯ வடிவஙà¯à®•à®³à¯à®Ÿà®©à¯ பொரà¯à®¨à¯à®¤à¯à®•à®¿à®±à®¤à¯: %R மறà¯à®±à¯à®®à¯ %R"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
-msgstr ""
+msgstr "பகà¯à®•à®¤à¯à®¤à¯ˆ %s ஠வழஙà¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ யூனிகோட௠பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯. அசி அலà¯à®²à®¾à®¤ உளà¯à®³à®Ÿà®•à¯à®•à®¤à¯à®¤à¯ˆà®•à¯ கொணà¯à®Ÿ அனைதà¯à®¤à¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯à®•à®³à¯à®®à¯ யூனிகோட௠சரஙà¯à®•à®³à¯ எனà¯à®ªà®¤à¯ˆ உறà¯à®¤à®¿à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
-msgstr ""
+msgstr "பகà¯à®•à®®à¯ %s ஠வழஙà¯à®•à¯à®µà®¤à®¿à®²à¯ பிழை à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯. \n காரணமà¯: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
-msgstr ""
+msgstr "பொரà¯à®³à¯ சரகà¯à®•à¯à®•à®³à¯ˆ கொடà¯à®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
-msgstr ""
+msgstr "தேடல௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ %s இல௠கொடà¯à®Ÿà¯à®¤à®²à¯"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
-msgstr ""
+msgstr "தவறான JS_FILE: %r, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
-msgstr ""
+msgstr "பல கணிதஙà¯à®•à®³à¯ பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®©. ஆனால௠எநà¯à®¤ கணிதமà¯à®®à¯ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ கணித_ரெணà¯à®Ÿà®°à¯ %ஆர௠வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
-msgstr ""
+msgstr "html_extra_path நà¯à®´à¯ˆà®µà¯ %r இலà¯à®²à¯ˆ"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
-msgstr ""
+msgstr "HTML_EXTRA_PATH நà¯à®´à¯ˆà®µà¯ %R கà¯à®•à¯à®³à¯ வைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
-msgstr ""
+msgstr "HTML_STATIC_PATH நà¯à®´à¯ˆà®µà¯ %R இலà¯à®²à¯ˆ"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
-msgstr ""
+msgstr "HTML_STATIC_PATH நà¯à®´à¯ˆà®µà¯ %R கà¯à®•à¯à®³à¯ வைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
-msgstr ""
+msgstr "லோகோ கோபà¯à®ªà¯ %r இலà¯à®²à¯ˆ"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
-msgstr ""
+msgstr "ஃபாவிகான௠கோபà¯à®ªà¯ %ஆர௠இலà¯à®²à¯ˆ"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
-msgstr ""
+msgstr "HTML 4 இனி ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à®¾à®²à¯ ஆதரிகà¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤à¯. (\"HTML4_WRITER = TRUE\" உளà¯à®³à®®à¯ˆà®µà¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à®¿à®²à¯ கணà¯à®Ÿà®±à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯)"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
-msgstr ""
+msgstr "%s %ஆவணஙà¯à®•à®³à¯"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
-msgstr ""
+msgstr "லேடெகà¯à®¸à¯ கோபà¯à®ªà¯à®•à®³à¯ %(வெளிபà¯à®ªà¯à®±) களில௠உளà¯à®³à®©."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
-msgstr ""
+msgstr "(PDF) லேடெகà¯à®¸à¯ மூலம௠இயகà¯à®• அநà¯à®¤ கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®²à¯ 'உரà¯à®µà®¾à®•à¯à®•à¯' இயகà¯à®•à®µà¯à®®à¯ \n (தானாகவே அதைச௠செயà¯à®¯ இஙà¯à®•à¯‡ `Latexpdf 'à®à®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
-msgstr ""
+msgstr "இலà¯à®²à¯ˆ \"லேடெகà¯à®¸à¯_டோகெனà¯à®Ÿà¯à®¸à¯\" கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ; எநà¯à®¤ ஆவணஙà¯à®•à®³à¯à®®à¯ எழà¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤à¯"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
-msgstr ""
+msgstr "\"Latex_Documents\" கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯ அறியபà¯à®ªà®Ÿà®¾à®¤ ஆவணம௠%s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
-msgstr ""
+msgstr "வெளியீடà¯"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
-msgstr ""
+msgstr "மொழிகà¯à®•à¯ அறியபà¯à®ªà®Ÿà®¾à®¤ பாபல௠விரà¯à®ªà¯à®ªà®®à¯ %r"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
-msgstr ""
+msgstr "டெகà¯à®¸à¯ ஆதரவ௠கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
-msgstr ""
+msgstr "டெகà¯à®¸à¯ ஆதரவ௠கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à®¿à®±à®¤à¯ ..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
-msgstr ""
+msgstr "கூடà¯à®¤à®²à¯ கோபà¯à®ªà¯à®•à®³à¯ˆ நகலெடà¯à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ விசை: லேடெகà¯à®¸à¯_அலெமெனà¯à®Ÿà¯à®¸à¯ [%ஆரà¯], பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ தீம௠விரà¯à®ªà¯à®ªà®®à¯: லேடெகà¯à®¸à¯_தெமà¯_ஓபà¯à®·à®©à¯à®•à®³à¯ [%ஆரà¯], பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
#: sphinx/builders/latex/theming.py:87
#, python-format
msgid "%r doesn't have \"theme\" setting"
-msgstr ""
+msgstr "%R இல௠\"தீமà¯\" அமைபà¯à®ªà¯ இலà¯à®²à¯ˆ"
#: sphinx/builders/latex/theming.py:90
#, python-format
msgid "%r doesn't have \"%s\" setting"
-msgstr ""
+msgstr "%R கà¯à®•à¯ \"%s\" அமைபà¯à®ªà¯ இலà¯à®²à¯ˆ"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
-msgstr ""
+msgstr "ஒர௠ஆவணம௠பெறத௠தவறிவிடà¯à®Ÿà®¤à¯!"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
-msgstr ""
+msgstr "மூல {மூல! R} கà¯à®•à®¾à®© ஆவணப௠பெயர௠பெறà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿!"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
-msgstr ""
+msgstr "கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கà¯à®±à®¿à®ªà¯à®ªà¯ à®®à¯à®©à¯ˆ %r கà¯à®•à¯ எநà¯à®¤ அடிகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®®à¯ கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ"
#: sphinx/cmd/build.py:46
msgid "Exception occurred while building, starting debugger:"
-msgstr ""
+msgstr "பிழைதà¯à®¤à®¿à®°à¯à®¤à¯à®¤à®¤à¯à®¤à¯ˆà®¤à¯ தொடஙà¯à®•à¯à®®à¯ போத௠விதிவிலகà¯à®•à¯ à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯:"
#: sphinx/cmd/build.py:61
msgid "Interrupted!"
-msgstr ""
+msgstr "கà¯à®±à¯à®•à¯à®•à®¿à®Ÿà¯à®Ÿà®¤à¯!"
#: sphinx/cmd/build.py:63
msgid "reST markup error:"
-msgstr ""
+msgstr "ஓயà¯à®µà¯ மாரà¯à®•à¯à®…ப௠பிழை:"
#: sphinx/cmd/build.py:69
msgid "Encoding error:"
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ பிழை:"
#: sphinx/cmd/build.py:72 sphinx/cmd/build.py:87
#, python-format
msgid ""
"The full traceback has been saved in %s, if you want to report the issue to "
"the developers."
-msgstr ""
+msgstr "டெவலபà¯à®ªà®°à¯à®•à®³à®¿à®Ÿà®®à¯ சிகà¯à®•à®²à¯ˆ நீஙà¯à®•à®³à¯ பà¯à®•à®¾à®°à®³à®¿à®•à¯à®• விரà¯à®®à¯à®ªà®¿à®©à®¾à®²à¯, à®®à¯à®´à¯ சà¯à®µà®Ÿà¯ % %களில௠சேமிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
#: sphinx/cmd/build.py:76
msgid "Recursion error:"
-msgstr ""
+msgstr "மறà¯à®¨à®¿à®•à®´à¯à®µà¯ பிழை:"
#: sphinx/cmd/build.py:79
msgid ""
"This can happen with very large or deeply nested source files. You can "
"carefully increase the default Python recursion limit of 1000 in conf.py "
"with e.g.:"
-msgstr ""
+msgstr "இத௠மிகப௠பெரிய அலà¯à®²à®¤à¯ ஆழமான உளà¯à®³à®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ மூல கோபà¯à®ªà¯à®•à®³à¯à®Ÿà®©à¯ நிகழலாமà¯. எ.கா. உடன௠conf.py இல௠இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ பைதான௠மறà¯à®¨à®¿à®•à®´à¯à®µà¯ வரமà¯à®ªà¯ˆ நீஙà¯à®•à®³à¯ கவனமாக அதிகரிகà¯à®•à®²à®¾à®®à¯."
#: sphinx/cmd/build.py:84
msgid "Exception occurred:"
-msgstr ""
+msgstr "விதிவிலகà¯à®•à¯ à®à®±à¯à®ªà®Ÿà¯à®Ÿà®¤à¯:"
#: sphinx/cmd/build.py:90
msgid ""
"Please also report this if it was a user error, so that a better error "
"message can be provided next time."
-msgstr ""
+msgstr "இத௠ஒர௠பயனர௠பிழையாக இரà¯à®¨à¯à®¤à®¾à®²à¯ இதைப௠பà¯à®•à®¾à®°à®³à®¿à®•à¯à®•à®µà¯à®®à¯, இதனால௠அடà¯à®¤à¯à®¤ à®®à¯à®±à¯ˆ சிறநà¯à®¤ பிழை செயà¯à®¤à®¿à®¯à¯ˆ வழஙà¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯."
#: sphinx/cmd/build.py:93
msgid ""
"A bug report can be filed in the tracker at <https://github.com/sphinx-"
"doc/sphinx/issues>. Thanks!"
-msgstr ""
+msgstr "ஒர௠பிழை அறிகà¯à®•à¯ˆà®¯à¯ˆ டிராகà¯à®•à®°à®¿à®²à¯ <https://github.com/sphinx-doc/sphinx/issues> இல௠தாகà¯à®•à®²à¯ செயà¯à®¯à®²à®¾à®®à¯. நனà¯à®±à®¿!"
#: sphinx/cmd/build.py:109
msgid "job number should be a positive number"
-msgstr ""
+msgstr "வேலை எண௠நேரà¯à®®à®±à¯ˆ எணà¯à®£à®¾à®• இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
-msgstr ""
+msgstr "மேலà¯à®®à¯ தகவலà¯à®•à¯à®•à¯, <https://www.sphinx-doc.org/> à®à®ªà¯ பாரà¯à®µà¯ˆà®¯à®¿à®Ÿà®µà¯à®®à¯."
#: sphinx/cmd/build.py:118
msgid ""
@@ -1242,285 +1284,292 @@ msgid ""
"\n"
"By default, everything that is outdated is built. Output only for selected\n"
"files can be built by specifying individual filenames.\n"
-msgstr ""
+msgstr "மூல கோபà¯à®ªà¯à®•à®³à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ ஆவணஙà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯. \n\n Sphinx- கடà¯à®Ÿà®³à¯ˆ sourcedir இல௠உளà¯à®³ கோபà¯à®ªà¯à®•à®³à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ ஆவணஙà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®¿ வைகà¯à®•à®¿à®±à®¤à¯ \n OutputDir இலà¯. இத௠உளà¯à®³à®®à¯ˆà®µà¯à®•à¯à®•à®¾à®• ஆதாரதà¯à®¤à®¿à®²à¯ 'conf.py' à®à®¤à¯ தேடà¯à®•à®¿à®±à®¤à¯ \n அமைபà¯à®ªà¯à®•à®³à¯. வாரà¯à®ªà¯à®ªà¯à®°à¯ கோபà¯à®ªà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®• 'ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯-கà¯à®¯à¯‚கà¯à®¸à¯à®Ÿà®¾à®°à¯à®Ÿà¯' கரà¯à®µà®¿ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà®²à®¾à®®à¯, \n 'conf.py' உடà¯à®ªà®Ÿ \n\n ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯-பிலà¯à®Ÿà¯ வெவà¯à®µà¯‡à®±à¯ வடிவஙà¯à®•à®³à®¿à®²à¯ ஆவணஙà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯. ஒர௠வடிவம௠\n கடà¯à®Ÿà®³à¯ˆ வரியில௠பிலà¯à®Ÿà®°à¯ பெயரைக௠கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®µà®¤à®©à¯ மூலம௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯; இத௠இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆà®¯à®¾à®•à¯à®®à¯ \n HTML. ஆவணஙà¯à®•à®³à¯ தொடரà¯à®ªà®¾à®© பிற பணிகளையà¯à®®à¯ பிலà¯à®Ÿà®°à¯à®•à®³à¯ செயà¯à®¯à®²à®¾à®®à¯ \n செயலாகà¯à®•à®®à¯. \n\n இயலà¯à®ªà®¾à®•, காலாவதியான அனைதà¯à®¤à¯à®®à¯ கடà¯à®Ÿà®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®©. தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ வெளியீட௠மடà¯à®Ÿà¯à®®à¯‡ \n தனிபà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯ பெயரà¯à®•à®³à¯ˆà®•à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®µà®¤à®©à¯ மூலம௠கோபà¯à®ªà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯."
#: sphinx/cmd/build.py:139
msgid "path to documentation source files"
-msgstr ""
+msgstr "ஆவண மூல கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© பாதை"
#: sphinx/cmd/build.py:141
msgid "path to output directory"
-msgstr ""
+msgstr "வெளியீடà¯à®Ÿà¯ கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© பாதை"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
-msgstr ""
+msgstr "பொத௠விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
-msgstr ""
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
+msgstr "எலà¯à®²à®¾ கோபà¯à®ªà¯à®•à®³à¯ˆà®¯à¯à®®à¯ எழà¯à®¤à¯à®™à¯à®•à®³à¯ (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: பà¯à®¤à®¿à®¯ மறà¯à®±à¯à®®à¯ மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯à®•à®³à¯ˆ மடà¯à®Ÿà¯à®®à¯ எழà¯à®¤à¯à®™à¯à®•à®³à¯)"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr ""
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
+msgstr "சேமிதà¯à®¤ சூழலைப௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¾à®®à¯, எபà¯à®ªà¯‹à®¤à¯à®®à¯ எலà¯à®²à®¾ கோபà¯à®ªà¯à®•à®³à¯ˆà®¯à¯à®®à¯ படியà¯à®™à¯à®•à®³à¯"
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
-msgstr ""
+msgid "override a setting in configuration file"
+msgstr "உளà¯à®³à®®à¯ˆà®µà¯ கோபà¯à®ªà®¿à®²à¯ ஒர௠அமைபà¯à®ªà¯ˆ மீறவà¯à®®à¯"
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
-msgstr ""
+msgid "pass a value into HTML templates"
+msgstr "HTML வாரà¯à®ªà¯à®ªà¯à®°à¯à®•à¯à®•à®³à®¿à®²à¯ ஒர௠மதிபà¯à®ªà¯ˆ அனà¯à®ªà¯à®ªà®µà¯à®®à¯"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr ""
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
+msgstr "கà¯à®±à®¿à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ வரையறà¯à®•à¯à®•à®µà¯à®®à¯: கà¯à®±à®¿à®šà¯à®šà¯Šà®²à¯à®²à¯à®Ÿà®©à¯ \"மடà¯à®Ÿà¯à®®à¯\" தொகà¯à®¤à®¿à®•à®³à¯ˆà®šà¯ சேரà¯à®•à¯à®•à®µà¯à®®à¯"
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr "வெளியீடà¯à®Ÿà¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ ஆறà¯à®¤à®²à¯"
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
-msgstr ""
+msgstr "வாயà¯à®®à¯Šà®´à®¿ அதிகரிகà¯à®•à®µà¯à®®à¯ (மீணà¯à®Ÿà¯à®®à¯ மீணà¯à®Ÿà¯à®®à¯ செயà¯à®¯à®²à®¾à®®à¯)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
-msgstr ""
+msgstr "stdout இல௠வெளியீட௠இலà¯à®²à¯ˆ, ஸà¯à®Ÿà¯†à®°à¯à®°à®°à®¿à®²à¯ எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
-msgstr ""
+msgstr "எநà¯à®¤ வெளியீடà¯à®®à¯ இலà¯à®²à¯ˆ, எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ கூட இலà¯à®²à¯ˆ"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
-msgstr ""
+msgstr "வணà¯à®£ வெளியீடà¯à®Ÿà¯ˆ வெளியிடà¯à®™à¯à®•à®³à¯ (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: தானாக-கணà¯à®Ÿà®±à®¿à®¤à®²à¯)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
+msgstr "வணà¯à®£ வெளியீடà¯à®Ÿà¯ˆ வெளியிட வேணà¯à®Ÿà®¾à®®à¯ (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: தானாக கணà¯à®Ÿà®±à®¿à®¤à®²à¯)"
+
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
-msgstr ""
+msgstr "கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà®¿à®±à¯à®•à¯ எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ (மறà¯à®±à¯à®®à¯ பிழைகளà¯) எழà¯à®¤à¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
-msgstr ""
+msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯ˆ பிழைகளாக மாறà¯à®±à®µà¯à®®à¯"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
-msgstr ""
+msgstr "விதிவிலகà¯à®•à®¿à®²à¯ à®®à¯à®´à¯ சà¯à®µà®Ÿà¯à®ªà¯à®ªà¯ˆà®•à¯ காடà¯à®Ÿà¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
-msgstr ""
+msgstr "விதிவிலகà¯à®•à®¿à®²à¯ PDB ஠இயகà¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
-msgstr ""
+msgstr "-a விரà¯à®ªà¯à®ªà®®à¯ மறà¯à®±à¯à®®à¯ கோபà¯à®ªà¯ பெயரà¯à®•à®³à¯ˆ இணைகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
-msgstr ""
+msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ கோபà¯à®ªà¯ %r: %s ஠திறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
-msgstr ""
+msgstr "-D விரà¯à®ªà¯à®ª வாதம௠படிவதà¯à®¤à®¿à®²à¯ பெயர௠= மதிபà¯à®ªà¯ இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
-msgstr ""
+msgstr "-ஒர௠விரà¯à®ªà¯à®ª வாதம௠படிவதà¯à®¤à®¿à®²à¯ இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯ பெயர௠= மதிபà¯à®ªà¯"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿à®•à®³à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ தானாக ஆவணஙà¯à®•à®³à¯ˆ செரà¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
-msgstr ""
+msgstr "டாகà¯à®¸à¯à®Ÿà¯†à®¸à¯à®Ÿà¯ தொகà¯à®¤à®¿à®•à®³à®¿à®²à¯ கà¯à®±à®¿à®¯à¯€à®Ÿà¯ தà¯à®£à¯à®•à¯à®•à¯à®•à®³à¯ˆ தானாகவே சோதிகà¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
-msgstr ""
+msgstr "வெவà¯à®µà¯‡à®±à¯ திடà¯à®Ÿà®™à¯à®•à®³à®¿à®©à¯ SPHINX ஆவணஙà¯à®•à®³à¯à®•à¯à®•à¯ இடையிலான இணைபà¯à®ªà¯"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
-msgstr ""
+msgstr "கடà¯à®Ÿà®¿à®¯à¯†à®´à¯à®ªà¯à®ª அலà¯à®²à®¤à¯ மறைகà¯à®•à®•à¯à®•à¯‚டிய \"டோடோ\" உளà¯à®³à¯€à®Ÿà¯à®•à®³à¯ˆ எழà¯à®¤à¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
-msgstr ""
+msgstr "ஆவணஙà¯à®•à®³à¯ கவரேஜ௠காசோலைகளà¯"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
-msgstr ""
+msgstr "கணிததà¯à®¤à¯ˆ சேரà¯à®•à¯à®•à®µà¯à®®à¯, பி.எனà¯.ஜி அலà¯à®²à®¤à¯ எஸà¯.வி.ஜி படஙà¯à®•à®³à®¾à®• வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
-msgstr ""
+msgstr "கணிததà¯à®¤à¯ˆ சேரà¯à®•à¯à®•à®µà¯à®®à¯, மேதà¯à®œà®¾à®•à¯à®¸à®¾à®²à¯ உலாவியில௠வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மதிபà¯à®ªà¯à®•à®³à®¿à®©à¯ அடிபà¯à®ªà®Ÿà¯ˆà®¯à®¿à®²à¯ உளà¯à®³à®Ÿà®•à¯à®•à®¤à¯à®¤à¯ˆ நிபநà¯à®¤à®©à¯ˆà®•à¯à®•à¯à®Ÿà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
-msgstr ""
+msgstr "ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿ பைதான௠பொரà¯à®³à¯à®•à®³à®¿à®©à¯ மூலக௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯à®•à®³à¯ˆà®šà¯ சேரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
-msgstr ""
+msgstr "கிதà¯à®ªà¯ பகà¯à®•à®™à¯à®•à®³à®¿à®²à¯ ஆவணதà¯à®¤à¯ˆ வெளியிட .nojekyl கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
-msgstr ""
+msgstr "சரியான பாதை பெயரை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
-msgstr ""
+msgstr "சில உரையை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
-msgstr ""
+msgstr "தயவà¯à®šà¯†à®¯à¯à®¤à¯ %s இல௠ஒனà¯à®±à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
-msgstr ""
+msgstr "தயவà¯à®šà¯†à®¯à¯à®¤à¯ 'y' அலà¯à®²à®¤à¯ 'n' ஠உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
-msgstr ""
+msgstr "தயவà¯à®šà¯†à®¯à¯à®¤à¯ ஒர௠கோபà¯à®ªà¯ பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯, எ.கா. '.rst' அலà¯à®²à®¤à¯ '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
-msgstr ""
+msgstr "Sphinx %S QUICKSTART பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®±à¯à®•à¯ வரà¯à®•."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
-msgstr ""
+msgstr "பினà¯à®µà®°à¯à®®à¯ அமைபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© மதிபà¯à®ªà¯à®•à®³à¯ˆ உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯ (Enter கà¯à®•à¯ à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯ \n அடைபà¯à®ªà¯à®•à¯à®•à¯à®±à®¿à®•à¯à®•à¯à®³à¯ வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ மதிபà¯à®ªà¯ˆ à®à®±à¯à®±à¯à®•à¯à®•à¯Šà®³à¯à®³à¯à®™à¯à®•à®³à¯)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
-msgstr ""
+msgstr "தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ரூட௠பாதை: %களà¯"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
-msgstr ""
+msgstr "ஆவணஙà¯à®•à®³à¯à®•à¯à®•à®¾à®© ரூட௠பாதையை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
-msgstr ""
+msgstr "ஆவணஙà¯à®•à®³à¯à®•à¯à®•à®¾à®© ரூட௠பாதை"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
-msgstr ""
+msgstr "பிழை: தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ரூட௠பாதையில௠à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³ conf.py கணà¯à®Ÿà®±à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
-msgstr ""
+msgstr "ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯-கிகà¯à®¸à¯à®Ÿà®¾à®°à¯à®Ÿà¯ à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³ ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ திடà¯à®Ÿà®™à¯à®•à®³à¯ˆ மேலெழà¯à®¤à®¾à®¤à¯."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
-msgstr ""
+msgstr "தயவà¯à®šà¯†à®¯à¯à®¤à¯ ஒர௠பà¯à®¤à®¿à®¯ ரூட௠பாதையை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯ (அலà¯à®²à®¤à¯ வெளியேற உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
-msgstr ""
+msgstr "SPHINX வெளியீடà¯à®Ÿà®¿à®±à¯à®•à®¾à®© உரà¯à®µà®¾à®•à¯à®• கோபà¯à®ªà®•à®¤à¯à®¤à¯ˆ வைகà¯à®• உஙà¯à®•à®³à¯à®•à¯à®•à¯ இரணà¯à®Ÿà¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ உளà¯à®³à®©. \n ஒனà¯à®±à¯, நீஙà¯à®•à®³à¯ ரூட௠பாதையில௠\"_ பிலà¯à®Ÿà¯\" எனà¯à®± கோபà¯à®ªà®•à®¤à¯à®¤à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯, அலà¯à®²à®¤à¯ நீஙà¯à®•à®³à¯ பிரிகà¯à®•à®¿à®±à¯€à®°à¯à®•à®³à¯ \n மூல பாதையில௠\"மூல\" மறà¯à®±à¯à®®à¯ \"உரà¯à®µà®¾à®•à¯à®•\" கோபà¯à®ªà®•à®™à¯à®•à®³à¯."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
-msgstr ""
+msgstr "தனி மூல மறà¯à®±à¯à®®à¯ உரà¯à®µà®¾à®•à¯à®• கோபà¯à®ªà®•à®™à¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®¤à®²à¯ (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
-msgstr ""
+msgstr "ரூட௠கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®©à¯ உளà¯à®³à¯‡, மேலà¯à®®à¯ இரணà¯à®Ÿà¯ கோபà¯à®ªà®•à®™à¯à®•à®³à¯ உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯; \"_TEMPLATES\" \n தனிபà¯à®ªà®¯à®©à¯ HTML வாரà¯à®ªà¯à®ªà¯à®°à¯à®•à¯à®•à®³à¯ மறà¯à®±à¯à®®à¯ தனிபà¯à®ªà®¯à®©à¯ நடைதாள௠மறà¯à®±à¯à®®à¯ பிற நிலையான \"_ஸà¯à®Ÿà®¾à®Ÿà®¿à®•à¯\" \n கோபà¯à®ªà¯à®•à®³à¯. அடிகà¯à®•à¯‹à®Ÿà®¿à®Ÿà¯à®Ÿà®¤à¯ˆ மாறà¯à®± மறà¯à®±à¯Šà®°à¯ à®®à¯à®©à¯à®©à¯Šà®Ÿà¯à®Ÿà¯ˆ (\".\" போனà¯à®±à®µà¯ˆ) உளà¯à®³à®¿à®Ÿà®²à®¾à®®à¯."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
-msgstr ""
+msgstr "வாரà¯à®ªà¯à®ªà¯à®°à¯à®•à¯à®•à®³à¯ மறà¯à®±à¯à®®à¯ நிலையான டிர௠ஆகியவறà¯à®±à®¿à®±à¯à®•à®¾à®© பெயர௠மà¯à®©à¯à®©à¯Šà®Ÿà¯à®Ÿà¯"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஆவணஙà¯à®•à®³à®¿à®²à¯ பல இடஙà¯à®•à®³à®¿à®²à¯ திடà¯à®Ÿ பெயர௠நிகழà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
-msgstr ""
+msgstr "திடà¯à®Ÿ பெயரà¯"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
-msgstr ""
+msgstr "ஆசிரியரின௠பெயர௠(களà¯)"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
"Python the version is something like 2.5 or 3.0, while the release is\n"
"something like 2.5.1 or 3.0a1. If you don't need this dual structure,\n"
"just set both to the same value."
-msgstr ""
+msgstr "ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ ஒர௠\"பதிபà¯à®ªà¯\" மறà¯à®±à¯à®®à¯ \"வெளியீடà¯\" எனà¯à®± கரà¯à®¤à¯à®¤à¯ˆ கொணà¯à®Ÿà¯à®³à¯à®³à®¤à¯ \n மெனà¯à®ªà¯Šà®°à¯à®³à¯. ஒவà¯à®µà¯Šà®°à¯ பதிபà¯à®ªà®¿à®²à¯à®®à¯ பல வெளியீடà¯à®•à®³à¯ இரà¯à®•à¯à®•à®²à®¾à®®à¯. உதாரணமாக, \n பைதான௠பதிபà¯à®ªà¯ 2.5 அலà¯à®²à®¤à¯ 3.0 போனà¯à®±à®¤à¯, அதே நேரதà¯à®¤à®¿à®²à¯ வெளியீட௠\n 2.5.1 அலà¯à®²à®¤à¯ 3.0A1 போனà¯à®±à®¤à¯. இநà¯à®¤ இரடà¯à®Ÿà¯ˆ அமைபà¯à®ªà¯ உஙà¯à®•à®³à¯à®•à¯à®•à¯ தேவையிலà¯à®²à¯ˆ எனà¯à®±à®¾à®²à¯, \n இரணà¯à®Ÿà¯ˆà®¯à¯à®®à¯ ஒரே மதிபà¯à®ªà¯à®•à¯à®•à¯ அமைகà¯à®•à®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
-msgstr ""
+msgstr "திடà¯à®Ÿ பதிபà¯à®ªà¯"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
-msgstr ""
+msgstr "திடà¯à®Ÿ வெளியீடà¯"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1528,115 +1577,115 @@ msgid ""
"\n"
"For a list of supported codes, see\n"
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-msgstr ""
+msgstr "ஆவணஙà¯à®•à®³à¯ ஆஙà¯à®•à®¿à®²à®¤à¯à®¤à¯ˆà®¤à¯ தவிர வேற௠மொழியில௠எழà¯à®¤à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯ எனà¯à®±à®¾à®²à¯, \n ஒர௠மொழியை அதன௠மொழிக௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà®¾à®²à¯ இஙà¯à®•à¯‡ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®²à®¾à®®à¯. ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ பினà¯à®©à®°à¯ \n அத௠உரà¯à®µà®¾à®•à¯à®•à¯à®®à¯ உரையை அநà¯à®¤ மொழியில௠மொழிபெயரà¯à®•à¯à®•à®µà¯à®®à¯. \n\n ஆதரவ௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®•à®³à®¿à®©à¯ படà¯à®Ÿà®¿à®¯à®²à¯à®•à¯à®•à¯, பாரà¯à®•à¯à®•à®µà¯à®®à¯ \n https://www.sphinx-doc.org/en/master/usage/configuration.html#confval- மொழி."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
-msgstr ""
+msgstr "திடà¯à®Ÿ மொழி"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
-msgstr ""
+msgstr "மூல கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© கோபà¯à®ªà¯ பெயர௠பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯. பொதà¯à®µà®¾à®•, இத௠\".txt\" \n அலà¯à®²à®¤à¯ \".rst\". இநà¯à®¤ பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯à®Ÿà®©à¯ கூடிய கோபà¯à®ªà¯à®•à®³à¯ மடà¯à®Ÿà¯à®®à¯‡ ஆவணஙà¯à®•à®³à®¾à®• கரà¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©."
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
-msgstr ""
+msgstr "மூல கோபà¯à®ªà¯ பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
"of the documents. Normally, this is \"index\", but if your \"index\"\n"
"document is a custom template, you can also set this to another filename."
-msgstr ""
+msgstr "ஒர௠ஆவணம௠சிறபà¯à®ªà¯ வாயà¯à®¨à¯à®¤à®¤à¯, இத௠மேல௠மà¯à®©à¯ˆà®¯à®¾à®• கரà¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯ \n \"உளà¯à®³à®Ÿà®•à¯à®• மரமà¯\", அதாவதà¯, இத௠படிநிலை கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà®¿à®©à¯ வேர௠\n ஆவணஙà¯à®•à®³à®¿à®²à¯. பொதà¯à®µà®¾à®•, இத௠\"கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯\", ஆனால௠உஙà¯à®•à®³à¯ \"கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯\" எனà¯à®±à®¾à®²à¯ \n ஆவணம௠ஒர௠தனிபà¯à®ªà®¯à®©à¯ வாரà¯à®ªà¯à®ªà¯à®°à¯, இதை நீஙà¯à®•à®³à¯ மறà¯à®±à¯Šà®°à¯ கோபà¯à®ªà¯ பெயராக அமைகà¯à®•à®²à®¾à®®à¯."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
-msgstr ""
+msgstr "உஙà¯à®•à®³à¯ à®®à¯à®¤à®©à¯à®®à¯ˆ ஆவணதà¯à®¤à®¿à®©à¯ பெயர௠(பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯ இலà¯à®²à®¾à®®à®²à¯)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
-msgstr ""
+msgstr "பிழை: à®®à¯à®¤à®©à¯à®®à¯ˆ கோபà¯à®ªà¯ %s à®à®±à¯à®•à®©à®µà¯‡ தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ரூட௠பாதையில௠கணà¯à®Ÿà®±à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
-msgstr ""
+msgstr "SPHINX-QUICKSTART இரà¯à®•à¯à®•à¯à®®à¯ கோபà¯à®ªà¯ˆ மேலெழà¯à®¤à®¾à®¤à¯."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
-msgstr ""
+msgstr "தயவà¯à®šà¯†à®¯à¯à®¤à¯ ஒர௠பà¯à®¤à®¿à®¯ கோபà¯à®ªà¯ பெயரை உளà¯à®³à®¿à®Ÿà®µà¯à®®à¯ அலà¯à®²à®¤à¯ இரà¯à®•à¯à®•à¯à®®à¯ கோபà¯à®ªà¯ˆ மறà¯à®ªà¯†à®¯à®°à®¿à®Ÿà¯à®Ÿà¯ Enter à® à®…à®´à¯à®¤à¯à®¤à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
-msgstr ""
+msgstr "பினà¯à®µà®°à¯à®®à¯ ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯à®•à®³à®¿à®²à¯ எத௠இயகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯ எனà¯à®ªà®¤à¯ˆà®•à¯ கà¯à®±à®¿à®•à¯à®•à®µà¯à®®à¯:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯: ஒரே நேரதà¯à®¤à®¿à®²à¯ இமà¯à®•à¯à®®à®¾à®¤à¯ மறà¯à®±à¯à®®à¯ மேதà¯à®œà®¾à®•à¯à®¸à¯ˆ இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯. இமà¯à®•à¯à®®à®¤à¯ தேரà¯à®µà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
-msgstr ""
+msgstr "ஒர௠மேகà¯à®ƒà®ªà¯ˆà®²à¯ மறà¯à®±à¯à®®à¯ விணà¯à®Ÿà¯‹à®¸à¯ கடà¯à®Ÿà®³à¯ˆ கோபà¯à®ªà¯ˆ உஙà¯à®•à®³à¯à®•à¯à®•à®¾à®• உரà¯à®µà®¾à®•à¯à®•à®²à®¾à®®à¯, இதனால௠நீஙà¯à®•à®³à¯ \n எ.கா. ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯-பிலà¯à®Ÿà¯ செயà¯à®µà®¤à®±à¯à®•à¯ பதிலாக `HTML ஠உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯ ' \n நேரடியாக."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
-msgstr ""
+msgstr "மேகà¯à®ƒà®ªà¯ˆà®²à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà®¾? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
-msgstr ""
+msgstr "விணà¯à®Ÿà¯‹à®¸à¯ கடà¯à®Ÿà®³à¯ˆ கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà®¾? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
-msgstr ""
+msgstr "கோபà¯à®ªà¯ %s ஠உரà¯à®µà®¾à®•à¯à®•à¯à®¤à®²à¯."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
-msgstr ""
+msgstr "கோபà¯à®ªà¯ %s à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®¤à¯, தவிரà¯à®•à¯à®•à®¿à®±à®¤à¯."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
-msgstr ""
+msgstr "à®®à¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯: ஆரமà¯à®ª அடைவ௠அமைபà¯à®ªà¯ உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
-msgstr ""
+msgstr "நீஙà¯à®•à®³à¯ இபà¯à®ªà¯‹à®¤à¯ உஙà¯à®•à®³à¯ à®®à¯à®¤à®©à¯à®®à¯ˆ கோபà¯à®ªà¯ %s ஠விரிவà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ பிற ஆவணஙà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯ \n மூல கோபà¯à®ªà¯à®•à®³à¯."
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
-msgstr ""
+msgstr "டாகà¯à®¸à¯ˆ உரà¯à®µà®¾à®•à¯à®• மேகà¯à®ƒà®ªà¯ˆà®²à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯: \n பிலà¯à®Ÿà®°à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
-msgstr ""
+msgstr "டாகà¯à®¸à¯ˆ உரà¯à®µà®¾à®•à¯à®• ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯-பிலà¯à®Ÿà¯ கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯: \n Sphinx -build -b பிலà¯à®Ÿà®°à¯ %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
-msgstr ""
+msgstr "\"பிலà¯à®Ÿà®°à¯\" எனà¯à®ªà®¤à¯ ஆதரிகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ பிலà¯à®Ÿà®°à¯à®•à®³à®¿à®²à¯ ஒனà¯à®±à®¾à®•à¯à®®à¯, எ.கா. HTML, லேடெகà¯à®¸à¯ அலà¯à®²à®¤à¯ லிஙà¯à®•à¯à®šà¯†à®•à¯."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1644,780 +1693,785 @@ msgid ""
"sphinx-quickstart is an interactive tool that asks some questions about your\n"
"project and then generates a complete documentation directory and sample\n"
"Makefile to be used with sphinx-build.\n"
-msgstr ""
+msgstr "ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ திடà¯à®Ÿà®¤à¯à®¤à®¿à®±à¯à®•à¯ தேவையான கோபà¯à®ªà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯. \n\n Sphinx-quickstart எனà¯à®ªà®¤à¯ உஙà¯à®•à®³à¯ˆà®ªà¯ பறà¯à®±à®¿ சில கேளà¯à®µà®¿à®•à®³à¯ˆà®•à¯ கேடà¯à®•à¯à®®à¯ ஒர௠ஊடாடà¯à®®à¯ கரà¯à®µà®¿à®¯à®¾à®•à¯à®®à¯ \n திடà¯à®Ÿà®®à¯ மறà¯à®±à¯à®®à¯ பினà¯à®©à®°à¯ ஒர௠மà¯à®´à¯à®®à¯ˆà®¯à®¾à®© ஆவண அடைவ௠மறà¯à®±à¯à®®à¯ மாதிரி உரà¯à®µà®¾à®•à¯à®•à¯à®•à®¿à®±à®¤à¯ \n Sphinx- கடà¯à®Ÿà®³à¯ˆà®¯à¯à®Ÿà®©à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ மேகà¯à®ƒà®ªà¯ˆà®²à¯."
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
-msgstr ""
+msgstr "அமைதியான பயனà¯à®®à¯à®±à¯ˆ"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
-msgstr ""
+msgstr "திடà¯à®Ÿ வேரà¯"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, மூலதà¯à®¤à¯ˆ பிரிதà¯à®¤à¯ dirs ஠உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯, மூல dir இன௠கீழ௠உரà¯à®µà®¾à®•à¯à®• dir ஠உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
-msgstr ""
+msgstr "_TEMPLATES போனà¯à®±à®µà®±à¯à®±à®¿à®²à¯ DOT கà¯à®•à¯ மாறà¯à®±à¯€à®Ÿà¯."
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
-msgstr ""
+msgstr "அடிபà¯à®ªà®Ÿà¯ˆ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ˆ திடà¯à®Ÿà®®à®¿à®Ÿà¯à®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
-msgstr ""
+msgstr "திடà¯à®Ÿ பெயரà¯"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
-msgstr ""
+msgstr "ஆசிரியர௠பெயரà¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
-msgstr ""
+msgstr "திடà¯à®Ÿà®¤à¯à®¤à®¿à®©à¯ பதிபà¯à®ªà¯"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
-msgstr ""
+msgstr "திடà¯à®Ÿà®¤à¯à®¤à®¿à®©à¯ வெளியீடà¯"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
-msgstr ""
+msgstr "ஆவண மொழி"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
-msgstr ""
+msgstr "மூல கோபà¯à®ªà¯ பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
-msgstr ""
+msgstr "à®®à¯à®¤à®©à¯à®®à¯ˆ ஆவண பெயரà¯"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
-msgstr ""
+msgstr "எபப௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
-msgstr ""
+msgstr "%கள௠நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ˆ இயகà¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
-msgstr ""
+msgstr "தனà¯à®©à®¿à®šà¯à®šà¯ˆà®¯à®¾à®© நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯à®•à®³à¯ˆ இயகà¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
-msgstr ""
+msgstr "மேகà¯à®ƒà®ªà¯ˆà®²à¯ மறà¯à®±à¯à®®à¯ பேடà¯à®šà¯à®ªà¯ˆà®²à¯ உரà¯à®µà®¾à®•à¯à®•à®®à¯"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
-msgstr ""
+msgstr "மேகà¯à®ƒà®ªà¯ˆà®²à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
-msgstr ""
+msgstr "மேகà¯à®ƒà®ªà¯ˆà®²à¯ˆ உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà®¾à®®à¯"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà®¾à®®à¯"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
-msgstr ""
+msgstr "MakeFile/make.bat கà¯à®•à¯ மேகà¯-பயனà¯à®®à¯à®±à¯ˆà®¯à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
-msgstr ""
+msgstr "MakeFile/make.bat கà¯à®•à¯ மேகà¯-பயனà¯à®®à¯à®±à¯ˆà®¯à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà®¾à®®à¯"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
-msgstr ""
+msgstr "திடà¯à®Ÿ வாரà¯à®ªà¯à®ªà¯à®°à¯"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
-msgstr ""
+msgstr "வாரà¯à®ªà¯à®ªà¯à®°à¯ கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© வாரà¯à®ªà¯à®ªà¯à®°à¯ அடைவà¯"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
-msgstr ""
+msgstr "ஒர௠வாரà¯à®ªà¯à®ªà¯à®°à¯ மாறியை வரையறà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
-msgstr ""
+msgstr "\"அமைதியானதà¯\" கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯, ஆனால௠\"திடà¯à®Ÿà®®à¯\" அலà¯à®²à®¤à¯ \"ஆசிரியரà¯\" எதà¯à®µà¯à®®à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
-msgstr ""
+msgstr "பிழை: கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®Ÿ பாதை ஒர௠அடைவ௠அலà¯à®², அலà¯à®²à®¤à¯ ஸà¯à®ªà®¿à®™à¯à®•à¯à®¸à¯ கோபà¯à®ªà¯à®•à®³à¯ à®à®±à¯à®•à®©à®µà¯‡ உளà¯à®³à®©."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
-msgstr ""
+msgstr "ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯-கிகà¯à®¸à¯à®Ÿà®¾à®°à¯à®Ÿà¯ ஒர௠வெறà¯à®±à¯ கோபà¯à®ªà®•à®®à®¾à®• மடà¯à®Ÿà¯à®®à¯‡ உரà¯à®µà®¾à®•à¯à®•à¯à®•à®¿à®±à®¤à¯. பà¯à®¤à®¿à®¯ ரூட௠பாதையை கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®µà¯à®®à¯."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
-msgstr ""
+msgstr "தவறான வாரà¯à®ªà¯à®ªà¯à®°à¯ மாறி: %களà¯"
#: sphinx/directives/code.py:61
msgid "non-whitespace stripped by dedent"
-msgstr ""
+msgstr "வெணà¯à®®à¯ˆà®¯à®¾à®©à®¤à¯ அலà¯à®²à®¾à®¤à®¤à¯"
#: sphinx/directives/code.py:82
#, python-format
msgid "Invalid caption: %s"
-msgstr ""
+msgstr "தவறான தலைபà¯à®ªà¯à®•à®³à¯"
#: sphinx/directives/code.py:127 sphinx/directives/code.py:277
#: sphinx/directives/code.py:453
#, python-format
msgid "line number spec is out of range(1-%d): %r"
-msgstr ""
+msgstr "வரி எண௠ஸà¯à®ªà¯†à®•à¯ வரமà¯à®ªà®¿à®²à¯ இலà¯à®²à¯ˆ (1- %d): %r"
#: sphinx/directives/code.py:206
#, python-format
msgid "Cannot use both \"%s\" and \"%s\" options"
-msgstr ""
+msgstr "\"%களà¯\" மறà¯à®±à¯à®®à¯ \"%களà¯\" விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯ இரணà¯à®Ÿà¯ˆà®¯à¯à®®à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
#: sphinx/directives/code.py:220
#, python-format
msgid "Include file %r not found or reading it failed"
-msgstr ""
+msgstr "கோபà¯à®ªà¯ %r கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ அலà¯à®²à®¤à¯ அதைப௠படிபà¯à®ªà®¤à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯"
#: sphinx/directives/code.py:223
#, python-format
msgid ""
"Encoding %r used for reading included file %r seems to be wrong, try giving "
"an :encoding: option"
-msgstr ""
+msgstr "சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯ %r எனà¯à®ªà®¤à¯ தவறானதாகத௠தெரிகிறதà¯, à®’à®°à¯: கà¯à®±à®¿à®¯à®¾à®•à¯à®•à®®à¯: விரà¯à®ªà¯à®ªà®®à¯ கொடà¯à®•à¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®µà¯à®®à¯"
#: sphinx/directives/code.py:260
#, python-format
msgid "Object named %r not found in include file %r"
-msgstr ""
+msgstr "%R இல௠காணபà¯à®ªà®Ÿà®¾à®¤ பொரà¯à®³à¯ கோபà¯à®ªà¯ %r அடஙà¯à®•à¯à®®à¯"
#: sphinx/directives/code.py:286
msgid "Cannot use \"lineno-match\" with a disjoint set of \"lines\""
-msgstr ""
+msgstr "\"லினெனோ-மேடà¯à®šà¯\" à® \"கோடà¯à®•à®³à®¿à®©à¯\" ஒதà¯à®¤à®¤à®¾à®• பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
#: sphinx/directives/code.py:291
#, python-format
msgid "Line spec %r: no lines pulled from include file %r"
-msgstr ""
+msgstr "வரி ஸà¯à®ªà¯†à®•à¯ %ஆரà¯: எநà¯à®¤ வரிகளà¯à®®à¯ இலà¯à®²à¯ˆ கோபà¯à®ªà¯ %ஆர௠சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€ கà¯à®³à¯‹à®ªà¯ à®®à¯à®±à¯ˆ %ஆர௠எநà¯à®¤ ஆவணஙà¯à®•à®³à¯à®•à¯à®•à¯à®®à¯ பொரà¯à®¨à¯à®¤à®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€ விலகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஆவணம௠%ஆர௠பறà¯à®±à®¿à®¯ கà¯à®±à®¿à®ªà¯à®ªà¯ உளà¯à®³à®¤à¯"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€ இலà¯à®²à®¾à®¤ ஆவணம௠%r பறà¯à®±à®¿à®¯ கà¯à®±à®¿à®ªà¯à®ªà¯ உளà¯à®³à®¤à¯"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€à®¯à®¿à®²à¯ காணபà¯à®ªà®Ÿà¯à®®à¯ நகல௠நà¯à®´à¯ˆà®µà¯: %களà¯"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
-msgstr ""
+msgstr "பிரிவ௠ஆசிரியரà¯:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ ஆசிரியரà¯:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯ ஆசிரியரà¯:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
-msgstr ""
+msgstr "நூலாசிரியரà¯:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
-msgstr ""
+msgstr ".. ACKS உளà¯à®³à®Ÿà®•à¯à®•à®®à¯ ஒர௠படà¯à®Ÿà®¿à®¯à®²à¯ அலà¯à®²"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
-msgstr ""
+msgstr ".. HLIST உளà¯à®³à®Ÿà®•à¯à®•à®®à¯ ஒர௠படà¯à®Ÿà®¿à®¯à®²à¯ அலà¯à®²"
#: sphinx/directives/patches.py:66
msgid ""
"\":file:\" option for csv-table directive now recognizes an absolute path as"
" a relative path from source directory. Please update your document."
-msgstr ""
+msgstr "\": கோபà¯à®ªà¯:\" சி.எஸà¯.வி-டேபிள௠டைரெகà¯à®Ÿà®¿à®µà¯ விரà¯à®ªà¯à®ªà®®à¯ இபà¯à®ªà¯‹à®¤à¯ ஒர௠மà¯à®´à¯à®®à¯ˆà®¯à®¾à®© பாதையை மூல கோபà¯à®ªà®•à®¤à¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ தொடரà¯à®ªà¯à®Ÿà¯ˆà®¯ பாதையாக à®…à®™à¯à®•à¯€à®•à®°à®¿à®•à¯à®•à®¿à®±à®¤à¯. உஙà¯à®•à®³à¯ ஆவணதà¯à®¤à¯ˆ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®µà¯à®®à¯."
#: sphinx/domains/__init__.py:397
#, python-format
msgid "%s %s"
-msgstr ""
-
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr ""
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr ""
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr ""
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr ""
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr ""
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr ""
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr ""
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr ""
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
+msgstr "%s %s"
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
+msgid "Added in version %s"
msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
msgid "Changed in version %s"
-msgstr ""
+msgstr "பதிபà¯à®ªà¯ %s இல௠மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
#: sphinx/domains/changeset.py:25
#, python-format
msgid "Deprecated since version %s"
-msgstr ""
+msgstr "பதிபà¯à®ªà¯ %s à®®à¯à®¤à®²à¯ நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:71
#, python-format
-msgid "Citation [%s] is not referenced."
-msgstr ""
-
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr ""
+msgid "duplicate citation %s, other instance in %s"
+msgstr "நகல௠மேறà¯à®•à¯‹à®³à¯ %s, %s இல௠மறà¯à®± நிகழà¯à®µà¯"
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
+msgid "Citation [%s] is not referenced."
+msgstr "மேறà¯à®•à¯‹à®³à¯ [%களà¯] கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
-msgstr ""
+msgstr "%s () (உளà¯à®³à®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ செயலà¯à®ªà®¾à®Ÿà¯)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
-msgstr ""
+msgstr "%s () (%s à®®à¯à®±à¯ˆ)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
-msgstr ""
+msgstr "%கள௠() (வகà¯à®ªà¯à®ªà¯)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
-msgstr ""
+msgstr "%கள௠(உலகளாவிய மாறி அலà¯à®²à®¤à¯ மாறிலி)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
-msgstr ""
+msgstr "%s (%s பணà¯à®ªà¯à®•à¯à®•à¯‚à®±à¯)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
-msgstr ""
+msgstr "வாதஙà¯à®•à®³à¯"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "வீசà¯à®•à®¿à®±à®¤à¯"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "வரà¯à®®à®¾à®©à®®à¯"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "திரà¯à®®à¯à®ª வகை"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
-msgstr ""
+msgstr "%கள௠(தொகà¯à®¤à®¿)"
+
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "செயலà¯à®ªà®¾à®Ÿà¯"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
-msgstr ""
+msgstr "à®®à¯à®±à¯ˆ"
+
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "வரà¯à®•à¯à®•à®®à¯"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
-msgstr ""
+msgstr "தகவலà¯à®•à®³à¯"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
-msgstr ""
+msgstr "பணà¯à®ªà¯à®•à¯à®•à¯‚à®±à¯"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
-msgstr ""
+msgstr "%s இன௠%s விளகà¯à®•à®®à¯, %s இல௠மறà¯à®± %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
-msgstr ""
+msgstr "சமனà¯à®ªà®¾à®Ÿà¯ %s இன௠நகல௠லேபிளà¯, %s இல௠மறà¯à®± நிகழà¯à®µà¯"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
-msgstr ""
+msgstr "தவறான MATH_EQREF_FORMAT: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr ""
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%கள௠(உதà¯à®¤à®°à®µà¯)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr ""
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (உதà¯à®¤à®°à®µà¯ விரà¯à®ªà¯à®ªà®®à¯)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%கள௠(பஙà¯à®•à¯)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "உதà¯à®¤à®°à®µà¯"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "உதà¯à®¤à®°à®µà¯-விரà¯à®ªà¯à®ªà®®à¯"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "பஙà¯à®•à¯"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "%s %s இன௠நகல௠விளகà¯à®•à®®à¯, %s இல௠மறà¯à®± நிகழà¯à®µà¯"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (c %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "நகல௠சி அறிவிபà¯à®ªà¯, %s: %s இல௠வரையறà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯. \n அறிவிபà¯à®ªà¯ '.. c: %s :: %s'."
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "அளவà¯à®°à¯à®•à¯à®•à®³à¯"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "திரà¯à®®à¯à®ª மதிபà¯à®ªà¯à®•à®³à¯"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "உறà¯à®ªà¯à®ªà®¿à®©à®°à¯"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "மாறகà¯à®•à¯‚டிய"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "பெரà¯"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "தொழிறà¯à®šà®™à¯à®•à®®à¯"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "கணகà¯à®•à®¾à®³à®°à¯"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "தடà¯à®Ÿà®šà¯à®šà¯ செயà¯à®•"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "செயலà¯à®ªà®¾à®Ÿà¯ அளவà¯à®°à¯"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "வாரà¯à®ªà¯à®ªà¯à®°à¯ அளவà¯à®°à¯à®•à¯à®•à®³à¯"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (c ++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "சி ++ பிரகடனதà¯à®¤à¯ˆ நகலà¯, %களà¯: %s இல௠வரையறà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. \n அறிவிபà¯à®ªà¯ '.. CPP: %s :: %s'."
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "கரà¯à®¤à¯à®¤à¯"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "வாரà¯à®ªà¯à®ªà¯à®°à¯ அளவà¯à®°à¯"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
-msgstr ""
+msgstr "%s () (தொகà¯à®¤à®¿ %s இலà¯)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
-msgstr ""
+msgstr "%s (தொகà¯à®¤à®¿ %s இலà¯)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
-msgstr ""
+msgstr "%கள௠(உளà¯à®³à®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ மாறி)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
-msgstr ""
+msgstr "%கள௠(உளà¯à®³à®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ வகà¯à®ªà¯à®ªà¯)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
-msgstr ""
+msgstr "%கள௠( %s இல௠வகà¯à®ªà¯à®ªà¯)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
-msgstr ""
+msgstr "%s () (%s வகà¯à®ªà¯à®ªà¯ à®®à¯à®±à¯ˆ)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
-msgstr ""
+msgstr "%s () (%s நிலையான à®®à¯à®±à¯ˆ)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
-msgstr ""
+msgstr "%கள௠(%s சொதà¯à®¤à¯)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
-msgstr ""
+msgstr "பைதான௠தொகà¯à®¤à®¿ அடà¯à®Ÿà®µà®£à¯ˆ"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿à®•à®³à¯"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
-msgstr ""
+msgstr "மதிபà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
-msgstr ""
+msgstr "விதிவிலகà¯à®•à¯"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
-msgstr ""
+msgstr "வகà¯à®ªà¯à®ªà¯ à®®à¯à®±à¯ˆ"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
-msgstr ""
+msgstr "நிலையான à®®à¯à®±à¯ˆ"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
-msgstr ""
+msgstr "சொதà¯à®¤à¯"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
-msgstr ""
+msgstr "%s இன௠நகல௠பொரà¯à®³à¯ விளகà¯à®•à®®à¯, %s இல௠உளà¯à®³ பிற நிகழà¯à®µà¯, பயனà¯à®ªà®¾à®Ÿà¯: இலà¯à®²à¯ˆ-கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯: அவறà¯à®±à®¿à®²à¯ ஒனà¯à®±à¯"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
-msgstr ""
+msgstr "கà¯à®±à¯à®•à¯à®•à¯-கà¯à®±à®¿à®ªà¯à®ªà¯à®•à¯à®•à¯ ஒனà¯à®±à¯à®•à¯à®•à¯ மேறà¯à®ªà®Ÿà¯à®Ÿ இலகà¯à®•à¯à®•à®³à¯ %r: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
-msgstr ""
-
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
+msgstr "(நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯)"
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr ""
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "மாறிகளà¯"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "எழà¯à®ªà¯à®ªà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
-msgstr ""
+msgstr "சà¯à®±à¯à®±à¯à®šà¯à®šà¯‚ழல௠மாறி; %களà¯"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
-msgstr ""
+msgstr "தவறான விரà¯à®ªà¯à®ªà®®à®¾à®© விளகà¯à®•à®®à¯ %r, \"OPT\", \"-OPT ARGS\", \"--opt args\", \"/Opt args\" அலà¯à®²à®¤à¯ \"+Opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
-msgstr ""
+msgstr "%S கடà¯à®Ÿà®³à¯ˆ வரி விரà¯à®ªà¯à®ªà®®à¯"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
-msgstr ""
+msgstr "கடà¯à®Ÿà®³à¯ˆ வரி விரà¯à®ªà¯à®ªà®®à¯"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
-msgstr ""
+msgstr "சொறà¯à®•à®³à®žà¯à®šà®¿à®¯à®®à¯ காலதà¯à®¤à®¿à®±à¯à®•à¯ à®®à¯à®©à¯à®©à®¤à®¾à®• இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
-msgstr ""
+msgstr "சொறà¯à®•à®³à®žà¯à®šà®¿à®¯ சொறà¯à®•à®³à¯ வெறà¯à®±à¯ கோடà¯à®•à®³à®¾à®²à¯ பிரிகà¯à®•à®ªà¯à®ªà®Ÿà®•à¯à®•à¯‚டாதà¯"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
-msgstr ""
+msgstr "சொறà¯à®•à®³à®žà¯à®šà®¿à®¯à®®à¯ தவறாகப௠பà¯à®°à®¿à®¨à¯à®¤à¯ கொளà¯à®³à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à®¾à®•à®¤à¯ தெரிகிறதà¯, உளà¯à®¤à®³à¯à®³à®²à¯ˆ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
-msgstr ""
+msgstr "சொறà¯à®•à®³à®žà¯à®šà®¿à®¯ கால"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
-msgstr ""
+msgstr "இலகà¯à®•à®£ டோகà¯à®•à®©à¯"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯ லேபிளà¯"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
-msgstr ""
+msgstr "சà¯à®±à¯à®±à¯à®šà¯à®šà¯‚ழல௠மாறி"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
-msgstr ""
+msgstr "நிரல௠விரà¯à®ªà¯à®ªà®®à¯"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
-msgstr ""
+msgstr "ஆவணமà¯"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ அடà¯à®Ÿà®µà®£à¯ˆ"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
-msgstr ""
+msgstr "தேடல௠பகà¯à®•à®®à¯"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
-msgstr ""
+msgstr "நகல௠லேபிள௠%களà¯, பிற நிகழà¯à®µà¯à®•à®³à¯ %s இலà¯"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
-msgstr ""
+msgstr "%s இன௠%s விளகà¯à®•à®®à¯, %s இல௠மறà¯à®± நிகழà¯à®µà¯"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
-msgstr ""
+msgstr "NUMFIG à®®à¯à®Ÿà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯. : எணà¯à®°à¯†à®ƒà®ªà¯: பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
-msgstr ""
+msgstr "கà¯à®±à¯à®•à¯à®•à¯ கà¯à®±à®¿à®ªà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯. எநà¯à®¤ எணà¯à®£à¯à®®à¯ ஒதà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %களà¯"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
-msgstr ""
+msgstr "இணைபà¯à®ªà¯à®•à¯à®•à¯ தலைபà¯à®ªà¯ இலà¯à®²à¯ˆ: %களà¯"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
-msgstr ""
+msgstr "தவறான numfig_format: %s ( %r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
-msgstr ""
+msgstr "தவறான numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
-msgstr ""
+msgstr "வரையறà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤ லேபிளà¯: %ஆரà¯"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
-msgstr ""
+msgstr "கà¯à®±à¯à®•à¯à®•à¯ கà¯à®±à®¿à®ªà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯. ஒர௠தலைபà¯à®ªà¯ அலà¯à®²à®¤à¯ தலைபà¯à®ªà¯ கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ: %r"
#: sphinx/environment/__init__.py:71
msgid "new config"
-msgstr ""
+msgstr "பà¯à®¤à®¿à®¯ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯"
#: sphinx/environment/__init__.py:72
msgid "config changed"
-msgstr ""
+msgstr "கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
#: sphinx/environment/__init__.py:73
msgid "extensions changed"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯à®•à®³à¯ மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®©"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
-msgstr ""
+msgstr "சà¯à®±à¯à®±à¯à®šà¯à®šà¯‚ழல௠பதிபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®™à¯à®•à®³à¯"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
-msgstr ""
+msgstr "மூல அடைவ௠மாறிவிடà¯à®Ÿà®¤à¯"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
-msgstr ""
+msgstr "இநà¯à®¤ சூழல௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ பிலà¯à®Ÿà®°à¯à®Ÿà®©à¯ பொரà¯à®¨à¯à®¤à®¾à®¤à¯, தயவà¯à®šà¯†à®¯à¯à®¤à¯ மறà¯à®±à¯Šà®°à¯ கோடà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ கோபà¯à®ªà®•à®¤à¯à®¤à¯ˆà®¤à¯ தேரà¯à®µà¯à®šà¯†à®¯à¯à®•."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
-msgstr ""
+msgstr "%S இல௠ஆவணஙà¯à®•à®³à¯ˆ ஸà¯à®•à¯‡à®©à¯ செயà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
-msgstr ""
+msgstr "டொமைன௠%ஆர௠பதிவ௠செயà¯à®¯à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
-msgstr ""
+msgstr "எநà¯à®¤ டோகà¯à®Ÿà¯à®°à¯€à®¯à®¿à®²à¯à®®à¯ ஆவணம௠சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
-msgstr ""
+msgstr "சà¯à®¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ டோகà¯à®Ÿà¯à®°à¯€ கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯. பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
#: sphinx/environment/adapters/indexentries.py:69
#, python-format
msgid "see %s"
-msgstr ""
+msgstr "%கள௠பாரà¯à®•à¯à®•à®µà¯à®®à¯"
#: sphinx/environment/adapters/indexentries.py:73
#, python-format
msgid "see also %s"
-msgstr ""
+msgstr "%கள௠மேலà¯à®®à¯ காணà¯à®•"
#: sphinx/environment/adapters/indexentries.py:76
#, python-format
msgid "unknown index entry type %r"
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ நà¯à®´à¯ˆà®µà¯ வகை %r"
#: sphinx/environment/adapters/indexentries.py:187
#: sphinx/templates/latex/sphinxmessages.sty_t:11
msgid "Symbols"
-msgstr ""
+msgstr "சினà¯à®©à®™à¯à®•à®³à¯"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
-msgstr ""
+msgstr "சà¯à®±à¯à®±à®±à®¿à®•à¯à®•à¯ˆ டோகà¯à®Ÿà¯à®°à¯€ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯ கணà¯à®Ÿà®±à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®©, பà¯à®±à®•à¯à®•à®£à®¿à®¤à¯à®¤à®²à¯: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€ ஒர௠தலைபà¯à®ªà¯ இலà¯à®²à®¾à®¤ ஆவணம௠%r கà¯à®•à¯ கà¯à®±à®¿à®ªà¯à®ªà¯ உளà¯à®³à®¤à¯: எநà¯à®¤ இணைபà¯à®ªà¯à®®à¯ உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤à¯"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€ சேரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®¾à®¤ ஆவணம௠%r பறà¯à®±à®¿à®¯ கà¯à®±à®¿à®ªà¯à®ªà¯ உளà¯à®³à®¤à¯"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
-msgstr ""
+msgstr "படக௠கோபà¯à®ªà¯ படிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯: %களà¯"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
-msgstr ""
+msgstr "படக௠கோபà¯à®ªà¯ %s படிகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à®¤à¯: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
-msgstr ""
+msgstr "கோபà¯à®ªà¯ˆà®ªà¯ பதிவிறகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯: %களà¯"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
-msgstr ""
+msgstr "%கள௠à®à®±à¯à®•à®©à®µà¯‡ பிரிவ௠எணà¯à®•à®³à¯ˆ ஒதà¯à®•à¯à®•à®¿à®¯à¯à®³à¯à®³à®© (உளà¯à®³à®®à¯ˆà®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ எணà¯à®£à¯à®³à¯à®³ டோகà¯à®Ÿà¯à®°à¯€?)"
#: sphinx/ext/apidoc.py:86
#, python-format
msgid "Would create file %s."
-msgstr ""
+msgstr "கோபà¯à®ªà¯ %s ஠உரà¯à®µà®¾à®•à¯à®•à¯à®®à¯."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2427,228 +2481,228 @@ msgid ""
"excluded from generation.\n"
"\n"
"Note: By default this script will not overwrite already created files."
-msgstr ""
+msgstr "பைதான௠தொகà¯à®¤à®¿à®•à®³à¯ மறà¯à®±à¯à®®à¯ தொகà¯à®ªà¯à®ªà¯à®•à®³à¯à®•à¯à®•à¯ <தொகà¯à®¤à®¿_பாதà¯> இல௠மீணà¯à®Ÿà¯à®®à¯ மீணà¯à®Ÿà¯à®®à¯ பாரà¯à®•à¯à®•à®µà¯à®®à¯ \n <uptical_path> இல௠ஒர௠தொகà¯à®ªà¯à®ªà¯à®•à¯à®•à¯ ஆடà¯à®Ÿà¯‹à®®à¯‹à®Ÿà¯‚ல௠வழிமà¯à®±à¯ˆà®•à®³à¯à®Ÿà®©à¯ ஒர௠ஓயà¯à®µà¯ கோபà¯à®ªà¯. \n\n <Excoude_pattern> கள௠கோபà¯à®ªà¯ மறà¯à®±à¯à®®à¯/அலà¯à®²à®¤à¯ அடைவ௠வடிவஙà¯à®•à®³à®¾à®• இரà¯à®•à¯à®•à®²à®¾à®®à¯ \n தலைமà¯à®±à¯ˆà®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ விலகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯. \n\n கà¯à®±à®¿à®ªà¯à®ªà¯: இயலà¯à®ªà®¾à®• இநà¯à®¤ ஸà¯à®•à®¿à®°à®¿à®ªà¯à®Ÿà¯ à®à®±à¯à®•à®©à®µà¯‡ உரà¯à®µà®¾à®•à¯à®•à®¿à®¯ கோபà¯à®ªà¯à®•à®³à¯ˆ மேலெழà¯à®¤à®¾à®¤à¯."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
-msgstr ""
+msgstr "ஆவணதà¯à®¤à®¿à®±à¯à®•à®¾à®© தொகà¯à®¤à®¿à®•à¯à®•à®¾à®© பாதை"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
-msgstr ""
+msgstr "fnmatch- பாணி கோபà¯à®ªà¯ மறà¯à®±à¯à®®à¯/அலà¯à®²à®¤à¯ கோபà¯à®ªà®• வடிவஙà¯à®•à®³à¯ தலைமà¯à®±à¯ˆà®¯à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ விலகà¯à®•"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
-msgstr ""
+msgstr "அனைதà¯à®¤à¯ வெளியீடà¯à®Ÿà¯ˆà®¯à¯à®®à¯ வைகà¯à®• அடைவà¯"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
-msgstr ""
+msgstr "TOC இல௠காணà¯à®ªà®¿à®•à¯à®• சபà¯à®®à¯‹à®Ÿà¯‚லà¯à®•à®³à®¿à®©à¯ அதிகபடà¯à®š ஆழம௠(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
-msgstr ""
+msgstr "இரà¯à®•à¯à®•à¯à®®à¯ கோபà¯à®ªà¯à®•à®³à¯ˆ மேலெழà¯à®¤à®µà¯à®®à¯"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ இணைபà¯à®ªà¯à®•à®³à¯ˆà®ªà¯ பினà¯à®ªà®±à¯à®±à®µà¯à®®à¯. Cologetive.recipe.omelette உடன௠இணைநà¯à®¤à®¾à®²à¯ சகà¯à®¤à®¿à®µà®¾à®¯à¯à®¨à¯à®¤à®µà®°à¯."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
-msgstr ""
+msgstr "கோபà¯à®ªà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®¾à®®à®²à¯ ஸà¯à®•à®¿à®°à®¿à®ªà¯à®Ÿà¯ˆ இயகà¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
-msgstr ""
+msgstr "ஒவà¯à®µà¯Šà®°à¯ தொகà¯à®¤à®¿à®•à¯à®•à¯à®®à¯ ஆவணஙà¯à®•à®³à¯ˆ அதன௠சொநà¯à®¤ பகà¯à®•à®¤à¯à®¤à®¿à®²à¯ வைகà¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
-msgstr ""
+msgstr "\"_ பிரைவேடà¯\" தொகà¯à®¤à®¿à®•à®³à¯ சேரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
-msgstr ""
+msgstr "உளà¯à®³à®Ÿà®•à¯à®• அடà¯à®Ÿà®µà®£à¯ˆà®¯à®¿à®©à¯ கோபà¯à®ªà¯ பெயர௠(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: தொகà¯à®¤à®¿à®•à®³à¯)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
-msgstr ""
+msgstr "உளà¯à®³à®Ÿà®•à¯à®•à®•à¯ கோபà¯à®ªà®¿à®©à¯ அடà¯à®Ÿà®µà®£à¯ˆà®¯à¯ˆ உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà®¾à®®à¯"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿/தொகà¯à®ªà¯à®ªà¯ தொகà¯à®ªà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© தலைபà¯à®ªà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà®¾à®®à¯ (எ.கா. ஆவணஙà¯à®•à®³à¯ à®à®±à¯à®•à®©à®µà¯‡ அவறà¯à®±à¯ˆà®•à¯ கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ ஆவணஙà¯à®•à®³à¯ˆ சபà¯à®®à¯‹à®Ÿà¯‚ல௠ஆவணஙà¯à®•à®³à¯à®•à¯à®•à¯ à®®à¯à®©à¯ வைகà¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
-msgstr ""
+msgstr "PEP-0420 மறைமà¯à®• பெயரà¯à®µà¯†à®³à®¿à®•à®³à®¿à®©à¯ விவரகà¯à®•à¯à®±à®¿à®ªà¯à®ªà®¿à®©à¯ படி தொகà¯à®¤à®¿ பாதைகளை விளகà¯à®•à¯à®™à¯à®•à®³à¯"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
-msgstr ""
+msgstr "கோபà¯à®ªà¯ பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯ (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
-msgstr ""
+msgstr "ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯-கà¯à®¯à¯‚கà¯à®¸à¯à®Ÿà®¾à®°à¯à®Ÿà¯à®Ÿà¯à®Ÿà®©à¯ ஒர௠மà¯à®´à¯ திடà¯à®Ÿà®¤à¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
-msgstr ""
+msgstr "sys.path உடன௠தொகà¯à®¤à®¿_பாதà¯, --full கொடà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯ போத௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
-msgstr ""
+msgstr "திடà¯à®Ÿ பெயர௠(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: ரூட௠தொகà¯à®¤à®¿ பெயரà¯)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
-msgstr ""
+msgstr "திடà¯à®Ÿ ஆசிரியர௠(களà¯), -ஃபà¯à®²à¯ வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯ போத௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
-msgstr ""
+msgstr "திடà¯à®Ÿ பதிபà¯à®ªà¯, -ஃபà¯à®²à¯ வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯ போத௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
-msgstr ""
+msgstr "திடà¯à®Ÿ வெளியீடà¯, --full வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯ போத௠பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯, இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ--டாகà¯-பதவியே"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
-msgstr ""
+msgstr "நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯ விரà¯à®ªà¯à®ªà®™à¯à®•à®³à¯"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
-msgstr ""
+msgstr "%கள௠ஒர௠அடைவ௠அலà¯à®²."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
-msgstr ""
+msgstr "\"%களà¯\" பிரிவ௠\"%களà¯\" எனà¯à®±à¯ பெயரிடபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
-msgstr ""
+msgstr "%s இல௠தவறான ரீஜெகà¯à®¸à¯ %r"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
-msgstr ""
+msgstr "à®®à¯à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஆதாரஙà¯à®•à®³à®¿à®²à¯ கவரேஜ௠சோதனை செயà¯à®µà®¤à¯, %(வெளிபà¯à®ªà¯à®±) spython.txt இல௠மà¯à®Ÿà®¿à®µà¯à®•à®³à¯ˆà®ªà¯ பாரà¯à®™à¯à®•à®³à¯."
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
-msgstr ""
+msgstr "கவரேஜà¯_சி_ரெஜெகà¯à®¸à®¿à®²à¯ தவறான ரீஜெகà¯à®¸à¯ %ஆரà¯"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
-msgstr ""
+msgstr "ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤ சி à®à®ªà®¿à®: கோபà¯à®ªà¯ %s இல௠%s [ %s]"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ %கள௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %களà¯"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
-msgstr ""
+msgstr "ஆவணமறà¯à®± பைதான௠செயலà¯à®ªà®¾à®Ÿà¯: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
-msgstr ""
+msgstr "ஆவணமறà¯à®± பைதான௠வகà¯à®ªà¯à®ªà¯: %கள௠:: %களà¯"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
-msgstr ""
+msgstr "ஆவணமறà¯à®± பைதான௠மà¯à®±à¯ˆ: %கள௠:: %s :: %s"
#: sphinx/ext/doctest.py:115
#, python-format
msgid "missing '+' or '-' in '%s' option."
-msgstr ""
+msgstr "'%s' விரà¯à®ªà¯à®ªà®¤à¯à®¤à®¿à®²à¯ '+' அலà¯à®²à®¤à¯ '-' காணவிலà¯à®²à¯ˆ."
#: sphinx/ext/doctest.py:120
#, python-format
msgid "'%s' is not a valid option."
-msgstr ""
+msgstr "'%களà¯' சரியான விரà¯à®ªà¯à®ªà®®à¯ அலà¯à®²."
#: sphinx/ext/doctest.py:134
#, python-format
msgid "'%s' is not a valid pyversion option"
-msgstr ""
+msgstr "'%களà¯' எனà¯à®ªà®¤à¯ செலà¯à®²à¯à®ªà®Ÿà®¿à®¯à®¾à®•à¯à®®à¯ பைவெரà¯à®·à®©à¯ விரà¯à®ªà¯à®ªà®®à¯ அலà¯à®²"
#: sphinx/ext/doctest.py:220
msgid "invalid TestCode type"
-msgstr ""
+msgstr "தவறான டெஸà¯à®Ÿà¯à®•à¯‹à®Ÿà¯ வகை"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
-msgstr ""
+msgstr "à®®à¯à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஆதாரஙà¯à®•à®³à®¿à®²à¯ ஆவணஙà¯à®•à®³à®¿à®©à¯ சோதனை, %(வெளிபà¯à®ªà¯à®±) s/output.txt இன௠மà¯à®Ÿà®¿à®µà¯à®•à®³à¯ˆà®ªà¯ பாரà¯à®™à¯à®•à®³à¯."
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
-msgstr ""
+msgstr "%s இல௠%s தொகà¯à®¤à®¿à®¯à®¿à®²à¯ கà¯à®±à®¿à®¯à¯€à®Ÿà¯/வெளியீட௠இலà¯à®²à¯ˆ: %s: %s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
-msgstr ""
+msgstr "தவறான ஆவணக௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ பà¯à®±à®•à¯à®•à®£à®¿à®¤à¯à®¤à®²à¯: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
-msgstr ""
+msgstr "==================== மெதà¯à®µà®¾à®• வாசிபà¯à®ªà¯ காலஙà¯à®•à®³à¯ ========================="
#: sphinx/ext/extlinks.py:82
#, python-format
msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
-msgstr ""
+msgstr "ஹாரà¯à®Ÿà¯à®•à¯‹à®Ÿà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ இணைபà¯à®ªà¯ %R ஠எகà¯à®¸à¯à®Ÿà¯à®²à®¿à®™à¯à®•à¯ மூலம௠மாறà¯à®±à®²à®¾à®®à¯ (அதறà¯à®•à¯ பதிலாக %R à®à®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®µà¯à®®à¯)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
-msgstr ""
+msgstr "கிராபà¯à®µà®¿à®¸à¯ டைரெகà¯à®Ÿà®¿à®µà¯ உளà¯à®³à®Ÿà®•à¯à®•à®®à¯ மறà¯à®±à¯à®®à¯ கோபà¯à®ªà¯ பெயர௠வாதம௠இரணà¯à®Ÿà¯ˆà®¯à¯à®®à¯ கொணà¯à®Ÿà®¿à®°à¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
-msgstr ""
+msgstr "வெளிபà¯à®ªà¯à®± கிராபà¯à®µà®¿à®¸à¯ கோபà¯à®ªà¯ %r கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ அலà¯à®²à®¤à¯ அதைப௠படிபà¯à®ªà®¤à¯ தோலà¯à®µà®¿à®¯à¯à®±à¯à®±à®¤à¯"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
-msgstr ""
+msgstr "உளà¯à®³à®Ÿà®•à¯à®•à®®à¯ இலà¯à®²à®¾à®®à®²à¯ \"கிராஃபà¯à®µà®¿à®¸à¯\" உதà¯à®¤à®°à®µà¯ˆà®ªà¯ பà¯à®±à®•à¯à®•à®£à®¿à®¤à¯à®¤à®²à¯."
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
-msgstr ""
+msgstr "braphviz_dot இயஙà¯à®•à®•à¯à®•à¯‚டிய பாதை அமைகà¯à®•à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯! %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
-msgstr ""
+msgstr "DOT கடà¯à®Ÿà®³à¯ˆ %R ஠இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ (கிராஃபà¯à®µà®¿à®¸à¯ வெளியீடà¯à®Ÿà®¿à®±à¯à®•à¯ தேவை), கிராஃபà¯à®µà®¿à®¸à¯_டோட௠அமைபà¯à®ªà¯ˆà®šà¯ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2656,9 +2710,9 @@ msgid ""
"%r\n"
"[stdout]\n"
"%r"
-msgstr ""
+msgstr "பிழை பிழையà¯à®Ÿà®©à¯ வெளியேறியதà¯: \n [stderr] \n %r \n [stdout] \n %r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2666,37 +2720,37 @@ msgid ""
"%r\n"
"[stdout]\n"
"%r"
-msgstr ""
+msgstr "பà¯à®³à¯à®³à®¿ ஒர௠வெளியீடà¯à®Ÿà¯ கோபà¯à®ªà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà®¿à®²à¯à®²à¯ˆ: \n [stderr] \n %r \n [stdout] \n %r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
-msgstr ""
+msgstr "braphviz_output_format 'png', 'svg' இல௠ஒனà¯à®±à®¾à®• இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯, ஆனால௠%r ஆகà¯à®®à¯"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
-msgstr ""
+msgstr "பà¯à®³à¯à®³à®¿ கà¯à®±à®¿à®¯à¯€à®Ÿà¯ %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
-msgstr ""
+msgstr "[வரைபடமà¯: %களà¯]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
-msgstr ""
+msgstr "[வரைபடமà¯]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
"\n"
"Traceback: %s"
-msgstr ""
+msgstr "பட மாறà¯à®±à¯ கடà¯à®Ÿà®³à¯ˆ %r ஠இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. 'sphinx.ext.imgconverter' இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆà®¯à®¾à®• இமேஜà¯à®®à¯‡à®œà®¿à®•à¯ தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. இத௠நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®°à¯à®ªà¯à®ªà®¤à¯ˆ உறà¯à®¤à®¿à®šà¯†à®¯à¯à®•, அலà¯à®²à®¤à¯ தனிபà¯à®ªà®¯à®©à¯ மாறà¯à®±à¯ கடà¯à®Ÿà®³à¯ˆà®•à¯à®•à¯ 'படமà¯_கனà¯à®µà¯†à®°à¯à®Ÿà¯à®Ÿà®°à¯' விரà¯à®ªà¯à®ªà®¤à¯à®¤à¯ˆ அமைகà¯à®•à®µà¯à®®à¯. \n\n டà¯à®°à¯‡à®¸à¯à®ªà¯‡à®•à¯: %களà¯"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2704,314 +2758,319 @@ msgid ""
"%r\n"
"[stdout]\n"
"%r"
-msgstr ""
+msgstr "பிழையà¯à®Ÿà®©à¯ வெளியேறà¯à®¤à®²à¯: \n [stderr] \n %r \n [stdout] \n %r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
-msgstr ""
+msgstr "கடà¯à®Ÿà®³à¯ˆ %r ஠இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯, பட_கனà¯à®µà¯†à®°à¯à®Ÿà¯à®Ÿà®°à¯ அமைபà¯à®ªà¯ˆ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
-msgstr ""
+msgstr "Latex கடà¯à®Ÿà®³à¯ˆ %R ஠இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ (கணித காடà¯à®šà®¿à®•à¯à®•à¯ தேவை), imgmath_latex அமைபà¯à®ªà¯ˆà®šà¯ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
-msgstr ""
+msgstr "%s கடà¯à®Ÿà®³à¯ˆ %R ஠இயகà¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯ (கணித காடà¯à®šà®¿à®•à¯à®•à¯ தேவை), imgmath_ %s அமைபà¯à®ªà¯ˆ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
-msgstr ""
+msgstr "லேடெகà¯à®¸à¯ %ஆரà¯: %கள௠காடà¯à®šà®¿"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
-msgstr ""
+msgstr "இனà¯à®²à¯ˆà®©à¯ லேடெகà¯à®¸à¯ %ஆரà¯: %களà¯"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
-msgstr ""
+msgstr "இநà¯à®¤ சமனà¯à®ªà®¾à®Ÿà¯à®Ÿà®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
-msgstr ""
+msgstr "இனà¯à®Ÿà¯†à®°à¯à®¸à¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ சரகà¯à®•à¯ நகரà¯à®¨à¯à®¤à®¤à¯: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
-msgstr ""
+msgstr "%s இலிரà¯à®¨à¯à®¤à¯ இனà¯à®Ÿà®°à¯à®¸à¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ சரகà¯à®•à¯à®•à®³à¯ˆ à®à®±à¯à®±à¯à®•à®¿à®±à®¤à¯ ..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
-msgstr ""
+msgstr "சில சரகà¯à®•à¯à®•à®³à¯à®Ÿà®©à¯ சில சிகà¯à®•à®²à¯à®•à®³à¯ˆ எதிரà¯à®•à¯Šà®£à¯à®Ÿà®¤à¯, ஆனால௠அவரà¯à®•à®³à¯ வேலை மாறà¯à®±à¯ வழிகளைக௠கொணà¯à®Ÿà®¿à®°à¯à®¨à¯à®¤à®©à®°à¯:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
-msgstr ""
+msgstr "பினà¯à®µà®°à¯à®®à¯ சிகà¯à®•à®²à¯à®•à®³à¯à®Ÿà®©à¯ எநà¯à®¤ சரகà¯à®•à¯à®•à®³à¯ˆà®¯à¯à®®à¯ அடையத௠தவறிவிடà¯à®Ÿà®¤à¯:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
-msgstr ""
+msgstr "( %s v %s இலà¯)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
+msgstr "( %s இலà¯)"
+
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
-msgstr ""
+msgstr "வெளிபà¯à®ªà¯à®± %s: %S கà¯à®±à®¿à®ªà¯à®ªà¯ இலகà¯à®•à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
-msgstr ""
+msgstr "இனà¯à®Ÿà®°à¯à®¸à¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ அடையாளஙà¯à®•à®¾à®Ÿà¯à®Ÿà®¿ %ஆர௠சரம௠அலà¯à®². பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
-msgstr ""
+msgstr "Intersphinx_mapph [ %s], பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
-msgstr ""
+msgstr "[மூல]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
-msgstr ""
+msgstr "டோடோ"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
-msgstr ""
+msgstr "டோடோ நà¯à®´à¯ˆà®µà¯ காணபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %களà¯"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
-msgstr ""
+msgstr "<< அசல௠நà¯à®´à¯ˆà®µà¯ >>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
-msgstr ""
+msgstr "(<< அசல௠நà¯à®´à¯ˆà®µà¯ >> %s, வரி %d இல௠அமைநà¯à®¤à¯à®³à¯à®³à®¤à¯.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
-msgstr ""
+msgstr "அசல௠நà¯à®´à¯ˆà®µà¯"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ˆ à®®à¯à®©à¯à®©à®¿à®²à¯ˆà®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®±à®¤à¯ ..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
-msgstr ""
+msgstr "[டாகà¯à®¸à¯]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
-msgstr ""
+msgstr "தொகà¯à®¤à®¿ கà¯à®±à®¿à®¯à¯€à®Ÿà¯"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
-msgstr ""
+msgstr "<h1> %s </h1> கà¯à®•à®¾à®© மூலக௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
-msgstr ""
+msgstr "கணà¯à®£à¯‹à®Ÿà¯à®Ÿà®®à¯: தொகà¯à®¤à®¿ கà¯à®±à®¿à®¯à¯€à®Ÿà¯"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
-msgstr ""
+msgstr "<H1> எநà¯à®¤ கà¯à®±à®¿à®¯à¯€à®Ÿà¯ கிடைகà¯à®•à¯à®®à¯ அனைதà¯à®¤à¯ தொகà¯à®¤à®¿à®•à®³à¯à®®à¯ </H1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
-msgstr ""
+msgstr "உறà¯à®ªà¯à®ªà®¿à®©à®°à¯-வரிசை விரà¯à®ªà¯à®ªà®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© தவறான மதிபà¯à®ªà¯: %களà¯"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
-msgstr ""
+msgstr "வகà¯à®ªà¯à®ªà¯-டாகà¯-ஃபà¯à®°à®®à¯ விரà¯à®ªà¯à®ªà®¤à¯à®¤à®¿à®±à¯à®•à®¾à®© தவறான மதிபà¯à®ªà¯: %களà¯"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
-msgstr ""
+msgstr "ஆடà¯à®Ÿà¯‹%s (%r) கà¯à®•à®¾à®© தவறான கையொபà¯à®ªà®®à¯"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
-msgstr ""
+msgstr "%s: %s கà¯à®•à®¾à®© வாதஙà¯à®•à®³à¯ˆ வடிவமைகà¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ பிழை"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
-msgstr ""
+msgstr "ஆடà¯à®Ÿà¯‹à®Ÿà¯‹à®•à¯:%s.%s (%r) ஠ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯, பினà¯à®µà®°à¯à®®à¯ விதிவிலகà¯à®•à¯ எழà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: \n %களà¯"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
"\"module\" or \"currentmodule\" directive in the document, or giving an "
"explicit module name)"
-msgstr ""
+msgstr "தனà¯à®©à®¿à®¯à®•à¯à®•à®®à®¯à®®à®¾à®•à¯à®•à®²à¯ %r கà¯à®•à¯ எநà¯à®¤ தொகà¯à®¤à®¿ இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯ வேணà¯à®Ÿà¯à®®à¯ எனà¯à®±à¯ தெரியவிலà¯à®²à¯ˆ (ஆவணதà¯à®¤à®¿à®²à¯ ஒர௠\"தொகà¯à®¤à®¿\" அலà¯à®²à®¤à¯ \"தறà¯à®ªà¯‹à®¤à¯ˆà®¯ உரà¯à®µà®®à¯\" கடà¯à®Ÿà®³à¯ˆà®¯à¯ˆ வைகà¯à®• à®®à¯à®¯à®±à¯à®šà®¿à®•à¯à®•à®µà¯à®®à¯ அலà¯à®²à®¤à¯ வெளிபà¯à®ªà®Ÿà¯ˆà®¯à®¾à®© தொகà¯à®¤à®¿ பெயரைக௠கொடà¯à®•à¯à®•à®µà¯à®®à¯)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
-msgstr ""
+msgstr "கேலி செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ பொரà¯à®³à¯ கணà¯à®Ÿà®±à®¿à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
-msgstr ""
+msgstr "%s: %s கà¯à®•à®¾à®© கையொபà¯à®ªà®¤à¯à®¤à¯ˆ வடிவமைகà¯à®•à¯à®®à¯à®ªà¯‹à®¤à¯ பிழை"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
-msgstr ""
+msgstr "\"::\" ஆடà¯à®Ÿà¯‹à®®à¯‹à®Ÿà¯‚ல௠பெயரில௠அரà¯à®¤à¯à®¤à®®à®²à¯à®²"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
-msgstr ""
+msgstr "தானியஙà¯à®•à¯ %s கà¯à®•à¯ வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கையொபà¯à®ª வாதஙà¯à®•à®³à¯ அலà¯à®²à®¤à¯ திரà¯à®®à¯à®ª சிறà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
-msgstr ""
+msgstr "__all__ எனà¯à®ªà®¤à¯ சரஙà¯à®•à®³à®¿à®©à¯ படà¯à®Ÿà®¿à®¯à®²à®¾à®• இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯, %R (தொகà¯à®¤à®¿ %s இலà¯) அலà¯à®² - __all__ ஠பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®¿à®±à®¤à¯"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ பணà¯à®ªà¯à®•à¯à®•à¯‚ற௠பினà¯à®µà®°à¯à®®à®¾à®±à¯: உறà¯à®ªà¯à®ªà®¿à®©à®°à¯à®•à®³à¯: விரà¯à®ªà¯à®ªà®®à¯: தொகà¯à®¤à®¿ %களà¯, பணà¯à®ªà¯à®•à¯à®•à¯‚ற௠%களà¯"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
-msgstr ""
+msgstr "%S: %s கà¯à®•à®¾à®© செயலà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ கையொபà¯à®ªà®¤à¯à®¤à¯ˆà®ªà¯ பெறà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
-msgstr ""
+msgstr "%S: %s கà¯à®•à¯ ஒர௠கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà®¾à®³à®°à¯ கையொபà¯à®ªà®¤à¯à®¤à¯ˆà®ªà¯ பெறà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
-msgstr ""
+msgstr "தளஙà¯à®•à®³à¯: %களà¯"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
-msgstr ""
+msgstr "பொரà¯à®³à¯ %s இல௠உளà¯à®³ பணà¯à®ªà¯à®•à¯à®•à¯‚ற௠%s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
-msgstr ""
+msgstr "%கள௠மாறà¯à®±à¯à®ªà¯à®ªà¯†à®¯à®°à¯"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
-msgstr ""
+msgstr "டைபà¯à®µà®¾à®°à®¿à®©à¯ மாறà¯à®±à¯à®ªà¯à®ªà¯†à®¯à®°à¯ (%களà¯)"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
-msgstr ""
+msgstr "%S கà¯à®•à¯ ஒர௠மà¯à®±à¯ˆ கையொபà¯à®ªà®¤à¯à®¤à¯ˆà®ªà¯ பெறà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
-msgstr ""
+msgstr "தவறான __ ஸà¯à®²à®¾à®Ÿà¯ __ %s இல௠காணபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
-msgstr ""
+msgstr "%R: %s கà¯à®•à®¾à®© இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ வாத மதிபà¯à®ªà¯ˆ அலசà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
-msgstr ""
+msgstr "%R கà¯à®•à®¾à®© கையொபà¯à®ªà®¤à¯à®¤à¯ˆ பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯: அளவà¯à®°à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
-msgstr ""
+msgstr "%R: %s கà¯à®•à¯ Type_comment ஠பாகà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
-msgstr ""
+msgstr "தனà¯à®©à®¿à®¯à®•à¯à®• கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯ விலகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ ஆவணம௠%r. பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
-msgstr ""
+msgstr "தனà¯à®©à®¿à®¯à®•à¯à®•: STUB கோபà¯à®ªà¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ %r. உஙà¯à®•à®³à¯ தனà¯à®©à®¿à®¯à®•à¯à®•_ஜெனரேட௠அமைபà¯à®ªà¯ˆ சரிபாரà¯à®•à¯à®•à®µà¯à®®à¯."
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
-msgstr ""
+msgstr "தலைபà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ தனà¯à®©à®¿à®¯à®•à¯à®• தேவைபà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯: டோகà¯à®Ÿà¯à®°à¯€: விரà¯à®ªà¯à®ªà®®à¯. பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
"Possible hints:\n"
"%s"
-msgstr ""
+msgstr "தனà¯à®©à®¿à®¯à®•à¯à®•: %s ஠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿. \n சாதà¯à®¤à®¿à®¯à®®à®¾à®© கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯: \n %களà¯"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
-msgstr ""
+msgstr "பெயர௠%s எனà¯à®± பெயரை அலசத௠தவறிவிடà¯à®Ÿà®¤à¯"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
-msgstr ""
+msgstr "பொரà¯à®³à¯ %s ஠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®µà®¤à®¿à®²à¯ தோலà¯à®µà®¿"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
-msgstr ""
+msgstr "autosummary_generate: கோபà¯à®ªà¯ கிடைகà¯à®•à®µà®¿à®²à¯à®²à¯ˆ: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3020,17 +3079,17 @@ msgstr ""
msgid ""
"autosummary: failed to determine %r to be documented, the following exception was raised:\n"
"%s"
-msgstr ""
+msgstr "தனà¯à®©à®¿à®¯à®•à¯à®•: ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà®¿à®¯ %R ஠தீரà¯à®®à®¾à®©à®¿à®•à¯à®•à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯, பினà¯à®µà®°à¯à®®à¯ விதிவிலகà¯à®•à¯ எழà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯: \n %களà¯"
#: sphinx/ext/autosummary/generate.py:470
#, python-format
msgid "[autosummary] generating autosummary for: %s"
-msgstr ""
+msgstr "[தனà¯à®©à®¿à®¯à®•à¯à®•] தனà¯à®©à®¿à®¯à®•à¯à®•à®¤à¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®•à¯à®¤à®²à¯: %களà¯"
#: sphinx/ext/autosummary/generate.py:474
#, python-format
msgid "[autosummary] writing to %s"
-msgstr ""
+msgstr "[தனà¯à®©à®¿à®¯à®•à¯à®•] %கள௠எழà¯à®¤à¯à®¤à®²à¯"
#: sphinx/ext/autosummary/generate.py:517
#, python-format
@@ -3038,7 +3097,7 @@ msgid ""
"[autosummary] failed to import %s.\n"
"Possible hints:\n"
"%s"
-msgstr ""
+msgstr "[தனà¯à®©à®¿à®¯à®•à¯à®•] %s ஠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®¤à¯ தவறிவிடà¯à®Ÿà®¤à¯. \n சாதà¯à®¤à®¿à®¯à®®à®¾à®© கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯: \n %களà¯"
#: sphinx/ext/autosummary/generate.py:690
msgid ""
@@ -3053,643 +3112,641 @@ msgid ""
"``sphinx.ext.autosummary`` Python module and can be read using::\n"
"\n"
" pydoc sphinx.ext.autosummary\n"
-msgstr ""
+msgstr "தனà¯à®©à®¿à®¯à®•à¯à®• வழிமà¯à®±à¯ˆà®•à®³à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ மறà¯à®šà¯€à®°à®®à¯ˆà®ªà¯à®ªà¯ டெகà¯à®¸à¯à®Ÿà¯ˆ உரà¯à®µà®¾à®•à¯à®•à®µà¯à®®à¯. \n\n ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯-ஆடà¯à®Ÿà¯‹à®œà¯†à®©à¯ எனà¯à®ªà®¤à¯ sphinx.ext.autosummary.generate கà¯à®•à¯ ஒர௠மà¯à®©à¯à®©à®£à®¿à®¯à®¿à®²à¯ உளà¯à®³à®¤à¯. இத௠உரà¯à®µà®¾à®•à¯à®•à¯à®•à®¿à®±à®¤à¯ \n இல௠உளà¯à®³ தனà¯à®©à®¿à®¯à®•à¯à®• வழிமà¯à®±à¯ˆà®•à®³à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ மறà¯à®šà¯€à®°à®®à¯ˆà®ªà¯à®ªà¯ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ கோபà¯à®ªà¯à®•à®³à¯ \n வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ உளà¯à®³à¯€à®Ÿà¯à®Ÿà¯ கோபà¯à®ªà¯à®•à®³à¯. \n\n தனà¯à®©à®¿à®¯à®•à¯à®• உதà¯à®¤à®°à®µà®¿à®©à¯ வடிவம௠ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯ \n `` sphinx.ext.autosummary`` பைதான௠தொகà¯à®¤à®¿ மறà¯à®±à¯à®®à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®¿ படிகà¯à®•à®²à®¾à®®à¯ :: \n\n pydoc sphinx.ext.autosummary"
#: sphinx/ext/autosummary/generate.py:707
msgid "source files to generate rST files for"
-msgstr ""
+msgstr "RST கோபà¯à®ªà¯à®•à®³à¯ˆ உரà¯à®µà®¾à®•à¯à®• மூல கோபà¯à®ªà¯à®•à®³à¯"
#: sphinx/ext/autosummary/generate.py:711
msgid "directory to place all output in"
-msgstr ""
+msgstr "அனைதà¯à®¤à¯ வெளியீடà¯à®Ÿà¯ˆà®¯à¯à®®à¯ வைகà¯à®• கோபà¯à®ªà®•à®®à¯"
#: sphinx/ext/autosummary/generate.py:714
#, python-format
msgid "default suffix for files (default: %(default)s)"
-msgstr ""
+msgstr "கோபà¯à®ªà¯à®•à®³à¯à®•à¯à®•à®¾à®© இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ பினà¯à®©à¯Šà®Ÿà¯à®Ÿà¯ (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: %(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ) களà¯)"
#: sphinx/ext/autosummary/generate.py:718
#, python-format
msgid "custom template directory (default: %(default)s)"
-msgstr ""
+msgstr "தனிபà¯à®ªà®¯à®©à¯ வாரà¯à®ªà¯à®ªà¯à®°à¯ அடைவ௠(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: %(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ) களà¯)"
#: sphinx/ext/autosummary/generate.py:722
#, python-format
msgid "document imported members (default: %(default)s)"
-msgstr ""
+msgstr "ஆவணம௠இறகà¯à®•à¯à®®à®¤à®¿ செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ உறà¯à®ªà¯à®ªà®¿à®©à®°à¯à®•à®³à¯ (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: %(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ) களà¯)"
#: sphinx/ext/autosummary/generate.py:726
#, python-format
msgid ""
"document exactly the members in module __all__ attribute. (default: "
"%(default)s)"
-msgstr ""
+msgstr "உறà¯à®ªà¯à®ªà®¿à®©à®°à¯à®•à®³à¯ˆ தொகà¯à®¤à®¿ __all__ பணà¯à®ªà¯à®•à¯à®•à¯‚றில௠சரியாக ஆவணபà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯. (இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ: %(இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ) களà¯)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
-msgstr ""
+msgstr "à®®à¯à®•à¯à®•à®¿à®¯ வாதஙà¯à®•à®³à¯"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
-msgstr ""
+msgstr "உதாரணமாக"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
-msgstr ""
+msgstr "எடà¯à®¤à¯à®¤à¯à®•à¯à®•à®¾à®Ÿà¯à®Ÿà¯à®•à®³à¯"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
-msgstr ""
+msgstr "பிற அளவà¯à®°à¯à®•à¯à®•à®³à¯"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
-msgstr ""
+msgstr "பெறà¯à®•à®¿à®±à®¤à¯"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
-msgstr ""
+msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®•à®³à¯"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
-msgstr ""
+msgstr "மகசூலà¯"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
-msgstr ""
+msgstr "தவறான மதிபà¯à®ªà¯ தொகà¯à®ªà¯à®ªà¯ (நிறைவ௠பிரேஸைக௠காணவிலà¯à®²à¯ˆ): %களà¯"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
-msgstr ""
+msgstr "தவறான மதிபà¯à®ªà¯ தொகà¯à®ªà¯à®ªà¯ (தொடகà¯à®• பிரேஸைக௠காணவிலà¯à®²à¯ˆ): %களà¯"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
-msgstr ""
+msgstr "தவறாக சரம௠லிடà¯à®Ÿà®°à®²à¯ (நிறைவ௠மேறà¯à®•à¯‹à®³à¯ˆà®•à¯ காணவிலà¯à®²à¯ˆ): %களà¯"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
-msgstr ""
+msgstr "தவறான சரம௠நேரடி (தொடகà¯à®• மேறà¯à®•à¯‹à®³à¯à®•à®³à¯ˆà®•à¯ காணவிலà¯à®²à¯ˆ"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
-msgstr ""
+msgstr "கவனமà¯"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
-msgstr ""
+msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
-msgstr ""
+msgstr "ஆபதà¯à®¤à¯"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
-msgstr ""
+msgstr "பிழை"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
-msgstr ""
+msgstr "à®®à¯à®•à¯à®•à®¿à®¯à®®à®¾à®©"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
-msgstr ""
+msgstr "கà¯à®±à®¿à®ªà¯à®ªà¯"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
-msgstr ""
+msgstr "மேலà¯à®®à¯ காணà¯à®•"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
-msgstr ""
+msgstr "உதவிகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
-msgstr ""
+msgstr "எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ"
#: sphinx/templates/latex/longtable.tex_t:52
#: sphinx/templates/latex/sphinxmessages.sty_t:8
msgid "continued from previous page"
-msgstr ""
+msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯ பகà¯à®•à®¤à¯à®¤à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ தொடரà¯à®•à®¿à®±à®¤à¯"
#: sphinx/templates/latex/longtable.tex_t:63
#: sphinx/templates/latex/sphinxmessages.sty_t:9
msgid "continues on next page"
-msgstr ""
+msgstr "அடà¯à®¤à¯à®¤ பகà¯à®•à®¤à¯à®¤à®¿à®²à¯ தொடரà¯à®•à®¿à®±à®¤à¯"
#: sphinx/templates/latex/sphinxmessages.sty_t:10
msgid "Non-alphabetical"
-msgstr ""
+msgstr "மகà¯à®•à®³à¯à®¤à¯Šà®•à¯ˆ அலà¯à®²à®¾à®¤"
#: sphinx/templates/latex/sphinxmessages.sty_t:12
msgid "Numbers"
-msgstr ""
+msgstr "எணà¯à®•à®³à¯"
#: sphinx/templates/latex/sphinxmessages.sty_t:13
msgid "page"
-msgstr ""
+msgstr "பகà¯à®•à®®à¯"
#: sphinx/themes/agogo/layout.html:38 sphinx/themes/basic/globaltoc.html:10
#: sphinx/themes/basic/localtoc.html:12 sphinx/themes/scrolls/layout.html:41
msgid "Table of Contents"
-msgstr ""
+msgstr "உளà¯à®³à®Ÿà®•à¯à®• அடà¯à®Ÿà®µà®£à¯ˆ"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
-msgstr ""
+msgstr "தேடலà¯"
#: sphinx/themes/agogo/layout.html:46 sphinx/themes/basic/searchbox.html:16
#: sphinx/themes/basic/searchfield.html:18
msgid "Go"
-msgstr ""
+msgstr "போ"
#: sphinx/themes/agogo/layout.html:90 sphinx/themes/basic/sourcelink.html:15
msgid "Show Source"
-msgstr ""
+msgstr "மூலதà¯à®¤à¯ˆà®•à¯ காடà¯à®Ÿà¯"
#: sphinx/themes/basic/defindex.html:11
msgid "Overview"
-msgstr ""
+msgstr "கணà¯à®£à¯‹à®Ÿà¯à®Ÿà®®à¯"
#: sphinx/themes/basic/defindex.html:15
msgid "Welcome! This is"
-msgstr ""
+msgstr "வரவேறà¯à®ªà¯! இதà¯"
#: sphinx/themes/basic/defindex.html:16
msgid "the documentation for"
-msgstr ""
+msgstr "ஆவணஙà¯à®•à®³à¯"
#: sphinx/themes/basic/defindex.html:17
msgid "last updated"
-msgstr ""
+msgstr "கடைசியாக பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
#: sphinx/themes/basic/defindex.html:20
msgid "Indices and tables:"
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®•à®³à¯ மறà¯à®±à¯à®®à¯ அடà¯à®Ÿà®µà®£à¯ˆà®•à®³à¯:"
#: sphinx/themes/basic/defindex.html:23
msgid "Complete Table of Contents"
-msgstr ""
+msgstr "உளà¯à®³à®Ÿà®•à¯à®•à®™à¯à®•à®³à®¿à®©à¯ à®®à¯à®´à¯à®®à¯ˆà®¯à®¾à®© அடà¯à®Ÿà®µà®£à¯ˆ"
#: sphinx/themes/basic/defindex.html:24
msgid "lists all sections and subsections"
-msgstr ""
+msgstr "அனைதà¯à®¤à¯ பிரிவà¯à®•à®³à¯ˆà®¯à¯à®®à¯ தà¯à®£à¯ˆà®ªà¯à®ªà®¿à®°à®¿à®µà¯à®•à®³à¯ˆà®¯à¯à®®à¯ படà¯à®Ÿà®¿à®¯à®²à®¿à®Ÿà¯à®•à®¿à®±à®¤à¯"
#: sphinx/themes/basic/defindex.html:26
msgid "search this documentation"
-msgstr ""
+msgstr "இநà¯à®¤ ஆவணதà¯à®¤à¯ˆà®¤à¯ தேடà¯à®™à¯à®•à®³à¯"
#: sphinx/themes/basic/defindex.html:28
msgid "Global Module Index"
-msgstr ""
+msgstr "உலகளாவிய தொகà¯à®¤à®¿ அடà¯à®Ÿà®µà®£à¯ˆ"
#: sphinx/themes/basic/defindex.html:29
msgid "quick access to all modules"
-msgstr ""
+msgstr "அனைதà¯à®¤à¯ தொகà¯à®¤à®¿à®•à®³à¯à®•à¯à®•à¯à®®à¯ விரைவான அணà¯à®•à®²à¯"
#: sphinx/themes/basic/defindex.html:31
msgid "all functions, classes, terms"
-msgstr ""
+msgstr "அனைதà¯à®¤à¯ செயலà¯à®ªà®¾à®Ÿà¯à®•à®³à¯, வகà¯à®ªà¯à®ªà¯à®•à®³à¯, விதிமà¯à®±à¯ˆà®•à®³à¯"
#: sphinx/themes/basic/genindex-single.html:33
#, python-format
msgid "Index &ndash; %(key)s"
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ & ndash; %(விசைகளà¯"
#: sphinx/themes/basic/genindex-single.html:61
#: sphinx/themes/basic/genindex-split.html:24
#: sphinx/themes/basic/genindex-split.html:38
#: sphinx/themes/basic/genindex.html:73
msgid "Full index on one page"
-msgstr ""
+msgstr "ஒர௠பகà¯à®•à®¤à¯à®¤à®¿à®²à¯ à®®à¯à®´à¯ கà¯à®±à®¿à®¯à¯€à®Ÿà¯"
#: sphinx/themes/basic/genindex-split.html:16
msgid "Index pages by letter"
-msgstr ""
+msgstr "கடிதம௠மூலம௠கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ பகà¯à®•à®™à¯à®•à®³à¯"
#: sphinx/themes/basic/genindex-split.html:25
msgid "can be huge"
-msgstr ""
+msgstr "மிகபà¯à®ªà¯†à®°à®¿à®¯à®¤à®¾à®• இரà¯à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à¯à®®à¯"
#: sphinx/themes/basic/layout.html:26
msgid "Navigation"
-msgstr ""
+msgstr "வழிசெலà¯à®¤à¯à®¤à®²à¯"
#: sphinx/themes/basic/layout.html:126
#, python-format
msgid "Search within %(docstitle)s"
-msgstr ""
+msgstr "%(டாகà¯à®¸à¯à®Ÿà®¿à®Ÿà®¿à®²à¯) கள௠தேடà¯à®™à¯à®•à®³à¯"
#: sphinx/themes/basic/layout.html:135
msgid "About these documents"
-msgstr ""
+msgstr "இநà¯à®¤ ஆவணஙà¯à®•à®³à¯ˆà®ªà¯ பறà¯à®±à®¿"
#: sphinx/themes/basic/layout.html:144 sphinx/themes/basic/layout.html:188
#: sphinx/themes/basic/layout.html:190
msgid "Copyright"
-msgstr ""
+msgstr "பதிபà¯à®ªà¯à®°à®¿à®®à¯ˆ"
#: sphinx/themes/basic/layout.html:194 sphinx/themes/basic/layout.html:200
#, python-format
msgid "&#169; %(copyright_prefix)s %(copyright)s."
-msgstr ""
+msgstr "&#169; %(பதிபà¯à®ªà¯à®°à®¿à®®à¯ˆ_பிரெஃபிகà¯à®¸à¯) எஸ௠%(பதிபà¯à®ªà¯à®°à®¿à®®à¯ˆ) களà¯."
#: sphinx/themes/basic/layout.html:212
#, python-format
msgid "Last updated on %(last_updated)s."
-msgstr ""
+msgstr "கடைசியாக %(last_updated) s இல௠பà¯à®¤à¯à®ªà¯à®ªà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
#: sphinx/themes/basic/layout.html:215
#, python-format
msgid ""
"Created using <a href=\"https://www.sphinx-doc.org/\">Sphinx</a> "
"%(sphinx_version)s."
-msgstr ""
+msgstr "<a href=\"https://www.sphinx-doc.org/\"> ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ </மறà¯à®±à¯à®®à¯> %(ஸà¯à®ªà®¿à®©à¯à®•à¯à®¸à¯ பதிபà¯à®ªà¯à®•à®³à¯."
#: sphinx/themes/basic/opensearch.xml:4
#, python-format
msgid "Search %(docstitle)s"
-msgstr ""
+msgstr "தேடல௠%(டாகà¯à®¸à¯à®Ÿà®¿à®Ÿà®¿à®²à¯) களà¯"
#: sphinx/themes/basic/relations.html:12
msgid "Previous topic"
-msgstr ""
+msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯ தலைபà¯à®ªà¯"
#: sphinx/themes/basic/relations.html:14
msgid "previous chapter"
-msgstr ""
+msgstr "à®®à¯à®¨à¯à®¤à¯ˆà®¯ அதà¯à®¤à®¿à®¯à®¾à®¯à®®à¯"
#: sphinx/themes/basic/relations.html:19
msgid "Next topic"
-msgstr ""
+msgstr "அடà¯à®¤à¯à®¤ தலைபà¯à®ªà¯"
#: sphinx/themes/basic/relations.html:21
msgid "next chapter"
-msgstr ""
+msgstr "அடà¯à®¤à¯à®¤ அதà¯à®¤à®¿à®¯à®¾à®¯à®®à¯"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
-msgstr ""
+msgstr "தேடலை இயகà¯à®• ஜாவாஸà¯à®•à®¿à®°à®¿à®ªà¯à®Ÿà¯ˆ செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯ \n செயலà¯à®ªà®¾à®Ÿà¯."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
-msgstr ""
+msgstr "பல சொறà¯à®•à®³à¯ˆà®¤à¯ தேடà¯à®µà®¤à¯ காணà¯à®ªà®¿à®•à¯à®•à¯à®®à¯ போடà¯à®Ÿà®¿à®•à®³à¯ˆ மடà¯à®Ÿà¯à®®à¯‡ காடà¯à®Ÿà¯à®•à®¿à®±à®¤à¯ \n அனைதà¯à®¤à¯ வாரà¯à®¤à¯à®¤à¯ˆà®•à®³à¯à®®à¯."
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
+msgstr "தேடலà¯"
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
-msgstr ""
+msgstr "விரைவ௠தேடலà¯"
#: sphinx/themes/basic/sourcelink.html:12
msgid "This Page"
-msgstr ""
+msgstr "இநà¯à®¤ பகà¯à®•à®®à¯"
#: sphinx/themes/basic/changes/frameset.html:5
#: sphinx/themes/basic/changes/versionchanges.html:12
#, python-format
msgid "Changes in Version %(version)s &#8212; %(docstitle)s"
-msgstr ""
+msgstr "பதிபà¯à®ªà¯ %(பதிபà¯à®ªà¯) S &#8212; %(டாகà¯à®¸à¯à®Ÿà®¿à®Ÿà®¿à®²à¯) களà¯"
#: sphinx/themes/basic/changes/rstsource.html:5
#, python-format
msgid "%(filename)s &#8212; %(docstitle)s"
-msgstr ""
+msgstr "%(கோபà¯à®ªà¯ பெயரà¯) எஸ௠&#8212; %(டாகà¯à®¸à¯à®Ÿà®¿à®Ÿà®¿à®²à¯) களà¯"
#: sphinx/themes/basic/changes/versionchanges.html:17
#, python-format
msgid "Automatically generated list of changes in version %(version)s"
-msgstr ""
+msgstr "பதிபà¯à®ªà¯ %(பதிபà¯à®ªà¯) S இல௠மாறà¯à®±à®™à¯à®•à®³à®¿à®©à¯ படà¯à®Ÿà®¿à®¯à®²à¯ தானாக உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯"
#: sphinx/themes/basic/changes/versionchanges.html:18
msgid "Library changes"
-msgstr ""
+msgstr "நூலக மாறà¯à®±à®™à¯à®•à®³à¯"
#: sphinx/themes/basic/changes/versionchanges.html:23
msgid "C API changes"
-msgstr ""
+msgstr "சி à®à®ªà®¿à® மாறà¯à®±à®™à¯à®•à®³à¯"
#: sphinx/themes/basic/changes/versionchanges.html:25
msgid "Other changes"
-msgstr ""
+msgstr "பிற மாறà¯à®±à®™à¯à®•à®³à¯"
+
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "தேடல௠மà¯à®Ÿà®¿à®µà¯à®•à®³à¯"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "உஙà¯à®•à®³à¯ தேடல௠எநà¯à®¤ ஆவணஙà¯à®•à®³à¯à®•à¯à®•à¯à®®à¯ பொரà¯à®¨à¯à®¤à®µà®¿à®²à¯à®²à¯ˆ. எலà¯à®²à®¾ சொறà¯à®•à®³à¯à®®à¯ சரியாக உசà¯à®šà®°à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®© எனà¯à®ªà®¤à¯ˆà®¯à¯à®®à¯, நீஙà¯à®•à®³à¯ போதà¯à®®à®¾à®© வகைகளைத௠தேரà¯à®¨à¯à®¤à¯†à®Ÿà¯à®¤à¯à®¤à¯à®³à¯à®³à¯€à®°à¯à®•à®³à¯ எனà¯à®ªà®¤à¯ˆà®¯à¯à®®à¯ உறà¯à®¤à®¿à®ªà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯."
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
-msgstr ""
+msgstr "தேடல௠மà¯à®Ÿà®¿à®¨à¯à®¤à®¤à¯, தேடல௠வினவலà¯à®Ÿà®©à¯ பொரà¯à®¨à¯à®¤à®•à¯à®•à¯‚டிய $ {resultCount} பகà¯à®•à®®à¯ (களà¯) கிடைதà¯à®¤à®¤à¯."
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
-msgstr ""
+msgstr "தேடி"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
-msgstr ""
+msgstr "தேடலைத௠தயாரிதà¯à®¤à®²à¯ ..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
-msgstr ""
+msgstr ", இலà¯"
#: sphinx/themes/basic/static/sphinx_highlight.js:112
msgid "Hide Search Matches"
-msgstr ""
+msgstr "தேடல௠போடà¯à®Ÿà®¿à®•à®³à¯ˆ மறைகà¯à®•à®µà¯à®®à¯"
#: sphinx/themes/classic/layout.html:20
#: sphinx/themes/classic/static/sidebar.js_t:57
msgid "Collapse sidebar"
-msgstr ""
+msgstr "பகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿ சரிவà¯"
#: sphinx/themes/classic/static/sidebar.js_t:48
msgid "Expand sidebar"
-msgstr ""
+msgstr "பகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à¯ˆ விரிவாகà¯à®•à¯à®™à¯à®•à®³à¯"
#: sphinx/themes/haiku/layout.html:24
msgid "Contents"
-msgstr ""
+msgstr "உளà¯à®³à®Ÿà®•à¯à®•à®™à¯à®•à®³à¯"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
-msgstr ""
+msgstr "மொழிபெயரà¯à®ªà¯à®ªà¯ à®®à¯à®©à¯à®©à¯‡à®±à¯à®±à®¤à¯à®¤à¯ˆ கணகà¯à®•à®¿à®Ÿ à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ!"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
-msgstr ""
+msgstr "மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ கூறà¯à®•à®³à¯ இலà¯à®²à¯ˆ!"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
-msgstr ""
+msgstr "4 நெடà¯à®µà®°à®¿à®šà¯ˆ அடிபà¯à®ªà®Ÿà¯ˆà®¯à®¿à®²à®¾à®© கà¯à®±à®¿à®¯à¯€à®Ÿà¯ காணபà¯à®ªà®Ÿà¯à®Ÿà®¤à¯. இத௠நீஙà¯à®•à®³à¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®®à¯ நீடà¯à®Ÿà®¿à®ªà¯à®ªà¯à®•à®³à®¿à®©à¯ பிழையாக இரà¯à®•à¯à®•à®²à®¾à®®à¯: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
-msgstr ""
+msgstr "அடிகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯ [%களà¯] கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
-msgstr ""
+msgstr "அடிகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯ [#] கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ."
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
-msgstr ""
+msgstr "மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ செயà¯à®¤à®¿à®¯à®¿à®²à¯ சீரறà¯à®± அடிகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯. அசலà¯: {0}, மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯: {1}"
#: sphinx/transforms/i18n.py:245
msgid ""
"inconsistent references in translated message. original: {0}, translated: "
"{1}"
-msgstr ""
+msgstr "மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ செயà¯à®¤à®¿à®¯à®¿à®²à¯ சீரறà¯à®± கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯. அசலà¯: {0}, மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
-msgstr ""
+msgstr "மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ செயà¯à®¤à®¿à®¯à®¿à®²à¯ சீரறà¯à®± மேறà¯à®•à¯‹à®³à¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯. அசலà¯: {0}, மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
-msgstr ""
+msgstr "மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ செயà¯à®¤à®¿à®¯à®¿à®²à¯ சீரறà¯à®± கால கà¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯. அசலà¯: {0}, மொழிபெயரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà¯à®³à¯à®³à®¤à¯: {1}"
#: sphinx/transforms/post_transforms/__init__.py:116
msgid ""
"Could not determine the fallback text for the cross-reference. Might be a "
"bug."
-msgstr ""
+msgstr "கà¯à®±à¯à®•à¯à®•à¯ கà¯à®±à®¿à®ªà¯à®ªà¯à®•à¯à®•à®¾à®© கà¯à®±à¯ˆà®µà®Ÿà¯ˆà®¯à¯à®®à¯ உரையை தீரà¯à®®à®¾à®©à®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. ஒர௠பிழையாக இரà¯à®•à¯à®•à®²à®¾à®®à¯."
#: sphinx/transforms/post_transforms/__init__.py:158
#, python-format
msgid "more than one target found for 'any' cross-reference %r: could be %s"
-msgstr ""
+msgstr "'எநà¯à®¤' கà¯à®±à¯à®•à¯à®•à¯-கà¯à®±à®¿à®ªà¯à®ªà¯ %r கà¯à®•à¯ ஒனà¯à®±à¯à®•à¯à®•à¯ மேறà¯à®ªà®Ÿà¯à®Ÿ இலகà¯à®•à¯à®•à®³à¯ காணபà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©: %s ஆக இரà¯à®•à¯à®•à®²à®¾à®®à¯"
#: sphinx/transforms/post_transforms/__init__.py:209
#, python-format
msgid "%s:%s reference target not found: %s"
-msgstr ""
+msgstr "%களà¯: %S கà¯à®±à®¿à®ªà¯à®ªà¯ இலகà¯à®•à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %s"
#: sphinx/transforms/post_transforms/__init__.py:212
#, python-format
msgid "%r reference target not found: %s"
-msgstr ""
+msgstr "%r கà¯à®±à®¿à®ªà¯à®ªà¯ இலகà¯à®•à¯ காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ: %களà¯"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
-msgstr ""
+msgstr "தொலை படதà¯à®¤à¯ˆà®ªà¯ பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %கள௠[ %d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
-msgstr ""
+msgstr "தொலை படதà¯à®¤à¯ˆà®ªà¯ பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ: %கள௠[ %களà¯]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ பட வடிவமà¯: %கள௠..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
-msgstr ""
+msgstr "தீரà¯à®®à®¾à®©à®¿à®•à¯à®• à®®à¯à®Ÿà®¿à®¯à®¾à®¤ மூல எழà¯à®¤à¯à®¤à¯à®•à¯à®•à®³à¯, \"?\""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
-msgstr ""
+msgstr "தவிரà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
-msgstr ""
+msgstr "தோலà¯à®µà®¿"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
-msgstr ""
+msgstr "%எஸ௠டொமைனில௠சிகà¯à®•à®²à¯: பà¯à®²à®®à¯ ' %களà¯' பாதà¯à®¤à®¿à®°à®¤à¯à®¤à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤ வேணà¯à®Ÿà¯à®®à¯, ஆனால௠அநà¯à®¤ பஙà¯à®•à¯ டொமைனில௠இலà¯à®²à¯ˆ."
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ உதà¯à®¤à®°à®µà¯ அலà¯à®²à®¤à¯ பஙà¯à®•à¯ பெயரà¯: %s: %s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ à®®à¯à®©à¯ˆ வகை: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
-msgstr ""
+msgstr "வாசிபà¯à®ªà¯ பிழை: %களà¯, %களà¯"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
-msgstr ""
+msgstr "எழà¯à®¤à¯à®®à¯ பிழை: %களà¯, %களà¯"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
-msgstr ""
+msgstr "locale_dir %s இலà¯à®²à¯ˆ"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
-msgstr ""
+msgstr "தவறான தேதி வடிவமà¯. நீஙà¯à®•à®³à¯ நேரடியாக வெளியிட விரà¯à®®à¯à®ªà®¿à®©à®¾à®²à¯ à®’à®±à¯à®±à¯ˆ மேறà¯à®•à¯‹à®³à¯ மூலம௠சரதà¯à®¤à¯ˆ மேறà¯à®•à¯‹à®³à¯ காடà¯à®Ÿà¯à®™à¯à®•à®³à¯: %களà¯"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
-msgstr ""
+msgstr "கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ உளà¯à®³à¯€à®Ÿà¯à®•à®³à¯à®•à¯à®•à¯ (நà¯à®´à¯ˆà®µà¯ %r இலிரà¯à®¨à¯à®¤à¯) %R நீகà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯. அதறà¯à®•à¯ பதிலாக 'ஜோடி: %களà¯' à®à®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯."
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
-msgstr ""
+msgstr "டோகà¯à®Ÿà¯à®°à¯€ இலà¯à®²à®¾à®¤ கோபà¯à®ªà¯ %r கà¯à®•à¯ ரெஃப௠உளà¯à®³à®¤à¯"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
-msgstr ""
+msgstr "விதிவிலகà¯à®•à¯ மடà¯à®Ÿà¯à®®à¯‡ வழிநடதà¯à®¤à¯à®®à¯ வெளிபà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ˆ மடà¯à®Ÿà¯à®®à¯‡ மதிபà¯à®ªà®¿à®Ÿà¯à®•à®¿à®±à®¤à¯: %களà¯"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
-msgstr ""
+msgstr "இயலà¯à®ªà¯à®¨à®¿à®²à¯ˆ பஙà¯à®•à¯ %கள௠காணபà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
#: sphinx/writers/html5.py:100 sphinx/writers/html5.py:109
msgid "Link to this definition"
-msgstr ""
+msgstr "இநà¯à®¤ வரையறைகà¯à®•à¯ இணைபà¯à®ªà¯"
#: sphinx/writers/html5.py:397
#, python-format
msgid "numfig_format is not defined for %s"
-msgstr ""
+msgstr "Numfig_format %s கà¯à®•à¯ வரையறà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
#: sphinx/writers/html5.py:407
#, python-format
msgid "Any IDs not assigned for %s node"
-msgstr ""
+msgstr "%ஒர௠மà¯à®©à¯ˆà®•à¯à®•à¯ ஒதà¯à®•à¯à®•à®ªà¯à®ªà®Ÿà®µà®¿à®²à¯à®²à¯ˆ"
#: sphinx/writers/html5.py:462
msgid "Link to this term"
-msgstr ""
+msgstr "இநà¯à®¤ காலதà¯à®¤à®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
-msgstr ""
+msgstr "இநà¯à®¤ தலைபà¯à®ªà¯à®•à¯à®•à®¾à®© இணைபà¯à®ªà¯"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
-msgstr ""
+msgstr "இநà¯à®¤ அடà¯à®Ÿà®µà®£à¯ˆà®¯à¯à®Ÿà®©à¯ இணைபà¯à®ªà¯"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
-msgstr ""
+msgstr "இநà¯à®¤ கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà®¿à®±à¯à®•à®¾à®© இணைபà¯à®ªà¯"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
-msgstr ""
+msgstr "இநà¯à®¤ படதà¯à®¤à¯à®Ÿà®©à¯ இணைபà¯à®ªà¯"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
-msgstr ""
+msgstr "இநà¯à®¤ டோகà¯à®Ÿà¯à®°à¯€à®¯à¯à®Ÿà®©à¯ இணைகà¯à®•à®µà¯à®®à¯"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
-msgstr ""
+msgstr "பட அளவைப௠பெற à®®à¯à®Ÿà®¿à®¯à®µà®¿à®²à¯à®²à¯ˆ. : அளவà¯: விரà¯à®ªà¯à®ªà®®à¯ பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
#: sphinx/writers/latex.py:335
#, python-format
msgid "unknown %r toplevel_sectioning for class %r"
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ %r toplevel_sectioning class %r"
#: sphinx/writers/latex.py:386
msgid "too large :maxdepth:, ignored."
-msgstr ""
+msgstr "மிகப௠பெரியதà¯: மேகà¯à®¸à¯à®Ÿà¯†à®ªà¯à®Ÿà¯ :, பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
#: sphinx/writers/latex.py:625
msgid "document title is not a single Text node"
-msgstr ""
+msgstr "ஆவண தலைபà¯à®ªà¯ ஒர௠உரை à®®à¯à®©à¯ˆ அலà¯à®²"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
-msgstr ""
+msgstr "பிரிவà¯, தலைபà¯à®ªà¯, அடà¯à®Ÿà®µà®£à¯ˆ, அறிவà¯à®°à¯ˆ அலà¯à®²à®¤à¯ பகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¿à®¯à®¿à®²à¯ இலà¯à®²à®¾à®¤ தலைபà¯à®ªà¯ à®®à¯à®©à¯ˆ"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
-msgstr ""
+msgstr "அடிகà¯à®•à¯à®±à®¿à®ªà¯à®ªà¯à®•à®³à¯"
#: sphinx/writers/latex.py:1028
msgid ""
"both tabularcolumns and :widths: option are given. :widths: is ignored."
-msgstr ""
+msgstr "அடà¯à®Ÿà®µà®£à¯ˆ மறà¯à®±à¯à®®à¯: அகலஙà¯à®•à®³à¯: விரà¯à®ªà¯à®ªà®®à¯ வழஙà¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©. : அகலமà¯: பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®•à®¿à®±à®¤à¯."
#: sphinx/writers/latex.py:1388
#, python-format
msgid "dimension unit %s is invalid. Ignored."
-msgstr ""
+msgstr "பரிமாண அலக௠%s தவறானதà¯. பà¯à®±à®•à¯à®•à®£à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯."
#: sphinx/writers/latex.py:1722
#, python-format
msgid "unknown index entry type %s found"
-msgstr ""
+msgstr "அறியபà¯à®ªà®Ÿà®¾à®¤ கà¯à®±à®¿à®¯à¯€à®Ÿà¯à®Ÿà¯ நà¯à®´à¯ˆà®µà¯ வகை %கள௠காணபà¯à®ªà®Ÿà¯à®•à®¿à®©à¯à®±à®©"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
-msgstr ""
+msgstr "[படஙà¯à®•à®³à¯]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
-msgstr ""
+msgstr "[படமà¯]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
-msgstr ""
+msgstr "தலைபà¯à®ªà¯ ஒர௠உரà¯à®µà®¤à¯à®¤à®¿à®±à¯à®•à¯à®³à¯ இலà¯à®²à¯ˆ."
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
-msgstr ""
+msgstr "செயலà¯à®ªà®Ÿà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà®¾à®¤ à®®à¯à®©à¯ˆ வகை: %r"
diff --git a/sphinx/locale/te/LC_MESSAGES/sphinx.mo b/sphinx/locale/te/LC_MESSAGES/sphinx.mo
index add2495..8dbea57 100644
--- a/sphinx/locale/te/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/te/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/te/LC_MESSAGES/sphinx.po b/sphinx/locale/te/LC_MESSAGES/sphinx.po
index 11bee36..67baf79 100644
--- a/sphinx/locale/te/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/te/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Telugu (http://app.transifex.com/sphinx-doc/sphinx-1/language/te/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: te\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/tr/LC_MESSAGES/sphinx.mo b/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
index 34dfe7f..168c89d 100644
--- a/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/tr/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/tr/LC_MESSAGES/sphinx.po b/sphinx/locale/tr/LC_MESSAGES/sphinx.po
index 712a9bc..17978bc 100644
--- a/sphinx/locale/tr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/tr/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -11,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: BouRock, 2020\n"
"Language-Team: Turkish (http://app.transifex.com/sphinx-doc/sphinx-1/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -41,104 +41,104 @@ msgstr "Kaynak dizin ve hedef dizin aynı olamaz"
msgid "Running Sphinx v%s"
msgstr "Sphinx s%s çalışıyor"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "Bu proje en az Sphinx s%s gerektirir ve bu nedenle bu sürüm ile oluşturulamaz."
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "çıktı dizini yapılıyor"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "%s uzantısı ayarlanırken:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "Şu anda conf.py dosyasında tanımlanan 'kurulum' çağrılabilir bir Python değil. Lütfen tanımını çağrılabilir bir işlev yapmak için değiştirin. Bunun, Sphinx uzantısı gibi davranması için conf.py dosyasına ihtiyacı vardır."
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "çeviriler yükleniyor [%s]... "
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "bitti"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "yerleşik iletiler için kullanılamaz"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "derin temizlenen ortam yükleniyor"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "başarısız olan: %s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "Seçilen oluşturucu yok, varsayılan kullanılıyor: html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "başarılı oldu"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "sorunlarla tamamlandı"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "yapım %s, %s uyarı (hata olarak kabul edilen uyarılarla)."
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "yapım %s, %s uyarı (hatalar olarak kabul edilen uyarılarla)."
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "yapım %s, %s uyarı."
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "yapım %s, %s uyarı."
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "yapım %s."
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "düğüm sınıfı %r zaten kayıtlı, ziyaretçileri geçersiz kılınacaktır"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "yönerge %r zaten kayıtlı, geçersiz kılınacaktır"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "rol %r zaten kayıtlı, geçersiz kılınacaktır"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -146,12 +146,12 @@ msgid ""
"explicit"
msgstr "%s uzantısı paralel okuma için güvenli olup olmadığını bildirmez, olmadığını varsayarak - lütfen uzantıyı hazırlayandan gözden geçirmesini ve açık hale getirmesini isteyin"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "%s uzantısı paralel okuma için güvenli değil"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -159,70 +159,75 @@ msgid ""
"explicit"
msgstr "%s uzantısı paralel yazma için güvenli olup olmadığını bildirmez, olmadığını varsayarak - lütfen uzantıyı hazırlayandan gözden geçirmesini ve açık hale getirmesini isteyin"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "%s uzantısı paralel yazma için güvenli değil"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "%s seri nosu yapılıyor"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "config dizini bir conf.py dosyası içermiyor (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "sözlük yapılandırma ayarı %r geçersiz kılınamaz, yoksayılıyor (tek tek öğeleri ayarlamak için %r kullanın)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "geçersiz sayı %r; yapılandırma değeri %r için; yoksayılıyor"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "desteklenmeyen tür ile yapılandırma ayarı %r geçersiz kılınamaz, yoksayılıyor"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "geçersiz kılmada bilinmeyen yapılandırma değeri %r, yoksayılıyor"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "Böyle bir yapılandırma değeri yok: %s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "Yapılandırma değeri %r zaten mevcut"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "Yapılandırma dosyanızda bir sözdizimi hatası var: %s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "Yapılandırma dosyası (veya içe aktarılan modüllerden biri) sys.exit() olarak adlandırılır"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -230,291 +235,328 @@ msgid ""
"%s"
msgstr "Yapılandırma dosyanızda programlanabilir bir hata var:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "'source_suffix' yapılandırma değeri bir dizgi, dizgiler listesi ya da sözlük bekler. Ama '%r' verilir."
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "Bölüm %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "Åžekil %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "Tablo %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "Listeleme %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "`{name}` yapılandırma değeri, {candidates} geğerlrinden biri olmak zorundadır, ancak `{current}` değeridir."
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "`{name}' yapılandırma değeri `{current.__name__}' türüne sahip; beklenen {permitted}."
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "`{name}' yapılandırma değeri `{current.__name__}' türüne sahip, vassayılanları `{default.__name__}'."
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r bulunamadı, yoksayıldı."
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "Olay %r zaten mevcut"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "Bilinmeyen olay adı: %s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "%s uzantısı needs_extensions ayarları tarafından gereklidir, ancak yüklü değildir."
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "Bu projenin %s uzantısına ve en az %s sürümüne ihtiyacı vardır ve bu nedenle yüklenen sürümle oluşturulamaz (%s)."
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments lexer adı %r bilinmiyor"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Oluşturucu sınıfı %s \"ad\" özniteliğine sahip değil"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Oluşturucu %r zaten mevcut (%s modülünde)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Oluşturucu adı %s kayıtlı veya giriş noktası aracılığıyla kullanılabilir değil"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Oluşturucu adı %s kayıtlı değil"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "etki alanı %s zaten kayıtlı"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "etki alanı %s henüz kayıtlı değil"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "%r yönergesi zaten %s etki alanına kayıtlı"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "%r rolü zaten %s etki alanına kayıtlı"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "%r dizini zaten %s etki alanına kayıtlı"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "%r object_type zaten kayıtlı"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "%r crossref_type zaten kayıtlı"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r zaten kayıtlı"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "%r için source_parser zaten kayıtlı"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "%s için kaynak ayrıştırıcı kayıtlı değil"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "%r için çevirmen zaten mevcut"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "add_node() için kwargs bir (visit, depart) tanımlama grubu işlevi olmak zorundadır: %r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r zaten kayıtlı"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "%r uzantısı zaten %s sürümünden bu yana Sphinx ile birleştirildi; bu uzantı yoksayıldı."
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "Özgün özel durumu:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr " %s uzantısı içe aktarılamadı"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "%r uzantısı setup() işlevine sahip değil; bu gerçekten bir Sphinx uzantısı modülü mü?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "Bu proje tarafından kullanılan %s uzantısının en az Sphinx s%s sürümüne ihtiyacı var; bu nedenle bu sürümle oluşturulamaz."
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "%r uzantısı, setup() işlevinden desteklenmeyen bir nesne döndürdü; Hiçbir şey veya üstveri sözlüğü döndürmeli"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Geliştirme Önerileri; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "%r temasının \"theme\" ayarı yok"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "%r temasının \"inherit\" ayarı yok"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "%r adında bulunan tema yok, %r tarafından devralındı"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "%s.%s ayarı, aranan tema yapılandırmalarının hiçbirinde meydana gelmiyor"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "desteklenmeyen tema seçeneği %r verildi"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "tema yolundaki %r dosyası geçerli bir zip dosyası değil ya da hiç tema içermiyor"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "%r adında bulunan tema yok (eksik theme.conf?)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -530,8 +572,8 @@ msgstr "%s oluşturucu için uygun bir resim bulunamadı: %s"
msgid "building [mo]: "
msgstr "[mo] oluÅŸturuluyor: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "çıktı yazılıyor..."
@@ -580,7 +622,7 @@ msgstr "komut satırında verilen %d kaynak dosyası"
msgid "targets for %d source files that are out of date"
msgstr "güncel olmayan %d kaynak dosyası için hedefler"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "[%s] oluÅŸturuluyor:"
@@ -589,50 +631,50 @@ msgstr "[%s] oluÅŸturuluyor:"
msgid "looking for now-outdated files... "
msgstr "şimdi güncel olmayan dosyalar aranıyor..."
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "%d tane bulundu"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "hiç bulunamadı"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "ortam derin temizleniyor"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "tutarlılık denetleniyor"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "hiçbir hedef güncel değil."
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "güncellenen ortam:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s eklendi, %s değiştirildi, %s kaldırıldı"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "kaynaklar okunuyor..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "yazmak için belge adları: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "belgeler hazırlanıyor"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -641,36 +683,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr "kopyalanmış ToC girişi bulundu: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "resimler kopyalanıyor..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "resim dosyası %r okunamıyor: bunun yerine kopyalanıyor"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "resim dosyası %r kopyalanamıyor: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "resim dosyası %r yazılamıyor: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "Yastık bulunamadı - resim dosyaları kopyalanıyor"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -678,470 +720,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "%s için bilinmeyen mime türü, yoksayılıyor"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "%s dosyası yazılıyor..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "Genel bakış dosyası %(outdir)s içinde."
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "%s sürümünde değişiklik yok."
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "özet dosyası yazılıyor..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "YerleÅŸikler"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Modül seviyesi"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "kaynak dosyalar kopyalanıyor..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "değişiklikler günlüğü oluşturma için %r okunamadı"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "Taklit oluşturucu hiçbir dosya oluşturmaz."
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "ePub dosyası %(outdir)s içinde."
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_language\" (veya \"language\"), EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "yapılandırma değeri \"epub_uid\", EPUB3 için XML NAME olmalıdır"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_title\" (veya \"html_title\"), EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_author\", EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_contributor\", EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_description\", EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_publisher\", EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_copyright\" (veya \"copyright\"), EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "yapılandırma değeri \"epub_identifier\", EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "yapılandırma değeri \"version\", EPUB3 için boş olmamalıdır"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "geçersiz css_file: %r, yoksayıldı"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "İleti katalogları %(outdir)s içinde."
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "%d şablon dosyası için hedefler"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "ÅŸablonlar okunuyor..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "ileti katalogları yazılıyor..."
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "Yukarıdaki çıktıda veya %(outdir)s/output.txt içinde herhangi bir hata arayın"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "bozuk bağlantı: %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "Rehber sayfaları %(outdir)s içinde."
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "hiçbir \"man_pages\" yapılandırma değeri bulunamadı; hiçbir rehber sayfası yazılmayacaktır"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "yazılıyor"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" yapılandırma değeri bilinmeyen %s belgesine başvurur"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML sayfası %(outdir)s içinde."
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "tek bir belgede toplanıyor"
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "ilave dosyalar yazılıyor"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfo dosyaları %(outdir)s içinde."
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\nMakeinfo aracılığıyla bunları çalıştırmak için bu dizinde 'make' komutunu çalıştırın\n(bunu otomatik olarak yapmak için burada 'make info' komutunu kullanın)."
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "hiçbir \"texinfo_documents\" yapılandırma değeri bulunamadı; hiçbir belge yazılmayacaktır"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "\"texinfo_documents\" yapılandırma değeri bilinmeyen %s belgesine başvurur"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "%s iÅŸleniyor"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "başvurular çözümleniyor..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (ÅŸurada: "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "Texinfo destek dosyaları kopyalanıyor..."
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "Makefile dosyası yazılırken hata oldu: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "Metin dosyaları %(outdir)s içinde."
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "%s dosyası yazılırken hata oldu: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XML dosyaları %(outdir)s içinde."
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "Pseudo-XML dosyaları %(outdir)s içinde."
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "oluşturma bilgisi dosyası bozuldu: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML sayfaları %(outdir)s içinde."
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "oluşturma bilgisi dosyasını okuma başarısız: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d %b %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Genel Dizin"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "dizin"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "sonraki"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "önceki"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "dizinler oluÅŸturuluyor"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "ilave sayfalar yazılıyor"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "indirilebilir dosyalar kopyalanıyor..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "indirilebilir dosya %r kopyalanamıyor: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "sabit dosya %r kopyalanamıyor"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "fazladan dosyalar kopyalanıyor"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "fazladan dosya %r kopyalanamıyor..."
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "oluşturma bilgisi dosyasını yazma başarısız: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "arama dizini yüklenemedi, ancak tüm belgeler oluşturulmayacaktır: dizin tamamlanmamış olacaktır."
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "sayfa %s html_sidebars içinde iki şekille eşleşiyor: %r ve %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "%s sayfasını işlerken bir Evrensel kod hatası meydana geldi. Lütfen ASCII olmayan içerik içeren tüm yapılandırma değerlerinin Evrensel kod dizgiler olduğundan emin olun."
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "%s sayfasını işlerken bir hata oldu.\nSebep: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "nesne envanteri dökümleniyor"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "%s içinde arama dizini dökümleniyor"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "geçersiz js_file: %r, yoksayıldı"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "Birçok math_renderers kayıtlı. Ama hiç math_renderer seçilmedi."
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "Bilinmeyen math_renderer %r verildi."
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path giriÅŸi %r mevcut deÄŸil"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path girişi %r, çıktı dizini içine yerleştirildi"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path giriÅŸi %r mevcut deÄŸil"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path girişi %r, çıktı dizini içine yerleştirildi"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "logo dosyası %r mevcut değil"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon dosyası %r mevcut değil"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s belgelendirmesi"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeX dosyaları %(outdir)s içinde."
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\n(pdf)latex aracılığıyla bunları çalıştırmak için bu dizinde 'make' komutunu çalıştırın\n(bunu otomatik olarak yapmak için burada 'make latexpdf' komutunu kullanın)."
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "hiçbir \"latex_documents\" yapılandırma değeri bulunamadı; hiçbir belge yazılmayacaktır"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "\"latex_documents\" yapılandırma değeri bilinmeyen %s belgesine başvurur"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "Dizin"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Yayım"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "%r dili için bilinen hiç Babel seçeneği yok"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "TeX destek dosyaları kopyalanıyor"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "TeX destek dosyaları kopyalanıyor..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "ilave dosyalar kopyalanıyor"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "Bilinmeyen yapılandırma anahtarı: latex_elements[%r], yoksayıldı."
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1156,15 +1198,15 @@ msgstr "%r, \"theme\" ayarına sahip değil"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r, \"%s\" ayarına sahip değil"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1223,8 +1265,8 @@ msgstr "Bir hata raporu <https://github.com/sphinx-doc/sphinx/issues> adresindek
msgid "job number should be a positive number"
msgstr "iş numarası pozitif bir sayı olmalıdır"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1256,257 +1298,264 @@ msgid "path to output directory"
msgstr "çıktı dizini için yol"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "yeniden oluşturmak için belirli dosyaların listesi. Belirtildiyse yoksayıldı"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "genel seçenekler"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "kullanmak için oluşturucu (varsayılan: html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "tüm dosyaları yaz (varsayılan: sadece yeni ve değiştirilmiş dosyaları yaz)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "kaydedilmiş bir ortam kullanma, her zaman tüm dosyaları oku"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "önbelleklenen ortam ve doctree dosyaları için yol (varsayılan: OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "mümkünse N işlem ile paralel olarak oluştur (özel değer \"auto\" N miktarını cpu-count değerine ayarlayacak)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "yapılandırma dosyasının (conf.py) bulunduğu yol (varsayılan: SOURCEDIR ile aynı)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "hiç yapılandırma dosyası kullanmadan, sadece -D seçenekleri"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "yapılandırma dosyasındaki bir ayarı geçersiz kıl"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "HTML şablonlarına bir değer geçir"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "etiketi tanımla: \"sadece\" TAG'li blokları dahil et"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "nit-picky kipi, tüm eksik kaynaklar hakkında uyar"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "konsol çıktısı seçenekleri"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "ayrıntı seviyesini artır (tekrarlanabilir)"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "stdout üzerinde çıktı yok, stderr üzerinde sadece uyarılar"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "hiç çıktı yok, hatta uyarılarda bile"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "renkli çıktı yayımı yap (varsayılan: otomatik algıla)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "renkli çıktı yayımı yapma (varsayılan: otomatik algıla)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "verilen dosyaya uyarıları (ve hataları) yaz"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "uyarıları hatalara dönüştür"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "-W ile, uyarıları alırken devam et"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "özel durumda tam geri izleme göster"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "özel durumda Pdb çalıştır"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "-a seçeneği ve dosya adları birleştirilemiyor"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "uyarı dosyası %r açılamıyor: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D seçeneği bağımsız değişkeni ad=değer biçiminde olmak zorundadır"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A seçeneği bağımsız değişkeni ad=değer biçiminde olmak zorundadır"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "modüllerden otomatik olarak docstrings ekle"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "doctest bloklarında kod parçacıklarını otomatik olarak dene"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "farklı projelerin Sphinx begelendirmeleri arasında bağlantıla"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "oluşturmada gösterilebilen veya gizlenebilen \"yapılacaklar\" girişlerini yaz"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "belgelendirme kapsamı için denetlemeler"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "PNG veya SVG resimleri olarak iÅŸleneni, matematiÄŸi dahil et"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "MathJax ile tarayıcıda işleneni, matematiği dahil et"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "yapılandırma değerlerine dayalı içeriğin koşullu olarak eklenmesi"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "belgelenmiş Python nesnelerinin kaynak koduna bağlantıları dahil et"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "belgeyi GitHub sayfalarında yayımlamak için .nojekyll dosyası oluştur"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "Lütfen geçerli bir yol adı girin."
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "Lütfen biraz metin girin."
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "Lütfen %s seçeneklerinden birini girin."
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "Lütfen ya 'y' ya da 'n' girin."
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "Lütfen bir dosya soneki girin, örn. '.rst' veya '.txt'."
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "Sphinx %s hızlı başlangıç yardımcı uygulamasına hoş geldiniz."
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "Lütfen aşağıdaki ayarlar için değerleri girin (parantez içinde verilirse\nvarsayılan değeri kabul etmek için yalnızca Enter tuşuna basın)."
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "Seçilen kök dizin yolu: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "Belgelendirme için kök dizin yolunu girin."
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "Belgelendirme için kök dizin yolu"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "Hata: seçilen kök dizin yolunda varolan bir conf.py bulundu."
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sfenks-quickstart varolan Sphinx projelerinin üzerine yazmayacak."
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "Lütfen yeni bir kök dizin yolu girin (ya da çıkmak için yalnızca Enter'a basın)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "Sphinx çıktısının oluşturma dizinini yerleştirmek için iki seçeneğiniz var.\nYa, kök dizin yolu içinde bir \"_build\" dizini kullanın, ya da kök dizin yolu\niçinde \"source\" ve \"build\" dizinlerini ayırın."
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "Source ve build dizinlerini ayır (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "Kök dizinin içinde, iki dizin daha oluşturulacaktır; özel HTML şablonları için \"_templates\"\nve özel stil sayfaları ve diğer sabit dosyalar için \"_static\".\nAlt çizgi yerine başka bir önek (\".\" gibi) girebilirsiniz."
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "Templates ve static dizinleri için ad öneki"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "Proje adı, oluşturulan belgelendirmedeki çeşitli yerlerde oluşacak."
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "Proje adı"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "Hazırlayan ad(ları)ı"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1515,15 +1564,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "Proje sürümü"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "Proje yayımı"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1533,21 +1582,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "Eğer belgeler İngilizce dışında bir dilde yazıldıysa, bunun dil koduna\ngöre burada bir dil seçebilirsiniz. Sphinx daha sonra, ürettiği metni o\ndile çevirecektir.\n\nDesteklenen kodların listesi için\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language adresine bakın."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "Proje dili"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "Kaynak dosya soneki"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1555,91 +1604,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "Bir belge, \"içindekiler ağacı\"nın üst düğümü olarak kabul edilmesi, yani\nbelgelerin hiyerarşik yapısının kökü olması açısından özeldir.\nNormalde bu \"dizin\"dir, ancak \"dizin\" belgeniz özel bir şablonsa,\nbunu başka bir dosya adına da ayarlayabilirsiniz."
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "Asıl belgenizin adı (sonek olmadan)"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "Hata: %s asıl dosyası zaten seçilen kök dizin yolunda bulundu."
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sfenks-quickstart varolan dosyanın üzerine yazmayacak."
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "Lütfen yeni bir dosya adı girin ya da varolan dosyayı yeniden adlandırın ve Enter tuşuna basın"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "Aşağıdaki Sphinx uzantılarından hangisinin etkinleştirilmesi gerektiğini gösterir:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "Not: imgmath ve mathjax aynı anda etkinleştirilemez. imgmath seçimi kaldırıldı."
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "Makefile ve Windows komut dosyası sizin için oluşturulabilir,\nböylece doğrudan örn. sphinx-build çağırmak yerine sadece\n`make html' komutu çalıştırılmak zorundadır."
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "Makefile oluÅŸturulsun mu? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "Windows komut satırı oluşturulsun mu? (y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "%s dosyası oluşturuluyor."
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "%s dosyası zaten var, atlanıyor."
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "Tamamlandı: İlk dizin yapısı oluşturuldu."
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "Artık %s asıl dosyanızı doldurmalı ve diğer belgelendirme kaynak dosyalarını\noluşturmalısınız."
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "Belgeleri oluşturmak için Makefile'ı kullanın, aşağıdaki gibi:\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "Belgeleri oluşturmak için sphinx-build komutunu kullanın, aşağıdaki gibi:\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "\"builder\" burada desteklenen oluşturuculardan biridir, örn. html, latex veya linkcheck."
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1649,135 +1698,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nBir Sphinx projesi için gerekli dosyaları oluşturun.\n\nsphinx-quickstart, projeniz hakkında bazı sorular soran ve ardından tam bir\nbelgelendirme dizini ve örnek oluşturan etkileşimli bir araçtır\nMakefile, sphinx-build ile kullanılır.\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "sessiz kipi"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "proje kök dizini"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "Yapı seçenekleri"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "eğer belirtildiyse, kaynak ve oluşturma dizinlerini ayırın"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "_templates vb. içinde nokta için değiştirme"
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "Proje temel seçenekleri"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "proje adı"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "hazırlayan adları"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "projenin sürümü"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "projenin yayımı"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "belge dili"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "kaynak dosya soneki"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "asıl belge adı"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "epub kullan"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "Uzantı seçenekleri"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "%s uzantısını etkinleştir"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "rasgele uzantıları etkinleştir"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefile ve Batchfile oluÅŸturma"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "makefile oluÅŸtur"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "makefile oluÅŸturma"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "batchfile oluÅŸtur"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "batchfile oluÅŸturma"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "Makefile/make.bat için make-mode kullan"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "Makefile/make.bat için make-mode kullanma"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "Proje ÅŸablonlama"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "şablon dosyaları için şablon dizini"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "bir şablon değişkeni tanımla"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"sessiz\" belirtilmiş, ancak herhangi bir \"proje\" veya \"hazırlayan\" belirtilmemiş."
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "Hata: belirtilen yol bir dizin değil ya da sphinx dosyaları zaten var."
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sfenks-quickstart sadece boş bir dizin içine oluşturur. Lütfen yeni bir kök dizin yolu belirtin."
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "Geçersiz şablon değişkeni: %s"
@@ -1828,47 +1877,47 @@ msgstr "Ayrık bir \"satır\" kümesiyle \"lineno-match\" kullanılamıyor"
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Satır özelliği %r: dahil edilen %r dosyasından çekilen hiç satır yok"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree, hariç tutulan %r belgesine başvuru içeriyor"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree, varolmayan %r belgesine başvuru içeriyor"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Bölümü hazırlayan: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Modülü hazırlayan: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Kodu hazırlayan: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Hazırlayan: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1883,82 +1932,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Parametreler"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Dönüşler"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Dönüş türü"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "üyesi"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "deÄŸiÅŸkeni"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "iÅŸlevi"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "makrosu"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "birliÄŸi"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "numaralandırıcı"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "türü"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "%s sürümünde geldi"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1970,346 +1947,423 @@ msgstr "%s sürümünde değişti"
msgid "Deprecated since version %s"
msgstr "%s sürümünden beri kullanım dışı"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "%s kopya alıntısı, %s içindeki diğer örnek"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "Alıntı [%s] kaynak gösterilmedi."
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "Åžablon Parametreleri"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Åžunu verir: "
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "sınıfı"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "kavramı"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr ""
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (yerleÅŸik iÅŸlev)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s yöntemi)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (sınıf)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (genel deÄŸiÅŸken veya sabit)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s özniteliği)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Bağımsız Değişkenler"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Åžunu verir: "
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Dönüşler"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Dönüş türü"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (modül)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "iÅŸlevi"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "yöntemi"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "sınıfı"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "verisi"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "özniteliği"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "modülü"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "kopya %s açıklamasına ait %s, diğer %s, %s içinde"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "%s denkleminin kopya etiketi, %s içindeki diğer örnek"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "Geçersiz math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "DeÄŸiÅŸkenler"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (yönerge)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Harekete geçirir"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (yönerge seçeneği)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (rol)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "yönergesi"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "yönerge seçeneği"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "rolü"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "%s %s kopya açıklaması, %s içindeki diğer örnek"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Parametreler"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "üyesi"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "deÄŸiÅŸkeni"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "makrosu"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "birliÄŸi"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "numaralandırıcı"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "türü"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "Åžablon Parametreleri"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "kavramı"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (%s modülü içinde)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (%s modülü içinde)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (yerleÅŸik deÄŸiÅŸken)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (yerleşik sınıf)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (%s içindeki sınıf)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s sınıf yöntemi)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s sabit yöntemi)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python Modül Dizini"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "modülleri"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Kullanım dışı"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "özel durum"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "sınıf yöntemi"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "sabit yöntemi"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "çapraz referans %r için birden fazla hedef bulundu: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (kullanım dışı)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (yönerge)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (yönerge seçeneği)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (rol)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "yönergesi"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "yönerge seçeneği"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "rolü"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "DeÄŸiÅŸkenler"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "%s %s kopya açıklaması, %s içindeki diğer örnek"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Harekete geçirir"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "ortam deÄŸiÅŸkeni; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "Hatalı biçimlendirilmiş seçenek açıklaması %r, \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" veya \"+opt args\" şeklinde görünmelidir"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s komut satırı seçeneği"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "komut satırı seçeneği"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "sözlük teriminden önce boş satır gelmek zorundadır"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "sözlük terimleri boş satırlarla ayrılmamak zorundadır"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "sözlük yanlış biçimlendirilmiş gibi görünüyor, girintiyi gözden geçirin"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "sözlük terimi"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "dilbilgisi belirteci"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "baÅŸvuru etiketi"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "ortam deÄŸiÅŸkeni"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "program seçeneği"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "belge"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Modül Dizini"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Arama Sayfası"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "%s kopya etiketi, %s içindeki diğer örnek"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "kopya %s açıklamasına ait %s, %s içindeki diğer örnek "
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig etkisizleştirildi. :numref: yoksayıldı."
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "bağlantının resim yazısı yok: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "geçersiz numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "geçersiz numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2326,35 +2380,35 @@ msgstr "yapılandırma değişti"
msgid "extensions changed"
msgstr "uzantılar değişti"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "yapım ortamı sürümü şu anki değil"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "kaynak dizin deÄŸiÅŸti"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "Bu ortam seçilen oluşturucuyla uyumsuzdur, lütfen başka bir belge ağacı dizini seçin."
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "%s içinde belgeleri tarama başarısız oldu: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Etki alanı %r kayıtlı değil"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "belge herhangi bir toctree içine dahil değil"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "kendinden kaynaklı toctree bulundu. Yoksayıldı."
@@ -2378,39 +2432,39 @@ msgstr "bilinmeyen dizin girişi türü %r"
msgid "Symbols"
msgstr "Semboller"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "dairesel toctree kaynakları algılandı, yoksayılan: %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree, başlığı olmayan %r belgesine başvuru içeriyor: hiç bağlantı oluşturulmayacaktır"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "resim dosyası okunabilir değil: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "%s resim dosyası okunabilir değil: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "indirme dosyası okunabilir değil: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s zaten atanmış bölüm numaralarıdır (iç içe numaralı toctree mi?)"
@@ -2420,7 +2474,7 @@ msgstr "%s zaten atanmış bölüm numaralarıdır (iç içe numaralı toctree m
msgid "Would create file %s."
msgstr "%s dosyası oluşturur."
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2432,149 +2486,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\nPython modülleri ve paketleri için <MODULE_PATH> içine art arda bakın ve <OUTPUT_PATH> içindeki\npaket başına otomodül talimatlarını içeren bir reST dosyası oluşturun.\n\n<EXCLUDE_PATTERN>'ler, nesilden hariç tutulacak olan dosya ve/veya dizin şekilleri olabilir.\n\nNot: Varsayılan olarak bu betik zaten oluşturulmuş dosyaların üzerine yazmayacak."
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "belge için modüle giden yol"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "nesilden hariç tutmak için fnmatch-style dosyası ve/veya dizin şekilleri"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "tüm çıktıların yerleştirileceği dizin"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "TOC'da gösterilecek alt modüllerin en fazla derinliği (varsayılan: 4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "varolan dosyaların üzerine yaz"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "sembolik bağlantıları takip edin. Collective.recipe.omelette ile birleştirildiğinde güçlü."
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "dosyaları oluşturmadan betiği çalıştır"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "her modül için belgelendirmeyi kendi sayfasına koy"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "\"_private\" modülleri dahil"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "içindekiler dosyası adı (varsayılan: modüller)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "içindekiler tablosu oluşturma"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "modül/paket paketleri için başlıklar oluşturma (örn. docstrings zaten bunları içerdiğinde)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "modül belgelerini alt modül belgelerinin önüne koyun"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "modül yollarını PEP-0420 kapalı ad alanları özelliklerine göre yorumla"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "dosya soneki (varsayılan: rst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "sphinx-quickstart ile tam bir proje oluÅŸtur"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "--full yazıldığında, append module_path to sys.path, kullanılır"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "proje adı (varsayılan: kök modül adı)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "--full yazıldığında, proje hazırlayan(lar)ı kullanılır"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "--full yazıldığında, proje sürümü kullanılır"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "--full yazıldığında, varsayılanı to --doc-version, proje yayımı kullanılır"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "uzantı seçenekleri"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s bir dizin deÄŸil."
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2598,24 +2652,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2626,32 +2680,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2661,7 +2715,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2671,27 +2725,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "nokta kodu %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[grafik: %s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[grafik]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2699,7 +2753,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2709,173 +2763,178 @@ msgid ""
"%r"
msgstr "dönüştürmeden hata ile çıkıldı:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "dönüştürme komutu %r çalıştırılamaz, image_converter ayarını gözden geçirin"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "LaTeX komutu %r çalıştırılamaz (matematik görüntüleme için gerekli), imgmath_latex ayarını gözden geçirin"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s komutu %r çalıştırılamaz (matematik görüntüleme için gerekli), imgmath_%s ayarını gözden geçirin"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "görüntü latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "satır içi latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "intersphinx envanteri taşındı: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "%s konumundan intersphinx envanteri yükleniyor..."
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "aşağıdaki sorunlardan dolayı envanterlerden herhangi birine ulaşılamadı:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(%s v%s içinde)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(%s içinde)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[kaynak]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Yapılacaklar"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>>, %s içinde, %d. satırda bulunur.)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "özgün giriş"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[belgeler]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "Modül kodu"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s öğesinin kaynak kodu</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "Genel bakış: modül kodu"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>Kodları mevcut bütün modüller</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2883,112 +2942,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2996,25 +3055,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3088,99 +3147,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "Örnek"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Örnekler"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "Notlar"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "DiÄŸer Parametreler"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "Kaynaklar"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "Uyarılar"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "Getiriler"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Dikkat"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Uyarı"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Tehlike"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Hata"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Ä°pucu"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Önemli"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Not"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Ayrıca bakınız"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Tüyo"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Uyarı"
@@ -3212,7 +3271,7 @@ msgid "Table of Contents"
msgstr "İçindekiler"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Ara"
@@ -3345,34 +3404,22 @@ msgstr "Sonraki konu"
msgid "next chapter"
msgstr "sonraki bölüm"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Arama işlevini kullanabilmek için lütfen JavaScript'i\n etkinleştirin."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "ara"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Arama Sonuçları"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "Arama sonucunda herhangi bir belge bulunamadı. Bütün kelimeleri doğru yazdığınızdan ve gerekli bütün kategorileri seçtiğinizden emin olun."
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Hızlı Arama"
@@ -3409,20 +3456,30 @@ msgstr "C API'sindeki deÄŸiÅŸiklikler"
msgid "Other changes"
msgstr "DiÄŸer deÄŸiÅŸiklikler"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Arama Sonuçları"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "Arama sonucunda herhangi bir belge bulunamadı. Bütün kelimeleri doğru yazdığınızdan ve gerekli bütün kategorileri seçtiğinizden emin olun."
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "Aranıyor"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "Aramaya hazırlanıyor..."
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ", şunun içinde:"
@@ -3443,30 +3500,30 @@ msgstr "Yan çubuğu genişlet"
msgid "Contents"
msgstr "İçindekiler"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3478,13 +3535,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3511,90 +3568,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "Bilinmeyen resim biçimi: %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "atlandı"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "başarısız oldu"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "okuma hatası: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "yazma hatası: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "varsayılan rol %s bulunamadı"
@@ -3617,27 +3674,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3654,13 +3711,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "Dipnotlar"
@@ -3679,20 +3736,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[resim: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[resim]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
index 25db69e..d5d8713 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
index 4da497a..aa18ce2 100644
--- a/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/uk_UA/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 14:58+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Petro Sasnyk <petro@sasnyk.name>, 2009\n"
"Language-Team: Ukrainian (Ukraine) (http://app.transifex.com/sphinx-doc/sphinx-1/language/uk_UA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: uk_UA\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:155
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Вбудовані елементи"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Рівень модулÑ"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:163 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:158
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:176
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (в "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%b %d, %Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Загальний індекÑ"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "індекÑ"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "наÑтупний"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "попередній"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "ІндекÑ"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "Реліз"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Ðвтор Ñекції: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Ðвтор модулÑ: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Ðвтор: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,433 +1929,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
+msgstr "Змінено в верÑÑ–Ñ— %s"
+
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
+msgstr "ЗаÑтаріло починаючи з верÑÑ–Ñ— %s"
+
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Параметри"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
+msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Повертає"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
+msgstr "%s() (вбудована функціÑ)"
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Тип поверненнÑ"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
+msgstr "%s() (%s метод)"
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "член"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
+msgstr "%s() (клаÑ)"
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "функціÑ"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "макроÑ"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
+msgstr "%s (%s атрибут)"
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Повертає"
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Тип поверненнÑ"
+
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
+msgstr "%s (модуль)"
+
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "функціÑ"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "тип"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "клаÑ"
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
-msgstr "Ðове в верÑÑ–Ñ— %s"
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr "атрибут"
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
-msgstr "Змінено в верÑÑ–Ñ— %s"
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr "модуль"
-#: sphinx/domains/changeset.py:25
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "Deprecated since version %s"
-msgstr "ЗаÑтаріло починаючи з верÑÑ–Ñ— %s"
+msgid "duplicate %s description of %s, other %s in %s"
+msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/math.py:63
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:213
#, python-format
-msgid "%s (C++ %s)"
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "клаÑ"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
-msgstr "%s() (вбудована функціÑ)"
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
-msgstr "%s() (%s метод)"
+msgid "%s (C %s)"
+msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
-msgstr "%s() (клаÑ)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Параметри"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
-msgstr "%s (%s атрибут)"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "член"
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
-msgstr "%s (модуль)"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "макроÑ"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
-msgstr "атрибут"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
-msgstr "модуль"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "тип"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "Викликає"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (в модулі %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (в модулі %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (вбудована змінна)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (вбудований клаÑ)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (ÐºÐ»Ð°Ñ Ð² %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s Ñтатичний метод)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "модулі"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "ЗаÑтарілий"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "винÑткова ÑитуаціÑ"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "Ñтатичний метод"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr " (заÑтарілий)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "Викликає"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "змінна оточеннÑ; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "змінна оточеннÑ"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "Ð†Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð´ÑƒÐ»Ñ–Ð²"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "Сторінка пошуку"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Доробити"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Увага"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "ЗаÑтереженнÑ"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Ðебезпека"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Помилка"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Підказка"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Важливо"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Примітка"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "ДивиÑÑŒ також"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Порада"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "ПопередженнÑ"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Пошук"
@@ -3342,34 +3401,22 @@ msgstr "ÐаÑтупна тема"
msgid "next chapter"
msgstr "наÑтупний розділ"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Будь-лаÑка вімкніть підтримку JavaScript, щоб ввікнути\n\"\n\" пошук."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "пошук"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "Результати пошуку"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "Швидкий пошук"
@@ -3406,20 +3453,30 @@ msgstr "зміни C API"
msgid "Other changes"
msgstr "Інші зміни"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "Результати пошуку"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/ur/LC_MESSAGES/sphinx.mo b/sphinx/locale/ur/LC_MESSAGES/sphinx.mo
index d4cca4b..95a540d 100644
--- a/sphinx/locale/ur/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/ur/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/ur/LC_MESSAGES/sphinx.po b/sphinx/locale/ur/LC_MESSAGES/sphinx.po
index 1703493..c1ced15 100644
--- a/sphinx/locale/ur/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/ur/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Urdu (http://app.transifex.com/sphinx-doc/sphinx-1/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/vi/LC_MESSAGES/sphinx.mo b/sphinx/locale/vi/LC_MESSAGES/sphinx.mo
index d61d81f..f361bb6 100644
--- a/sphinx/locale/vi/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/vi/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/vi/LC_MESSAGES/sphinx.po b/sphinx/locale/vi/LC_MESSAGES/sphinx.po
index b93c565..2a39ab5 100644
--- a/sphinx/locale/vi/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/vi/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Hoat Le Van <hoatlevan@gmail.com>, 2014\n"
"Language-Team: Vietnamese (http://app.transifex.com/sphinx-doc/sphinx-1/language/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -38,104 +38,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -143,12 +143,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -156,70 +156,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -227,290 +232,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Các đỠnghị nâng cao Python; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:295
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -527,8 +569,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -577,7 +619,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -586,50 +628,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -638,36 +680,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -675,470 +717,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "Dựng sẵn"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "Mức mô-đun"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr "(trong"
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%d/%m/%Y"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "Chỉ mục chung"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "chỉ mục"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "xem tiếp"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "xem lại"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "Tài liệu %s %s"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1153,15 +1195,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1220,8 +1262,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1253,7 +1295,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1261,249 +1305,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1512,15 +1561,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1530,21 +1579,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1552,91 +1601,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1646,135 +1695,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1825,47 +1874,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "Tác giả mục:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "Tác giả mô-đun:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "Tác giả mã lệnh:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "Tác giả:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1880,82 +1929,10 @@ msgstr ""
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr ""
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "Tham số"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr ""
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "Trả vá»"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "Kiểu trả vá»"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "thuộc tính"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "biến"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "hàm"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "macro"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr ""
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr ""
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr ""
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr ""
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "kiểu"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr ""
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "Mới từ phiên bản %s"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1967,346 +1944,423 @@ msgstr "Thay đổi trong phiên bản %s"
msgid "Deprecated since version %s"
msgstr "Sắp loại bỠtừ phiên bản %s"
-#: sphinx/domains/citation.py:70
-#, python-format
-msgid "duplicate citation %s, other instance in %s"
-msgstr ""
-
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/changeset.py:26
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/citation.py:71
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr ""
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/citation.py:82
#, python-format
-msgid "%s (C++ %s)"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "Ném"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "lá»›p"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr ""
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (hàm dựng sẵn)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (phương thức %s)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (lá»›p)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (biến toàn cục hoặc hằng số)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (thuộc tính %s)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "Äối số"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "Ném"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "Trả vá»"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "Kiểu trả vá»"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (mô-đun)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "hàm"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "phương thức"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "lá»›p"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "dữ liệu"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "thuộc tính"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "mô-đun"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
-msgstr "Các biến"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (chỉ thị)"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "ÄÆ°a ra"
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ""
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (vai trò)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "chỉ thị"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr ""
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "vai trò"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "Tham số"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "thuộc tính"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
+msgstr "biến"
+
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "macro"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "kiểu"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr ""
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (trong mô-đun %s)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (trong mô-đun %s)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (biến dựng sẵn)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (lớp dựng sẵn)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (lá»›p trong %s)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (phương thức lớp %s)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (phương thức tĩnh %s)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Chỉ Mục Mô-đun Python"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "các mô-đun"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "Sắp loại bá»"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "ngoại lệ"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "phương thức lớp"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "phương thức tĩnh"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(sắp loại bá»)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (chỉ thị)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (vai trò)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "chỉ thị"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "vai trò"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "Các biến"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr ""
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "ÄÆ°a ra"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "các biến môi trÆ°á»ng; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "chú giải thuật ngữ"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2323,35 +2377,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2375,39 +2429,39 @@ msgstr ""
msgid "Symbols"
msgstr "Biểu tượng"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2417,7 +2471,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2429,149 +2483,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2595,24 +2649,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2623,32 +2677,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2658,7 +2712,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2668,27 +2722,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2696,7 +2750,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2706,173 +2760,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
+#, python-format
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:557
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "domain for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2880,112 +2939,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2993,25 +3052,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3085,99 +3144,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "Các ví dụ"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "Chú ý"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "Cảnh báo"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "Nguy hiểm"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "Lá»—i"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "Gợi ý"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "Quan trá»ng"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "Ghi chú"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "Xem thêm"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "Mẹo"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "Cảnh báo"
@@ -3209,7 +3268,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "Tìm Kiếm"
@@ -3342,34 +3401,22 @@ msgstr "Chủ đỠtiếp"
msgid "next chapter"
msgstr "chương tiếp"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "Hãy bật JavaScript để dùng tính năng\ntìm kiếm."
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3406,20 +3453,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3440,30 +3497,30 @@ msgstr ""
msgid "Contents"
msgstr "Ná»™i dung"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3475,13 +3532,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3508,90 +3565,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3614,27 +3671,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3651,13 +3708,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3676,20 +3733,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/yue/LC_MESSAGES/sphinx.mo b/sphinx/locale/yue/LC_MESSAGES/sphinx.mo
index f3be5d8..bd6aca7 100644
--- a/sphinx/locale/yue/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/yue/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/yue/LC_MESSAGES/sphinx.po b/sphinx/locale/yue/LC_MESSAGES/sphinx.po
index 41004d1..0f7f88d 100644
--- a/sphinx/locale/yue/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/yue/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Cantonese (http://app.transifex.com/sphinx-doc/sphinx-1/language/yue/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: yue\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
index 59cc9ef..4fd8ec7 100644
--- a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
index 6f45eca..af0e5c2 100644
--- a/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_CN/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -25,14 +25,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: Adam Turner, 2023\n"
"Language-Team: Chinese (China) (http://app.transifex.com/sphinx-doc/sphinx-1/language/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -55,104 +55,104 @@ msgstr "æºæ–‡ä»¶ç›®å½•å’Œç›®æ ‡ç›®å½•ä¸èƒ½æ˜¯åŒä¸€ç›®å½•"
msgid "Running Sphinx v%s"
msgstr "正在è¿è¡Œ Sphinx v%s"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "è¯¥é¡¹ç›®éœ€è¦ Sphinx v%s åŠä»¥ä¸Šç‰ˆæœ¬ï¼Œå½“å‰ä½¿ç”¨ç‰ˆæœ¬ä¸èƒ½æž„建此文档。"
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "正在创建输出目录"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "在设置扩展å %s 时:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "å½“å‰ conf.py 中定义的 'setup' ä¸æ˜¯ä¸€ä¸ª Python çš„å¯è°ƒç”¨å¯¹è±¡ã€‚请修改其定义为一个å¯è°ƒç”¨çš„函数。当 conf.py 作为 Sphinx 扩展时,必须ä¾æ­¤é…置。"
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "正在加载翻译 [%s]…"
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "完æˆ"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "没有找到内置信æ¯çš„译文"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "正在加载 Pickle åºåˆ—化的环境"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "失败:%s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "未选择构建器,默认使用:html"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "æˆåŠŸ"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "完æˆä½†å­˜åœ¨é—®é¢˜"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "构建%s,%s æ¡è­¦å‘Šï¼ˆå°†è­¦å‘Šè§†ä¸ºé”™è¯¯ï¼‰ã€‚"
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "构建%s,%s æ¡è­¦å‘Šï¼ˆå°†è­¦å‘Šè§†ä¸ºé”™è¯¯ï¼‰ã€‚"
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "构建%s, %s æ¡è­¦å‘Šã€‚"
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "构建%s,%s æ¡è­¦å‘Šã€‚"
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "构建%s。"
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "节点类 %r å·²ç»æ³¨å†Œè¿‡äº†ï¼Œå…¶è®¿é—®è€…将被覆盖"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "指令 %r å·²ç»æ³¨å†Œè¿‡äº†ï¼Œå°†è¢«è¦†ç›–"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "角色 %r å·²ç»æ³¨å†Œè¿‡äº†ï¼Œå°†è¢«è¦†ç›–"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -160,12 +160,12 @@ msgid ""
"explicit"
msgstr "扩展 %s 没有声明是å¦å¹¶è¡Œè¯»å–安全,默认å‡å®šä¸ºå¦â€”请è”系扩展作者检查是å¦æ”¯æŒè¯¥ç‰¹æ€§å¹¶æ˜¾å¼å£°æ˜Ž"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "扩展 %s ä¸æ˜¯å¹¶è¡Œè¯»å–安全的"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -173,70 +173,75 @@ msgid ""
"explicit"
msgstr "%s 扩展没有声明是å¦å¹¶è¡Œå†™å…¥å®‰å…¨ï¼Œé»˜è®¤å‡å®šä¸ºå¦â€”请è”系扩展作者检查是å¦æ”¯æŒè¯¥ç‰¹æ€§å¹¶æ˜¾å¼å£°æ˜Ž"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "扩展 %s ä¸æ˜¯å¹¶è¡Œå†™å…¥å®‰å…¨çš„"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "执行串行 %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "é…置目录中缺少 conf.py 文件(%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "å‘现无效的é…置值:“language = Noneâ€ã€‚请修改为有效的语言代ç ã€‚回退至“enâ€ï¼ˆè‹±è¯­ï¼‰ã€‚"
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "ä¸èƒ½è¦†ç›–å­—å…¸é…置项 %r,已忽略 (请用 %r æ–¹å¼é€ä¸€ä¿®æ”¹å­—å…¸æˆå‘˜ï¼‰"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "%r ä¸æ˜¯æœ‰æ•ˆæ•´æ•°ï¼Œé…置项 %r 的值åªèƒ½æ˜¯æ•´æ•°ï¼Œå·²å¿½ç•¥"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "无法用ä¸æ”¯æŒçš„类型覆盖é…置项 %r,已忽略"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "é…置覆盖中包å«æœªçŸ¥çš„é…置项 %r,已忽略"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "ä¸å­˜åœ¨æ­¤é…置项:%s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "é…置项 %r 已存在"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "é…置文件中存在语法错误:%s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "é…置文件(或é…置文件导入的模å—)调用了 sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -244,291 +249,328 @@ msgid ""
"%s"
msgstr "é…置文件中有程åºä¸Šçš„错误:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "é…置项“source_suffixâ€çš„值应为字符串ã€å­—符串列表或字典。但给定的值是“%râ€ã€‚"
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "节 %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "图 %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "表 %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "列表 %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "é…置项“{name}â€çš„值åªèƒ½åœ¨â€œ{candidates}â€ä¸­é€‰å–,而当å‰ç»™å®šçš„值是“{current}â€ã€‚"
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "é…置项“{name}â€çš„值被é…ç½®æˆâ€œ{current.__name__}â€ç±»åž‹ï¼Œåº”为{permitted}。"
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "é…置项“{name}â€çš„值被é…ç½®æˆâ€œ{current.__name__}â€ç±»åž‹ï¼Œé»˜è®¤ä¸ºâ€œ{default.__name__}â€ã€‚"
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "primary_domain %r ä¸å­˜åœ¨ï¼Œå·²å¿½ç•¥ã€‚"
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "自 v2.0 起,Sphinx 采用“indexâ€ä½œä¸º root_doc 的默认值。请在你的 conf.py 中添加“root_doc = 'contents'â€ã€‚"
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "事件 %r 已存在"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "未知的事件å称:%s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "事件处ç†å‡½æ•° %r 在处ç†äº‹ä»¶ %r 时抛出了异常"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "未能加载 needs_extensions é…置项指定的 %s 扩展。"
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "该项目è¦æ±‚扩展 %s 至少是 %s 版本,当å‰åŠ è½½ç‰ˆæœ¬ï¼ˆ%s)无法构建文档。"
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "未知的 Pygments è¯æ³•åˆ†æžå™¨ %r"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "å‘现多个文件对应文档“%sâ€ï¼š%r\n将采用 %r 用于构建。"
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "构建器 %s 未包å«â€œnameâ€å±žæ€§"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "构建器 %r 已存在(è§æ¨¡å— %s)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "构建器 %s 未注册或在入å£ç‚¹ä¸å¯ç”¨"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "构建器 %s 未注册"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "域 %s å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "域 %s 未注册"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "指令 %r å·²ç»åœ¨åŸŸ %s 上注册过了"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "角色 %r å·²ç»åœ¨åŸŸ %s 上注册过了"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "索引 %r å·²ç»åœ¨åŸŸ %s 上注册过了"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "对象类型 %r å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "交å‰å¼•ç”¨ç±»åž‹ %r å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "æºæ–‡ä»¶æ‰©å±•å %r å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "%r çš„æºæ–‡ä»¶è§£æžå™¨å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "未注册 %s çš„æºä»£ç è¯­æ³•åˆ†æžå™¨"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "翻译器已存在 %r"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "add_node() 的关键字å‚数必须是 (visit, depart) å½¢å¼çš„函数元组:%r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "å¯æžšä¸¾èŠ‚点 %r å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "å…¬å¼æ¸²æŸ“器 %s å·²ç»æ³¨å†Œè¿‡äº†"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "扩展 %r 自 Sphinx %s 版本起åˆå¹¶è‡³ Sphinx;因此,该扩展被忽略。"
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "原始异常:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "无法导入扩展 %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "扩展 %r 缺少 setup() 函数;它确实是一个 Sphinx 扩展模å—å—?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "该项目所用扩展 %s éœ€è¦ Sphinx %s 或以上版本;当å‰ç‰ˆæœ¬æ— æ³•æž„建文档。"
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "扩展 %r 在其 setup() 函数中返回了一个ä¸æ”¯æŒçš„对象;该函数应返回 None 或一个元数æ®å­—å…¸"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python 增强建议;PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "无效的 PEP ç¼–å·%s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "无效的 RFC ç¼–å· %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "主题 %r 未包å«â€œthemeâ€é…置项"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "主题 %r 未包å«â€œinheritâ€é…置项"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "未找到主题 %r;由于 %r 继承了它,无法继续。"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "所有已找到的主题é…ç½®å‡æœªåŒ…å«é…置项 %s.%s"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "ä¸æ”¯æŒçš„主题选项 %r"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "主题路径对应的文件 %r 是一个无效的或ä¸åŒ…å«ä¸»é¢˜çš„ zip 文件"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
+#, python-format
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "未找到主题 %r(å¯èƒ½æ˜¯å› ä¸ºç¼ºå°‘ theme.conf)"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -544,8 +586,8 @@ msgstr "æ²¡æœ‰æ‰¾åˆ°é€‚åˆ %s 构建器的图åƒï¼š%s"
msgid "building [mo]: "
msgstr "正在构建 [mo]: "
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "正在写入输出……"
@@ -594,7 +636,7 @@ msgstr "命令行给定了 %d 个æºæ–‡ä»¶"
msgid "targets for %d source files that are out of date"
msgstr "%d 个æºæ–‡ä»¶çš„目标文件已过期"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "正在构建 [%s]: "
@@ -603,50 +645,50 @@ msgstr "正在构建 [%s]: "
msgid "looking for now-outdated files... "
msgstr "正在查找当å‰å·²è¿‡æœŸçš„文件……"
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "找到 %d 个已过期文件"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "没有找到已过期文件"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "正在 Pickle åºåˆ—化环境"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "正在校验一致性"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "没有过期的目标文件。"
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "正在更新环境:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "有 %s 个新增文件,有 %s 个文件已被修改,有 %s 个文件已被移除"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "正在读å–æºæ–‡ä»¶â€¦â€¦"
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "待写入文档å称:%s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "正在准备写入文档"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr "正在å¤åˆ¶èµ„产文件"
@@ -655,36 +697,36 @@ msgstr "正在å¤åˆ¶èµ„产文件"
msgid "duplicated ToC entry found: %s"
msgstr "å‘现é‡å¤çš„目录æ¡ç›®ï¼š%s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "正在å¤åˆ¶å›¾åƒæ–‡ä»¶â€¦â€¦"
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "无法读å–图åƒæ–‡ä»¶ %r:改为直接å¤åˆ¶"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "无法å¤åˆ¶å›¾åƒæ–‡ä»¶ %r:%s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "无法写入图åƒæ–‡ä»¶ %r:%s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "未找到 Pillow - 正在å¤åˆ¶å›¾åƒæ–‡ä»¶"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "正在写入 mimetype 文件……"
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "正在写入 META-INF/container.xml 文件……"
@@ -692,470 +734,470 @@ msgstr "正在写入 META-INF/container.xml 文件……"
msgid "writing content.opf file..."
msgstr "正在写入 content.opf 文件……"
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "%s 的 MIME 类型未知,已忽略"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "正在写入 toc.ncx 文件……"
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "正在写入 %s 文件……"
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "概览文件ä¿å­˜åœ¨ %(outdir)s 目录 。"
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "%s 版本中没有åšå‡ºä¿®æ”¹ã€‚"
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "正在写入摘è¦æ–‡ä»¶â€¦â€¦"
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "内置模å—"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "模å—级"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "正在å¤åˆ¶æºæ–‡ä»¶â€¦â€¦"
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "无法读å–用于创建å˜æ›´è®°å½•çš„ %r"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "伪构建器ä¸ç”Ÿæˆæ–‡ä»¶ã€‚"
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "ePub 文件ä¿å­˜åœ¨ %(outdir)s。"
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "正在写入 nav.xhtml 文件……"
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_languageâ€ï¼ˆæˆ–“languageâ€ï¼‰çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_uidâ€çš„值应为 XML å称格å¼çš„字符串"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_titleâ€ï¼ˆæˆ–“html_titleâ€ï¼‰çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_authorâ€çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_contributorâ€çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_descriptionâ€çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_publisherâ€çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_copyrightâ€ï¼ˆæˆ–“copyrightâ€ï¼‰ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“epub_identifierâ€çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "对于 EPUB3 æ ¼å¼ï¼Œé…置项“versionâ€çš„值ä¸èƒ½ä¸ºç©º"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "无效的 css_file:%r,已忽略"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "消æ¯ç›®å½•ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "%d 个模æ¿æ–‡ä»¶çš„目标文件"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "正在读å–模æ¿â€¦â€¦"
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "正在写入消æ¯ç›®å½•... "
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "请在上述输出或 %(outdir)s/output.txt 中查找错误"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "æŸå的链接:%s(%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "无法编译 linkcheck_allowed_redirects é…置项中的正则表达å¼ï¼š%r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "手册页ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "未找到“man_pagesâ€é…置项,ä¸ä¼šå†™å…¥æ‰‹å†Œé¡µ"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "正在写入"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "é…置项“man_pagesâ€å¼•ç”¨çš„文档 %s ä¸å­˜åœ¨"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML 页é¢ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "正在装é…æˆå•é¡µé¢æ–‡æ¡£"
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "正在写入附加文件"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfo 文件ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\n在该目录下è¿è¡Œâ€œmakeâ€å‘½ä»¤ä»¥é€šè¿‡ makeinfo 处ç†è¿™äº› Texinfo 文件\n(在此处用“make infoâ€å³å¯è‡ªåŠ¨æ‰§è¡Œä¸Šè¿°æ“作)。"
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "未找到“texinfo_documentsâ€é…置项,ä¸ä¼šå†™å…¥æ–‡æ¡£"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "é…置项“texinfo_documentsâ€å¼•ç”¨äº†æ–‡æ¡£ %s ä¸å­˜åœ¨"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "æ­£åœ¨å¤„ç† %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "正在解æžå¼•ç”¨â€¦â€¦"
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (在 "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "正在å¤åˆ¶ Texinfo 支æŒæ–‡ä»¶"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "写入 Makefile 文件时出错:%s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "文本文件ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "写入文件 %s æ—¶å‘生错误:%s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XML 文件ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "伪 XML 文件ä¿å­˜åœ¨ %(outdir)s。"
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "构建信æ¯æ–‡ä»¶æŸå:%r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML 页é¢ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "读å–构建信æ¯æ–‡ä»¶å¤±è´¥ï¼š%r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%Y 年 %m 月 %d 日"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "总索引"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "索引"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "下一页"
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "上一页"
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "正在生æˆç´¢å¼•"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "正在写入附加页é¢"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "正在å¤åˆ¶å¯ä¸‹è½½æ–‡ä»¶â€¦â€¦"
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "无法å¤åˆ¶å¯ä¸‹è½½æ–‡ä»¶ %r:%s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "无法å¤åˆ¶ html_static_file 中的文件:%s: %r"
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "正在å¤åˆ¶é™æ€æ–‡ä»¶"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "无法å¤åˆ¶é™æ€æ–‡ä»¶ %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "正在å¤åˆ¶é¢å¤–文件"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "无法å¤åˆ¶é¢å¤–文件 %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "写入构建信æ¯æ–‡ä»¶å¤±è´¥ï¼š%r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "无法加载æœç´¢ç´¢å¼•ï¼Œä¸ä¼šæž„建所有文档:索引将ä¸å®Œæ•´ã€‚"
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "é¡µé¢ %s åŒæ—¶ç¬¦åˆä¸¤æ¡ html_sidebars 规则:%r å’Œ %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "åœ¨æ¸²æŸ“é¡µé¢ %s æ—¶å‘生了 Unicode 错误。请确ä¿æ‰€æœ‰åŒ…å«éž ASCII 字符的é…置项å‡ä¸º Unicode 字符串。"
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "æ¸²æŸ“é¡µé¢ %s æ—¶å‘生了错误。\n原因:%r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "正在导出对象清å•"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "正在导出 %s çš„æœç´¢ç´¢å¼•"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "无效的 js_file:%r,已忽略"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "注册了多个 math_renderer,但没有选择 math_renderer。"
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "给定的 math_renderer %r ä¸å­˜åœ¨ã€‚"
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path å…¥å£ %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path å…¥å£ %r 被置于输出目录内"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path å…¥å£ %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path å…¥å£ %r 置于输出目录内"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "logo 文件 %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon 文件 %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr "Sphinx ä¸å†æ”¯æŒ HTML 4。(在é…置项中检测到了“html4_writer=Trueâ€ï¼‰"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s 文档"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTex 文件ä¿å­˜åœ¨ %(outdir)s 目录。"
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\n在该目录下è¿è¡Œâ€œmakeâ€ä»¥é€šè¿‡ (pdf)latex 处ç†è¿™äº› LaTex 文件\n(在此处用“make latexpdfâ€å³å¯è‡ªåŠ¨æ‰§è¡Œä¸Šè¿°æ“作)。"
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "未找到“latex_documentsâ€é…置项,ä¸ä¼šå†™å…¥æ–‡æ¡£"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "é…置项“latex_documentsâ€å¼•ç”¨çš„文档 %s ä¸å­˜åœ¨"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "索引"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "å‘行版本"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "æ²¡æœ‰è¯­ç§ %r çš„ Babel 选项"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "正在å¤åˆ¶ TeX 支æŒæ–‡ä»¶"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "正在å¤åˆ¶ TeX 支æŒæ–‡ä»¶â€¦â€¦"
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "正在å¤åˆ¶é™„加文件"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "未知é…置项:latex_elements[%r],已忽略。"
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "未知主题选项:latex_theme_options[%r],已忽略。"
@@ -1170,15 +1212,15 @@ msgstr "%r 中缺少“themeâ€é…置项"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r 中缺少“%sâ€é…置项"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr "无法获å–文档å称ï¼"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr "无法获å–文档æºç  {source!r} 的文档å称ï¼"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr "给定的引用节点 %r 没有对应的脚注"
@@ -1237,8 +1279,8 @@ msgstr "Bug 报告å¯ä»¥åœ¨ Bug 追踪系统 <https://github.com/sphinx-doc/sphi
msgid "job number should be a positive number"
msgstr "并å‘任务数应为正值"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "想è¦äº†è§£æ›´å¤šä¿¡æ¯ï¼Œè¯·è®¿é—® <https://www.sphinx-doc.org/>。"
@@ -1270,257 +1312,264 @@ msgid "path to output directory"
msgstr "输出目录的路径"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "指定é‡æ–°æž„建的文件列表。如果指定了 -a å‚数,则忽略此项"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "通用选项"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "构建器(默认:html)"
+msgid "builder to use (default: 'html')"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
+
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "写入所有文件(默认:åªå†™å…¥æ–°æ–‡ä»¶å’Œä¿®æ”¹è¿‡çš„文件)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "ä¸ä½¿ç”¨å·²ä¿å­˜çš„环境,始终读å–全部文件"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "已缓存的环境和 doctree 文件路径(默认:OUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "如果å¯èƒ½ï¼Œç”¨ N 个进程并行构建文档(如果指定为“autoâ€ï¼Œåˆ™ N 为 CPU æ•°é‡ï¼‰"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "é…置文件(conf.py)所在目录路径(默认:与 SOURCEDIR 相åŒï¼‰"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "ä¸åº”用é…置文件中的é…置,åªè®© -D 选项中的é…置项生效。"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "覆盖é…置文件中的é…置项"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "å‘ HTML 模æ¿ä¼ å€¼"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "定义标签,把涉åŠæ ‡ç­¾ TAG 的“onlyâ€å—纳入到构建中"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "挑刺模å¼ï¼Œåœ¨å¼•ç”¨äº†ä¸å­˜åœ¨çš„内容时å‘出警告"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "控制å°è¾“出选项"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "输出更详细的日志(甚至å¯èƒ½é‡å¤ï¼‰"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "ä¸è¾“出到 stdout,åªåœ¨ stderr 上输出警告"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "无任何输出,甚至ä¸ä¼šè¾“出警告"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "ç€è‰²è¾“出(默认:自动检测)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "ä¸ç€è‰²è¾“出(默认:自动检测)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "把警告(以åŠé”™è¯¯ï¼‰ä¿¡æ¯å†™å…¥ç»™å®šçš„文件"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "把警告视为错误"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "与 -W é…åˆä½¿ç”¨ï¼Œåœ¨å‘出警告时继续è¿è¡Œ"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "å‘生异常时显示完整回溯信æ¯"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "å‘生异常时è¿è¡Œ Pdb"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "-a 选项和文件åä¸èƒ½åŒæ—¶ä½¿ç”¨"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "无法打开用于ä¿å­˜è­¦å‘Šä¿¡æ¯çš„文件 %r:%s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D 选项的å‚数必须是 name=value å½¢å¼"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A 选项的å‚数必须是 name=value å½¢å¼"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "自动æ’入模å—中的文档字符串"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "自动è¿è¡Œ doctest å—中的测试代ç ç‰‡æ®µ"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "链接ä¸åŒé¡¹ç›®çš„ Sphinx 文档"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "编写在构建时å¯ä»¥é€‰æ‹©æ˜¾ç¤ºã€éšè—的“todoâ€æ¡ç›®"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "检查文档覆盖率"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "支æŒæ•°å­¦å…¬å¼ï¼Œæ¸²æŸ“æˆ PNG 或 SVG 图åƒ"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "支æŒæ•°å­¦å…¬å¼ï¼Œç”¨ MathJax 在æµè§ˆå™¨ä¸­æ¸²æŸ“"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "基于é…置值控制构建中包å«å“ªäº›æ–‡æ¡£å†…容"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "支æŒé“¾æŽ¥åˆ°æ–‡æ¡£æ¶‰åŠçš„ Python 对象æºç "
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "创建 .nojekyll 文件,用于在 GitHub Pages æœåŠ¡å‘布文档"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "请输入有效的路径å。"
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "请输入文本。"
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "请输入 %s 之一。"
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "请输入“yâ€æˆ–“nâ€ã€‚"
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "请输入文件åŽç¼€ï¼Œä¾‹å¦‚:“.rstâ€æˆ–者“.txtâ€ã€‚"
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "欢迎使用 Sphinx %s 快速é…置工具。"
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "请输入接下æ¥å„项设定的值(如果方括å·ä¸­æŒ‡å®šäº†é»˜è®¤å€¼ï¼Œç›´æŽ¥\n按回车å³å¯ä½¿ç”¨é»˜è®¤å€¼ï¼‰ã€‚"
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "已选择根路径:%s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "输入文档的根路径。"
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "文档的根路径"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "错误:选择的根路径中已存在 conf.py 文件。"
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart ä¸ä¼šè¦†ç›–已有的 Sphinx 项目。"
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "请输入新的根路径(或按回车退出)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "有两ç§æ–¹å¼æ¥è®¾ç½®ç”¨äºŽæ”¾ç½® Sphinx 输出的构建目录:\n一是在根路径下创建“_buildâ€ç›®å½•ï¼ŒäºŒæ˜¯åœ¨æ ¹è·¯å¾„下创建“sourceâ€\n和“buildâ€ä¸¤ä¸ªç‹¬ç«‹çš„目录。"
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "独立的æºæ–‡ä»¶å’Œæž„建目录(y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "这个选项将在根目录中创建两个新目录:\n“_templatesâ€ç”¨äºŽæ”¾ç½®è‡ªå®šä¹‰ HTML 模æ¿æ–‡ä»¶ï¼Œâ€œ_staticâ€ç”¨äºŽè‡ªå®šä¹‰æ ·\nå¼è¡¨åŠå…¶ä»–é™æ€æ–‡ä»¶ã€‚您å¯ä»¥è¾“入其他的å‰ç¼€ï¼ˆæ¯”如“.â€ï¼‰ä»£æ›¿ä¸‹åˆ’线。"
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "模æ¿ç›®å½•å’Œé™æ€ç›®å½•çš„å称å‰ç¼€"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "项目å称将会出现在文档的许多地方。"
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "项目å称"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "作者å称"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1529,15 +1578,15 @@ msgid ""
"just set both to the same value."
msgstr "在 Sphinx 中,会区分“版本â€å’Œâ€œå‘行版本â€ä¸¤ä¸ªæ¦‚念。åŒä¸€ç‰ˆæœ¬å¯ä»¥\n有多个å‘行版本。例如,Python 版本å¯ä»¥æ˜¯ 2.5 或 3.0,而å‘行版\n本则是 2.5.1 或 3.0a1。如果你ä¸éœ€è¦è¿™æ ·çš„åŒé‡ç‰ˆæœ¬ç»“构,请把这\n两个选项设置为相åŒå€¼ã€‚"
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "项目版本"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "项目å‘行版本"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1547,21 +1596,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "如果用英语以外的语言编写文档,\nä½ å¯ä»¥åœ¨æ­¤æŒ‰è¯­è¨€ä»£ç é€‰æ‹©è¯­ç§ã€‚\nSphinx 会把内置文本翻译æˆç›¸åº”语言的版本。\n\n支æŒçš„语言代ç åˆ—表è§ï¼š\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language。"
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "项目语ç§"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "æºæ–‡ä»¶çš„文件ååŽç¼€ã€‚一般是“.txtâ€æˆ–“.rstâ€ã€‚åªæœ‰æ­¤åŽç¼€çš„文件æ‰ä¼š\n被视为文档的æºæ–‡ä»¶ã€‚"
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "æºæ–‡ä»¶åŽç¼€"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1569,91 +1618,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "有一ç§ç‰¹æ®Šçš„文档被视作“目录树â€çš„树顶节点,å³æ–‡æ¡£å±‚级结构的\n根。通常情况下,这个文档是“indexâ€ï¼Œä½†æ˜¯å¦‚果你的“indexâ€æ–‡æ¡£\n使用了自定义模æ¿ï¼Œä½ ä¹Ÿå¯ä»¥ä½¿ç”¨å…¶å®ƒæ–‡ä»¶å。"
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "主文档文件å(ä¸å«åŽç¼€ï¼‰"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "错误:选择的根目录下已存在主文档文件 %s。"
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart ä¸ä¼šè¦†ç›–已有的文件。"
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "请输入新文件å,若è¦é‡å‘½å现有文件请按回车"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "指出下列 Sphinx 扩展中,需è¦å¯ç”¨çš„有哪些:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "注æ„:imgmath å’Œ mathjax ä¸èƒ½åŒæ—¶å¯ç”¨ã€‚å·²å–消选择 imgmath。"
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "ç”Ÿæˆ Makefile å’Œ Windows 批处ç†æ–‡ä»¶ï¼Œå¯ä»¥ç›´æŽ¥åƒâ€œmake htmlâ€è¿™æ ·\nè¿è¡Œï¼Œè€Œä¸éœ€è¦ç›´æŽ¥è°ƒç”¨ sphinx-build。"
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "是å¦åˆ›å»º Makefile?(y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "是å¦åˆ›å»º Windows 批处ç†æ–‡ä»¶ï¼Ÿï¼ˆy/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "正在创建文件 %s。"
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "文件 %s 已存在,已跳过。"
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "完æˆï¼šå·²åˆ›å»ºåˆå§‹ç›®å½•ç»“构。"
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "你现在å¯ä»¥å¡«å†™ä¸»æ–‡æ¡£æ–‡ä»¶ %s 然åŽåˆ›å»ºå…¶ä»–文档æºæ–‡ä»¶äº†ã€‚ "
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "åƒè¿™æ ·ç”¨ Makefile 构建文档:\n  make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "åƒè¿™æ ·ç”¨ sphinx-build 命令构建文档:\n  sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "此处的“builderâ€ä»£æŒ‡æ”¯æŒçš„构建器å称,比如 htmlã€latex 或 linkcheck。"
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1663,135 +1712,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\nç”Ÿæˆ Sphinx 项目的必需文件。\n\nsphinx-quickstart 是一个交互å¼å·¥å…·ï¼Œè¯¢é—®ä¸€äº›å…³äºŽé¡¹ç›®çš„问题,生æˆ\n完整的文档目录和用于 sphinx-build 的示例 Makefile。\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "é™é»˜æ¨¡å¼"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "项目根目录"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "目录结构选项"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "如果指定了此选项,将分别建立æºæ–‡ä»¶ç›®å½•å’Œæž„建目录"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "如果指定了此选项,在æºæ–‡ä»¶ç›®å½•ä¸‹åˆ›å»ºæž„建目录"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "用å¥ç‚¹æ›¿ä»£â€œ _templatesâ€ç­‰æ–‡ä»¶å¤¹å称中的下划线。"
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "项目基本å‚æ•°"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "项目å称"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "作者å称"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "项目版本"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "项目å‘行版本"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "项目语ç§"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "æºæ–‡ä»¶åŽç¼€"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "主文档å"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "å¯ç”¨ ePub 支æŒ"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "扩展程åºé€‰é¡¹"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "å¯ç”¨ %s 扩展"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "å¯ç”¨å¤šä¸ªæ‰©å±•"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "创建 Makefile 和批处ç†æ–‡ä»¶"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "创建 Makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "ä¸åˆ›å»º Makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "创建批处ç†æ–‡ä»¶"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "ä¸åˆ›å»ºæ‰¹å¤„ç†æ–‡ä»¶"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "Makefile/make.bat 采用 Sphinx çš„ make 模å¼"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "Makefile/make.bat ä¸é‡‡ç”¨ Sphinx çš„ make 模å¼"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "项目模æ¿"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "放置模æ¿æ–‡ä»¶çš„模æ¿ç›®å½•"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "定义一个模æ¿å˜é‡"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "指定了“quietâ€ï¼Œä½†æ˜¯æ²¡æœ‰æŒ‡å®šâ€œprojectâ€å’Œâ€œauthorâ€ã€‚"
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "错误:指定的路径ä¸æ˜¯ä¸€ä¸ªç›®å½•ï¼Œæˆ–是 Sphinx 文件已存在。"
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart åªä¼šåœ¨ç©ºç›®å½•ä¸­ç”Ÿæˆæ–‡ä»¶ã€‚请指定一个新的根路径。"
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "无效模æ¿å˜é‡ï¼š%s"
@@ -1842,47 +1891,47 @@ msgstr "ä¸èƒ½åœ¨ä¸è¿žç»­çš„“linesâ€ä¸Šä½¿ç”¨â€œlineno-matchâ€é€‰é¡¹"
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "指定的行 %r:未能从包å«æ–‡ä»¶ %r 中拉å–指定的行"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "目录树 glob 规则 %r 未能匹é…到文档"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "目录树中引用了已排除的文档 %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "目录树中引用的文档 %r ä¸å­˜åœ¨"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "目录树中存在é‡å¤çš„æ¡ç›®ï¼š%s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "节作者: "
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "模å—作者: "
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "代ç ä½œè€…: "
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "作者: "
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ".. acks 的内容ä¸æ˜¯åˆ—表"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ".. hlist 的内容ä¸æ˜¯åˆ—表"
@@ -1897,82 +1946,10 @@ msgstr "csv-table 指令的“:fileâ€é€‰é¡¹çŽ°åœ¨ä¼šå°†ç»å¯¹è·¯å¾„视为æºæ–‡
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "é‡å¤çš„ C 声明,已ç»åœ¨ %s:%s 处声明。\n声明为“.. c:%s:: %sâ€ã€‚"
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s(C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "å‚æ•°"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "返回值"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "返回"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "返回类型"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "æˆå‘˜"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "å˜é‡"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "函数"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "å®"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "结构体"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "è”åˆä½“"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "枚举"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "枚举æˆå‘˜"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "类型"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "函数å‚æ•°"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "在 %s 版本加入"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1984,346 +1961,423 @@ msgstr "在 %s 版本å‘生å˜æ›´"
msgid "Deprecated since version %s"
msgstr "自 %s 版本弃用"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "é‡å¤çš„引文 %s,å¦ä¸€å¼•æ–‡å‡ºçŽ°åœ¨ %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "引文 [%s] 没有被引用过。"
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "é‡å¤çš„ C++ 声明,已ç»åœ¨ %s:%s 处声明。\n声明为“.. cpp:%s:: %sâ€ã€‚"
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "模æ¿å‚æ•°"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s(C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "抛出"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "ç±»"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "概念"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "模æ¿å‚æ•°"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (内置函数)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s 方法)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s()(类)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s(全局å˜é‡æˆ–常é‡ï¼‰"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s(%s 属性)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "å‚æ•°"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "抛出"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "返回"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "返回类型"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s(模å—)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "函数"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "方法"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "ç±»"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "æ•°æ®"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "属性"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "模å—"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "é‡å¤çš„ %sæè¿° %s,其他的 %s æ述出现在 %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "é‡å¤çš„å…¬å¼æ ‡ç­¾ %s,å¦ä¸€å…¬å¼å‡ºçŽ°åœ¨ %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "无效的 math_eqref_format:%r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s(指令)"
+
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s:(指令选项)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s(角色)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "指令"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "指令-选项"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "角色"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "é‡å¤çš„ %s %s æ述,å¦ä¸€æ述出现在 %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s(C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "é‡å¤çš„ C 声明,已ç»åœ¨ %s:%s 处声明。\n声明为“.. c:%s:: %sâ€ã€‚"
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "å‚æ•°"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "返回值"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "æˆå‘˜"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr "å˜é‡"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "抛出"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "å®"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "结构体"
+
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "è”åˆä½“"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "枚举"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "枚举æˆå‘˜"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "类型"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "函数å‚æ•°"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "模æ¿å‚æ•°"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s(C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "é‡å¤çš„ C++ 声明,已ç»åœ¨ %s:%s 处声明。\n声明为“.. cpp:%s:: %sâ€ã€‚"
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "概念"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "模æ¿å‚æ•°"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s()(在 %s 模å—中)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s()(在 %s 模å—中)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s(内置å˜é‡ï¼‰"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s(内置类)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s(%s 中的类)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s()(%s 类方法)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s()(%s é™æ€æ–¹æ³•ï¼‰"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s(%s 属性)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python 模å—索引"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "模å—"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "已弃用"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "异常"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "类方法"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "é™æ€æ–¹æ³•"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "托管属性"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "交å‰å¼•ç”¨ %r 找到了多个目标:%s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(已弃用)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s(指令)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s:(指令选项)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s(角色)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "指令"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "指令-选项"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "角色"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "å˜é‡"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "é‡å¤çš„ %s %s æ述,å¦ä¸€æ述出现在 %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "抛出"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "环境å˜é‡; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "畸形的选项æè¿° %r,应是“optâ€ã€â€œ-opt argsâ€ã€â€œ--opt argsâ€ã€â€œ/opt argsâ€æˆ–“+opt argsâ€å½¢å¼"
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s命令行选项"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "命令行选项"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "术语è¯æ±‡å‰å¿…须有空行"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "术语è¯æ±‡ä¸èƒ½ç”¨ç©ºè¡Œåˆ†éš”"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "术语è¯æ±‡æ ¼å¼ä¸æ­£ç¡®ï¼Œè¯·æ£€æŸ¥ç¼©è¿›"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "术语è¯æ±‡"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "语法记å·"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "引用标签"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "环境å˜é‡"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "程åºé€‰é¡¹"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "文档"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "模å—索引"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "æœç´¢é¡µé¢"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "é‡å¤çš„标签 %s,å¦ä¸€æ ‡ç­¾å‡ºçŽ°åœ¨ %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "é‡å¤çš„ %s æè¿° %s,å¦ä¸€æ述出现在 %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig å·²ç¦ç”¨ï¼Œå¿½ç•¥ :numref:。"
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "无法创建交å‰å¼•ç”¨ã€‚未指定题图数字:%s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "链接没有标题:%s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "无效的 numfig_format:%s(%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "无效的 numfig_format:%s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "标签未定义:%r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "无法创建交å‰å¼•ç”¨ï¼Œç¼ºå°‘标题或图题:%r"
@@ -2340,35 +2394,35 @@ msgstr "é…ç½®å‘生了å˜åŒ–"
msgid "extensions changed"
msgstr "扩展å‘生了å˜åŒ–"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "构建环境版本与当å‰çŽ¯å¢ƒä¸ç¬¦"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "æºæ–‡ä»¶ç›®å½•å‘生了å˜åŒ–"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "本环境与选择的构建器ä¸å…¼å®¹ï¼Œè¯·é€‰æ‹©å…¶ä»–的文档树目录。"
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "无法在 %s 中扫æ文档:%r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "未注册的域 %r"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "文档没有加入到任何目录树中"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "目录树存在自引用,已忽略。"
@@ -2392,39 +2446,39 @@ msgstr "未知的索引æ¡ç›®ç±»åž‹ %r"
msgid "Symbols"
msgstr "符å·"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "在文档树中检测到循环引用,已忽略:%s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "目录树引用的文档 %r 缺少标题:ä¸ä¼šç”Ÿæˆé“¾æŽ¥"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "目录树引用了未包å«çš„文档 %r"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "无法读å–图åƒæ–‡ä»¶ï¼š%s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "无法读å–图åƒæ–‡ä»¶ %s:%s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "无法读å–下载文件:%s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "å·²ç»ç»™ %s 分é…了章节编å·ï¼ˆåµŒå¥—的带编å·æ–‡æ¡£æ ‘?)"
@@ -2434,7 +2488,7 @@ msgstr "å·²ç»ç»™ %s 分é…了章节编å·ï¼ˆåµŒå¥—的带编å·æ–‡æ¡£æ ‘?)"
msgid "Would create file %s."
msgstr "将会创建文件 %s。"
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2446,149 +2500,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\n在 <MODULE_PATH> 中递归查找 Python 模å—和包,然åŽåœ¨ <OUTPUT_PATH> 中为æ¯ä¸ªä½¿ç”¨äº†\nautomodule 指令的包创建一个 reST 文件。\n\n<EXCLUDE_PATTERN> å¯ä»¥æŽ’除生æˆç¬¦åˆè§„则的文件/目录的文档。\n\næ示:本脚本默认ä¸ä¼šè¦†ç›–已有文件。"
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "指定模å—的路径,用于生æˆè¯¥æ¨¡å—的文档"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "以 fnmatch 风格的文件/目录规则,ä¸ç”Ÿæˆä¸Žè¯¥è§„则匹é…的文档"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "存放输出内容的目录"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "在目录树中展示å­æ¨¡å—的最大深度(默认:4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "覆盖已有文件"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "éµå¾ªç¬¦å·é“¾æŽ¥ã€‚é…åˆ collective.recipe.omelette 使用尤其å¥æ•ˆã€‚"
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "è¿è¡Œè„šæœ¬ï¼Œä½†ä¸åˆ›å»ºæ–‡ä»¶"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "给模å—创建å„自的文档页"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "包å«â€œ_privateâ€æ¨¡å—"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "目录的文件å(默认:modules)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "ä¸åˆ›å»ºç›®å½•æ–‡ä»¶"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "ä¸åˆ›å»ºæ¨¡å—/包的标题(比如当 docstring 中已ç»æœ‰æ ‡é¢˜æ—¶ï¼Œå¯ä»¥ä½¿ç”¨è¿™ä¸ªé€‰é¡¹ï¼‰"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "把模å—文档放置在å­æ¨¡å—文档之å‰"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "æ ¹æ® PEP-0420 éšå¼å‘½å空间规范解释模å—路径"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "文件åŽç¼€ï¼ˆé»˜è®¤ï¼šrst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "用 sphinx-quickstart 生æˆå®Œæ•´é¡¹ç›®"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "当指定了 --full 选项,把 module_path 附加到 sys.path"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "项目å称(默认:根模å—å)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "项目作者,指定了 --full 选项时使用"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "项目版本,指定了 --full 选项时使用"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "项目å‘行版本,指定了 --full 选项时使用,默认为 --doc-version 的值"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "扩展选项"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s ä¸æ˜¯ä¸€ä¸ªç›®å½•ã€‚"
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "为“%sâ€ä¸€èŠ‚增加标签“%sâ€"
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "æ— æ•ˆçš„æ­£åˆ™è¡¨è¾¾å¼ %r 出现在 %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "已完æˆæºæ–‡ä»¶çš„覆盖率测试,结果ä¿å­˜åœ¨ %(outdir)s/python.txt 中,请查阅。"
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "coverage_c_regexes ä¸­æœ‰æ— æ•ˆçš„æ­£åˆ™è¡¨è¾¾å¼ %r"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "缺少文档的 C API:%s [%s] 在 %s 文件中"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "æ— æ³•å¯¼å…¥æ¨¡å— %s:%s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "缺少文档的 Python 函数: %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "缺少文档的 Python 类:%s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "缺少文档的 Python 方法:%s :: %s :: %s"
@@ -2612,24 +2666,24 @@ msgstr "无效的 pyversion 选项“%sâ€"
msgid "invalid TestCode type"
msgstr "无效的 TestCode 类型"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "已完æˆæºæ–‡ä»¶çš„文档测试,结果ä¿å­˜åœ¨ %(outdir)s/output.txt 中,请查阅。"
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "å— %s 没有代ç æˆ–没有输出,该å—出现在 %s:%s"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "已忽略无效的文档代ç ï¼š%r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== 最长读å–耗时 ======================="
@@ -2640,32 +2694,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "å¯ä»¥ç”¨ extlink 替æ¢ç¡¬ç¼–ç é“¾æŽ¥ %r(请å°è¯•æ”¹ç”¨ %r)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®š Graphviz 指令的内容和文件åå‚æ•°"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "外部 Graphviz 文件 %r ä¸å­˜åœ¨æˆ–读å–失败"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "已忽略无内容的“graphvizâ€æŒ‡ä»¤ã€‚"
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "无法è¿è¡Œ dot 命令 %r(为输出 graphviz 所必需),请检查 graphviz_dot 的设置"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2675,7 +2729,7 @@ msgid ""
"%r"
msgstr "dot å‘生错误并退出:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2685,27 +2739,27 @@ msgid ""
"%r"
msgstr "dot 未生æˆè¾“出文件:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format 的值åªèƒ½æ˜¯â€œpngâ€æˆ–“svgâ€ï¼Œä½†çŽ°åœ¨ç»™å®šçš„是 %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "dot ä»£ç  %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[图表:%s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[图表]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2713,7 +2767,7 @@ msgid ""
"Traceback: %s"
msgstr "无法è¿è¡Œå›¾åƒè½¬æ¢å‘½ä»¤ %r。“sphinx.ext.imgconverterâ€é»˜è®¤ä¾èµ–于 ImageMagick。请确ä¿å·²å®‰è£…了它,或者å¯ä»¥è‡ªå®šä¹‰â€œimage_converterâ€é€‰é¡¹ï¼Œè®¾ç½®ä¸€ä¸ªå…¶ä»–的转æ¢å‘½ä»¤ã€‚\n\n回溯信æ¯ï¼š%s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2723,173 +2777,178 @@ msgid ""
"%r"
msgstr "æ ¼å¼è½¬æ¢å‘生错误并退出:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "无法è¿è¡Œæ ¼å¼è½¬æ¢å‘½ä»¤ %r,请检查 image_converter 的设置"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "无法è¿è¡Œ LaTeX 命令 %r (显示数学公å¼æ‰€å¿…需),请检查 imgmath_latex 的设置"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "无法è¿è¡Œ %s 命令 %r (显示数学公å¼æ‰€å¿…需),请检查 imgmath_%s 的设置"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "显示 LaTeX %r:%s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "å†…è” LaTeX %r:%s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "intersphinx 清å•è¢«ç§»åŠ¨è¿‡ï¼š%s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "正在从 %s 加载 intersphinx 清å•â€¦â€¦"
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "在读å–这些清å•æ—¶é‡åˆ°äº†ä¸€äº›é—®é¢˜ï¼Œä½†å·²æ‰¾åˆ°å¯ç”¨æ›¿ä»£ï¼š"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "无法访问任何清å•ï¼Œé—®é¢˜å¦‚下:"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(在 %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(在 %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "未找到用于外部交å‰å¼•ç”¨çš„清å•ï¼š%s"
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "未找到用于外部交å‰å¼•ç”¨çš„角色:%s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "未找到外部 %s:%s 引用目标:%s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "intersphinx 标识符 %r ä¸æ˜¯å­—符串,已忽略"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "æ— æ³•è¯»å– intersphinx_mapping[%s],已忽略:%r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[æºä»£ç ]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "待处ç†"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "å‘现待处ç†æ¡ç›®ï¼š%s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> è§ %s,第 %d 行。)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "原始æ¡ç›®"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "正在高亮模å—代ç â€¦â€¦"
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[文档]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "模å—代ç "
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s æºä»£ç </h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "概览:模å—代ç "
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>代ç å¯ç”¨çš„所有模å—</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "无效的 member-order 选项值:%s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "无效的 class-doc-from 选项值:%s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "无效的 auto%s ç­¾å(%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "在格å¼åŒ– %s çš„å‚数时报错:%s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc:无法确定是å¦ç”Ÿæˆ %s.%s (%r) 的文档,抛出了下列异常:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2897,112 +2956,112 @@ msgid ""
"explicit module name)"
msgstr "无法判断导入哪个模å—以自动生æˆæ–‡æ¡£ %r(å°è¯•åœ¨æ–‡æ¡£ä¸­ä½¿ç”¨â€œmoduleâ€æˆ–“currentmoduleâ€æŒ‡ä»¤ï¼Œæˆ–者显å¼ç»™å®šæ¨¡å—å)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "检测到仿制的对象:%r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "在格å¼åŒ– %s çš„ç­¾åæ—¶å‘生错误:%s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "automodule å中的“::â€æ— æ„义"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "automodule %s 给定了函数签åå‚数或返回类型标注"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ 应是一个字符串列表,而ä¸æ˜¯ %r ï¼ˆå‡ºçŽ°åœ¨æ¨¡å— %s 中) -- 已忽略__all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ":members: 选项中涉åŠçš„属性ä¸å­˜åœ¨ï¼šæ¨¡å— %s,属性%s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "无法获å–函数 %s çš„ç­¾å:%s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "无法获å–构造函数 %s çš„ç­¾å:%s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "基类:%s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "指定了 %s 属性,但对象 %s 缺少该属性"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "%s 的别å"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "TypeVar(%s) 的别å"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "无法获å–方法 %s çš„ç­¾å:%s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "%s 上有无效的 __slots__,已忽略。"
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "æ— æ³•è§£æž %r 的默认å‚数值:%s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "无法更新 %r çš„ç­¾å:未找到å‚数:%s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "æ— æ³•è§£æž %r 的类型注释:%s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "自动摘è¦å¼•ç”¨äº†æŽ’除的文档 %r,已忽略。"
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "自动摘è¦ï¼šæ— æ³•æ‰¾åˆ°å­˜æ ¹æ–‡ä»¶ %r。请检查你的 autosummary_generate 设置。"
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "在自动摘è¦ä¸­æŒ‡å®šæ ‡é¢˜æ—¶ä¹Ÿéœ€è¦æŒ‡å®š :toctree: 选项,已忽略。"
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -3010,26 +3069,26 @@ msgid ""
"%s"
msgstr "自动摘è¦ï¼šæ— æ³•å¯¼å…¥ %s。\nå¯èƒ½åŽŸå› ï¼š\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "无法解æžå称 %s"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "无法导入对象 %s"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate é…置项:文件 %s ä¸å­˜åœ¨"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "自动摘è¦å†…éƒ¨ä¼šç”Ÿæˆ .rst 文件,但是 source_suffix ä¸­æœªåŒ…å« .rst,已跳过。"
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3102,99 +3161,99 @@ msgid ""
"%(default)s)"
msgstr "仅生æˆæ¨¡å—中 __all__ 属性æˆå‘˜çš„文档。(默认值:%(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "关键字å‚æ•°"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "示例"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "示例"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "备注"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "其他å‚æ•°"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "接å—"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "引用"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "警告"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "生æˆå™¨"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "无效的值集åˆï¼ˆç¼ºå°‘å³æ‹¬å·ï¼‰ï¼š%s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "无效的值集åˆï¼ˆç¼ºå°‘左括å·ï¼‰ï¼š%s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "异常的字符串字é¢é‡ï¼ˆç¼ºå°‘å³å¼•å·ï¼‰ï¼š%s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "异常的字符串字é¢é‡ï¼ˆç¼ºå°‘左引å·ï¼‰ï¼š%s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "注æ„"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "å°å¿ƒ"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "å±é™©"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "错误"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "æ示"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "é‡è¦"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "备注"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "å‚è§"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "å°æŠ€å·§"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "警告"
@@ -3226,7 +3285,7 @@ msgid "Table of Contents"
msgstr "目录"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "æœç´¢"
@@ -3359,34 +3418,22 @@ msgstr "下一主题"
msgid "next chapter"
msgstr "下一章"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "请激活 JavaScript 以开å¯æœç´¢åŠŸèƒ½ã€‚"
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "当æœç´¢å¤šä¸ªå…³é”®è¯æ—¶ï¼Œåªä¼šæ˜¾ç¤ºåŒæ—¶åŒ…å«æ‰€æœ‰å…³é”®è¯çš„内容。"
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "æœç´¢"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "æœç´¢ç»“æžœ"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "您的æœç´¢æ²¡æœ‰åŒ¹é…到文档。请确ä¿å…³é”®è¯æ‹¼å†™æ­£ç¡®ï¼Œå¹¶ä¸”选择了åˆé€‚的分类。"
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "快速æœç´¢"
@@ -3423,20 +3470,30 @@ msgstr "C API çš„å˜æ›´"
msgid "Other changes"
msgstr "其他å˜æ›´"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "æœç´¢ç»“æžœ"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "您的æœç´¢æ²¡æœ‰åŒ¹é…到文档。请确ä¿å…³é”®è¯æ‹¼å†™æ­£ç¡®ï¼Œå¹¶ä¸”选择了åˆé€‚的分类。"
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "æœç´¢å®Œæˆï¼ŒåŒ¹é…到 ${resultCount} 页。"
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "正在æœç´¢ä¸­"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "正在准备æœç´¢â€¦â€¦"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ",在 "
@@ -3457,30 +3514,30 @@ msgstr "展开边æ "
msgid "Contents"
msgstr "目录"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "索引页使用了 4 列布局,å¯èƒ½æ˜¯ä½ æ‰€ç”¨çš„扩展出现了 Bug:%r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "脚注 [%s] 没有被引用过。"
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "脚注 [#] 没有被引用过。"
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3492,13 +3549,13 @@ msgid ""
"{1}"
msgstr "译文中的引用与原文ä¸ä¸€è‡´ã€‚原文中为:{0},译文中为:{1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "译文中的引文引用与原文ä¸ä¸€è‡´ã€‚原文中为:{0},译文中为:{1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3525,90 +3582,90 @@ msgstr "未找到 %s:%s 的引用目标: %s"
msgid "%r reference target not found: %s"
msgstr "未找到 %r 的引用目标:%s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "无法拉å–远程图åƒï¼š%s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "无法拉å–远程图åƒï¼š%s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "未知的图åƒæ ¼å¼ï¼š%s……"
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "æºç ä¸­å­˜åœ¨ç¼–ç æ— æ³•è¯†åˆ«çš„字符,已ç»æ›¿æ¢ä¸ºâ€œ?â€ï¼š%r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "已跳过"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "失败"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "%s 域中的问题:字段应采用“%sâ€è§’色,但域中并ä¸åŒ…å«è¯¥è§’色。"
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "未知的指令或角色å称:%s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "未知节点类型:%r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "读å–æ—¶å‘生错误:%s,%s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "写入时å‘生错误:%s,%s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "无效的日期格å¼ã€‚如果你想直接输出日期字符串,请用å•å¼•å·åŒ…裹该字符串:%s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr "%r ä¸å†é€‚用于索引款目(æºè‡ª %r 款目)。请使用“pair: %sâ€ä½œä¸ºæ›¿ä»£ã€‚"
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "目录树引用的文件 %r ä¸å­˜åœ¨"
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "only 指令的表达å¼æ±‚值时抛出异常:%s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "未找到默认角色 %s"
@@ -3631,27 +3688,27 @@ msgstr "没有给 %s èŠ‚ç‚¹åˆ†é… ID"
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "无法获å–图åƒå°ºå¯¸ï¼Œå·²å¿½ç•¥ :scale: 选项。"
@@ -3668,13 +3725,13 @@ msgstr ":mathdepth: 值过大,已忽略。"
msgid "document title is not a single Text node"
msgstr "文档标题ä¸æ˜¯ä¸€ä¸ªå•çº¯æ–‡æœ¬èŠ‚点"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "在节ã€è¯é¢˜ã€è¡¨æ ¼ã€è­¦ç¤ºæˆ–è¾¹æ ä»¥å¤–çš„ä½ç½®å‘现标题节点"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "脚注"
@@ -3693,20 +3750,20 @@ msgstr "无效的é‡çº²å•ä½ %s,已忽略。"
msgid "unknown index entry type %s found"
msgstr "å‘现未知的索引æ¡ç›®ç±»åž‹ %s"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[图片: %s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[图片]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "在图示之外å‘现了图题。"
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "未实现的节点类型:%r"
diff --git a/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo
index 12e66b2..131d174 100644
--- a/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po
index 9a7b9f4..74aad20 100644
--- a/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_HK/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (Hong Kong) (http://app.transifex.com/sphinx-doc/sphinx-1/language/zh_HK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: zh_HK\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo
index 3ac67e1..4a4c5d3 100644
--- a/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po
index e949589..40634ca 100644
--- a/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_TW.Big5/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Chinese (Taiwan) (Big5) (http://app.transifex.com/sphinx-doc/sphinx-1/language/zh_TW.Big5/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: zh_TW.Big5\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -37,104 +37,104 @@ msgstr ""
msgid "Running Sphinx v%s"
msgstr ""
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr ""
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr ""
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr ""
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr ""
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr ""
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr ""
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr ""
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr ""
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr ""
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr ""
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr ""
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr ""
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr ""
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr ""
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr ""
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr ""
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr ""
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr ""
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -142,12 +142,12 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr ""
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -155,70 +155,75 @@ msgid ""
"explicit"
msgstr ""
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr ""
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr ""
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr ""
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr ""
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr ""
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr ""
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr ""
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr ""
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
+msgid "No such config value: %r"
msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr ""
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr ""
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr ""
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -226,290 +231,327 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr ""
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr ""
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr ""
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr ""
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr ""
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr ""
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr ""
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr ""
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr ""
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr ""
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr ""
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr ""
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr ""
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr ""
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr ""
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr ""
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
msgstr ""
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr ""
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
msgstr ""
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr ""
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr ""
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr ""
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr ""
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr ""
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr ""
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr ""
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr ""
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr ""
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr ""
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr ""
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr ""
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr ""
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr ""
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr ""
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr ""
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr ""
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr ""
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr ""
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr ""
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr ""
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr ""
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr ""
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr ""
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr ""
-#: sphinx/theming.py:77
+#: sphinx/theming.py:125
#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
+msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr ""
-#: sphinx/theming.py:79
+#: sphinx/theming.py:140
#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
+msgid "unsupported theme option %r given"
msgstr ""
-#: sphinx/theming.py:85
+#: sphinx/theming.py:206
#, python-format
-msgid "no theme named %r found, inherited by %r"
+msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr ""
-#: sphinx/theming.py:108
+#: sphinx/theming.py:226
#, python-format
-msgid "setting %s.%s occurs in none of the searched theme configs"
+msgid "no theme named %r found (missing theme.toml?)"
msgstr ""
-#: sphinx/theming.py:127
+#: sphinx/theming.py:259
#, python-format
-msgid "unsupported theme option %r given"
+msgid "The %r theme has circular inheritance"
msgstr ""
-#: sphinx/theming.py:216
+#: sphinx/theming.py:262
#, python-format
-msgid "file %r on theme path is not a valid zipfile or contains no theme"
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
msgstr ""
-#: sphinx/theming.py:230
+#: sphinx/theming.py:269
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
msgstr ""
#: sphinx/builders/__init__.py:183
@@ -526,8 +568,8 @@ msgstr ""
msgid "building [mo]: "
msgstr ""
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr ""
@@ -576,7 +618,7 @@ msgstr ""
msgid "targets for %d source files that are out of date"
msgstr ""
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr ""
@@ -585,50 +627,50 @@ msgstr ""
msgid "looking for now-outdated files... "
msgstr ""
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr ""
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr ""
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr ""
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr ""
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr ""
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr ""
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr ""
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr ""
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr ""
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr ""
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
msgstr ""
@@ -637,36 +679,36 @@ msgstr ""
msgid "duplicated ToC entry found: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr ""
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr ""
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr ""
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr ""
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr ""
@@ -674,470 +716,470 @@ msgstr ""
msgid "writing content.opf file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr ""
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr ""
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr ""
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr ""
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr ""
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr ""
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr ""
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr ""
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr ""
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr ""
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr ""
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr ""
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr ""
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr ""
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr ""
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr ""
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr ""
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr ""
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr ""
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr ""
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr ""
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr ""
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr ""
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr ""
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr ""
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr ""
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr ""
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr ""
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr ""
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr ""
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr ""
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr ""
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr ""
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr ""
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr ""
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr ""
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr ""
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr ""
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr ""
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr ""
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr ""
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr ""
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr ""
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr ""
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr ""
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr ""
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr ""
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr ""
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr ""
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr ""
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr ""
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
msgstr ""
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr ""
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr ""
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr ""
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr ""
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr ""
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr ""
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr ""
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr ""
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr ""
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr ""
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr ""
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr ""
@@ -1152,15 +1194,15 @@ msgstr ""
msgid "%r doesn't have \"%s\" setting"
msgstr ""
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
msgstr ""
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
msgstr ""
@@ -1219,8 +1261,8 @@ msgstr ""
msgid "job number should be a positive number"
msgstr ""
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr ""
@@ -1252,7 +1294,9 @@ msgid "path to output directory"
msgstr ""
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
msgstr ""
#: sphinx/cmd/build.py:146
@@ -1260,249 +1304,254 @@ msgid "general options"
msgstr ""
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
+msgid "builder to use (default: 'html')"
msgstr ""
-#: sphinx/cmd/build.py:151
-msgid "write all files (default: only write new and changed files)"
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
msgstr ""
-#: sphinx/cmd/build.py:154
-msgid "don't use a saved environment, always read all files"
+#: sphinx/cmd/build.py:155
+msgid "write all files (default: only write new and changed files)"
msgstr ""
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
+#: sphinx/cmd/build.py:158
+msgid "don't use a saved environment, always read all files"
msgstr ""
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
+msgid "path options"
msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
msgstr ""
#: sphinx/cmd/build.py:171
-msgid "override a setting in configuration file"
+msgid "use no configuration file, only use settings from -D options"
msgstr ""
#: sphinx/cmd/build.py:174
-msgid "pass a value into HTML templates"
+msgid "override a setting in configuration file"
msgstr ""
#: sphinx/cmd/build.py:177
-msgid "define tag: include \"only\" blocks with TAG"
+msgid "pass a value into HTML templates"
msgstr ""
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
+#: sphinx/cmd/build.py:180
+msgid "define tag: include \"only\" blocks with TAG"
msgstr ""
#: sphinx/cmd/build.py:182
-msgid "console output options"
+msgid "nit-picky mode: warn about all missing references"
msgstr ""
#: sphinx/cmd/build.py:184
+msgid "console output options"
+msgstr ""
+
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr ""
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr ""
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr ""
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr ""
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr ""
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr ""
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr ""
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr ""
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr ""
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr ""
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr ""
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr ""
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr ""
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr ""
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr ""
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr ""
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr ""
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr ""
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr ""
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr ""
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr ""
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr ""
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr ""
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr ""
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr ""
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr ""
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr ""
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr ""
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr ""
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr ""
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr ""
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr ""
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr ""
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1511,15 +1560,15 @@ msgid ""
"just set both to the same value."
msgstr ""
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr ""
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr ""
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1529,21 +1578,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr ""
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr ""
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr ""
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1551,91 +1600,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr ""
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr ""
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr ""
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr ""
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr ""
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr ""
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr ""
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr ""
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr ""
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr ""
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr ""
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr ""
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr ""
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr ""
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr ""
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1645,135 +1694,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr ""
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr ""
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr ""
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr ""
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr ""
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr ""
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr ""
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr ""
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr ""
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr ""
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr ""
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr ""
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr ""
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr ""
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr ""
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr ""
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr ""
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr ""
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr ""
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr ""
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr ""
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr ""
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr ""
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr ""
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr ""
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr ""
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr ""
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr ""
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr ""
@@ -1824,47 +1873,47 @@ msgstr ""
msgid "Line spec %r: no lines pulled from include file %r"
msgstr ""
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr ""
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr ""
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr ""
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr ""
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr ""
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr ""
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr ""
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr ""
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ""
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ""
@@ -1879,433 +1928,438 @@ msgstr ""
msgid "%s %s"
msgstr ""
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
+#: sphinx/domains/changeset.py:23
#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
+msgid "Added in version %s"
msgstr ""
-#: sphinx/domains/c.py:3257
+#: sphinx/domains/changeset.py:24
#, python-format
-msgid "%s (C %s)"
+msgid "Changed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
+#: sphinx/domains/changeset.py:25
+#, python-format
+msgid "Deprecated since version %s"
msgstr ""
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
msgstr ""
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
+#: sphinx/domains/citation.py:71
+#, python-format
+msgid "duplicate citation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
+#: sphinx/domains/citation.py:82
+#, python-format
+msgid "Citation [%s] is not referenced."
msgstr ""
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
+#: sphinx/domains/javascript.py:165
+#, python-format
+msgid "%s() (built-in function)"
msgstr ""
-#: sphinx/domains/c.py:3731
-msgid "variable"
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
+#, python-format
+msgid "%s() (%s method)"
msgstr ""
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
+#: sphinx/domains/javascript.py:168
+#, python-format
+msgid "%s() (class)"
msgstr ""
-#: sphinx/domains/c.py:3733
-msgid "macro"
+#: sphinx/domains/javascript.py:170
+#, python-format
+msgid "%s (global variable or constant)"
msgstr ""
-#: sphinx/domains/c.py:3734
-msgid "struct"
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
+#, python-format
+msgid "%s (%s attribute)"
msgstr ""
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
+#: sphinx/domains/javascript.py:255
+msgid "Arguments"
msgstr ""
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
msgstr ""
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
msgstr ""
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
msgstr ""
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
+#: sphinx/domains/javascript.py:331
+#, python-format
+msgid "%s (module)"
msgstr ""
-#: sphinx/domains/changeset.py:23
-#, python-format
-msgid "New in version %s"
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
msgstr ""
-#: sphinx/domains/changeset.py:24
-#, python-format
-msgid "Changed in version %s"
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
+msgid "method"
msgstr ""
-#: sphinx/domains/changeset.py:25
-#, python-format
-msgid "Deprecated since version %s"
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr ""
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
+msgid "data"
msgstr ""
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
+msgid "attribute"
+msgstr ""
+
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
+msgid "module"
+msgstr ""
+
+#: sphinx/domains/javascript.py:404
#, python-format
-msgid "duplicate citation %s, other instance in %s"
+msgid "duplicate %s description of %s, other %s in %s"
msgstr ""
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/math.py:63
#, python-format
-msgid "Citation [%s] is not referenced."
+msgid "duplicate label of equation %s, other instance in %s"
msgstr ""
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
+msgid "Invalid math_eqref_format: %r"
msgstr ""
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
msgstr ""
-#: sphinx/domains/cpp.py:7340
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
#, python-format
-msgid "%s (C++ %s)"
+msgid ":%s: (directive option)"
msgstr ""
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
msgstr ""
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
+#: sphinx/domains/rst.py:223
+msgid "directive"
msgstr ""
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
msgstr ""
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
+#: sphinx/domains/rst.py:225
+msgid "role"
msgstr ""
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/rst.py:247
#, python-format
-msgid "%s() (built-in function)"
+msgid "duplicate description of %s %s, other instance in %s"
msgstr ""
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/c/__init__.py:146
#, python-format
-msgid "%s() (%s method)"
+msgid "%s (C %s)"
msgstr ""
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
#, python-format
-msgid "%s() (class)"
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
msgstr ""
-#: sphinx/domains/javascript.py:169
-#, python-format
-msgid "%s (global variable or constant)"
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
msgstr ""
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
-#, python-format
-msgid "%s (%s attribute)"
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
msgstr ""
-#: sphinx/domains/javascript.py:253
-msgid "Arguments"
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
msgstr ""
-#: sphinx/domains/javascript.py:329
-#, python-format
-msgid "%s (module)"
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr ""
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
-msgid "method"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
msgstr ""
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
-msgid "data"
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
msgstr ""
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
-msgid "attribute"
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
msgstr ""
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
-msgid "module"
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
msgstr ""
-#: sphinx/domains/javascript.py:401
-#, python-format
-msgid "duplicate %s description of %s, other %s in %s"
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr ""
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
msgstr ""
-#: sphinx/domains/math.py:61
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr ""
+
+#: sphinx/domains/cpp/__init__.py:185
#, python-format
-msgid "duplicate label of equation %s, other instance in %s"
+msgid "%s (C++ %s)"
msgstr ""
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
#, python-format
-msgid "Invalid math_eqref_format: %r"
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
msgstr ""
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
msgstr ""
-#: sphinx/domains/python.py:691
-msgid "Raises"
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
msgstr ""
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr ""
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr ""
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr ""
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr ""
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr ""
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr ""
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr ""
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr ""
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr ""
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr ""
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr ""
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr ""
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr ""
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr ""
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
msgstr ""
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr ""
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr ""
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr ""
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ""
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr ""
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr ""
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr ""
-
-#: sphinx/domains/rst.py:220
-msgid "role"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
msgstr ""
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
msgstr ""
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr ""
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr ""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr ""
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr ""
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr ""
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr ""
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr ""
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr ""
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr ""
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr ""
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr ""
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr ""
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr ""
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr ""
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr ""
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr ""
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr ""
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr ""
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr ""
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr ""
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr ""
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr ""
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr ""
@@ -2322,35 +2376,35 @@ msgstr ""
msgid "extensions changed"
msgstr ""
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr ""
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr ""
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr ""
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr ""
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr ""
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr ""
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr ""
@@ -2374,39 +2428,39 @@ msgstr ""
msgid "Symbols"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr ""
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr ""
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr ""
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr ""
@@ -2416,7 +2470,7 @@ msgstr ""
msgid "Would create file %s."
msgstr ""
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2428,149 +2482,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr ""
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr ""
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr ""
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr ""
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr ""
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr ""
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr ""
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr ""
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr ""
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr ""
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr ""
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr ""
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr ""
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr ""
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr ""
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr ""
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr ""
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr ""
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr ""
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr ""
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr ""
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr ""
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr ""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr ""
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr ""
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr ""
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr ""
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr ""
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr ""
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr ""
@@ -2594,24 +2648,24 @@ msgstr ""
msgid "invalid TestCode type"
msgstr ""
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr ""
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr ""
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr ""
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr ""
@@ -2622,32 +2676,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr ""
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr ""
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr ""
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr ""
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
msgstr ""
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr ""
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2657,7 +2711,7 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2667,27 +2721,27 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr ""
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr ""
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr ""
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr ""
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2695,7 +2749,7 @@ msgid ""
"Traceback: %s"
msgstr ""
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2705,173 +2759,178 @@ msgid ""
"%r"
msgstr ""
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr ""
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr ""
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr ""
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr ""
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
msgstr ""
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr ""
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr ""
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr ""
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr ""
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
+msgid "inventory for external cross-reference not found: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
+msgid "invalid external cross-reference suffix: %r"
msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr ""
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr ""
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr ""
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr ""
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr ""
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr ""
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr ""
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr ""
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr ""
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr ""
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr ""
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr ""
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr ""
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr ""
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2879,112 +2938,112 @@ msgid ""
"explicit module name)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr ""
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr ""
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr ""
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -2992,25 +3051,25 @@ msgid ""
"%s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr ""
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
msgstr ""
#: sphinx/ext/autosummary/generate.py:200
@@ -3084,99 +3143,99 @@ msgid ""
"%(default)s)"
msgstr ""
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr ""
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr ""
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr ""
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr ""
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr ""
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr ""
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr ""
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr ""
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr ""
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr ""
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr ""
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr ""
@@ -3208,7 +3267,7 @@ msgid "Table of Contents"
msgstr ""
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr ""
@@ -3341,34 +3400,22 @@ msgstr ""
msgid "next chapter"
msgstr ""
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr ""
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr ""
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr ""
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr ""
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr ""
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr ""
@@ -3405,20 +3452,30 @@ msgstr ""
msgid "Other changes"
msgstr ""
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr ""
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr ""
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr ""
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ""
@@ -3439,30 +3496,30 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
msgstr ""
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
msgstr ""
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr ""
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr ""
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr ""
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3474,13 +3531,13 @@ msgid ""
"{1}"
msgstr ""
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr ""
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3507,90 +3564,90 @@ msgstr ""
msgid "%r reference target not found: %s"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr ""
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr ""
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr ""
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr ""
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr ""
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr ""
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr ""
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr ""
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr ""
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
msgstr ""
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr ""
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
msgstr ""
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr ""
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr ""
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr ""
@@ -3613,27 +3670,27 @@ msgstr ""
msgid "Link to this term"
msgstr ""
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
msgstr ""
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
msgstr ""
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
msgstr ""
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
msgstr ""
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
msgstr ""
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr ""
@@ -3650,13 +3707,13 @@ msgstr ""
msgid "document title is not a single Text node"
msgstr ""
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr ""
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr ""
@@ -3675,20 +3732,20 @@ msgstr ""
msgid "unknown index entry type %s found"
msgstr ""
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr ""
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr ""
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr ""
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr ""
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
index cebee7d..8551239 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
@@ -2,7 +2,7 @@ Documentation.addTranslations({
"locale": "zh_Hant_TW",
"messages": {
"%(filename)s &#8212; %(docstitle)s": "%(filename)s &#8212; %(docstitle)s",
- "&#169; %(copyright_prefix)s %(copyright)s.": "",
+ "&#169; %(copyright_prefix)s %(copyright)s.": "&#169; %(copyright_prefix)s %(copyright)s.",
", in ": "\uff0c\u65bc ",
"About these documents": "\u95dc\u65bc\u9019\u4e9b\u6587\u4ef6",
"Automatically generated list of changes in version %(version)s": "\u81ea\u52d5\u7522\u751f\u7684 %(version)s \u7248\u8b8a\u66f4\u5217\u8868",
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
index 7dadab4..d776f36 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
Binary files differ
diff --git a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
index eafe14b..06f15e6 100644
--- a/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
@@ -1,5 +1,5 @@
# Translations template for Sphinx.
-# Copyright (C) 2023 ORGANIZATION
+# Copyright (C) 2024 ORGANIZATION
# This file is distributed under the same license as the Sphinx project.
#
# Translators:
@@ -10,19 +10,19 @@
# Hsiaoming Yang <me@lepture.com>, 2018
# Liang-Bo Wang <me@liang2.tw>, 2016
# Liang-Bo Wang <me@liang2.tw>, 2016-2017
-# Steven Hsu <hsuhaochun@gmail.com>, 2021-2022
+# Steven Hsu <hsuhaochun@gmail.com>, 2021-2023
msgid ""
msgstr ""
"Project-Id-Version: Sphinx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2023-08-17 16:40+0000\n"
+"POT-Creation-Date: 2024-04-14 23:27+0000\n"
"PO-Revision-Date: 2013-04-02 08:44+0000\n"
-"Last-Translator: Steven Hsu <hsuhaochun@gmail.com>, 2021-2022\n"
+"Last-Translator: Steven Hsu <hsuhaochun@gmail.com>, 2021-2023\n"
"Language-Team: Chinese (Taiwan) (http://app.transifex.com/sphinx-doc/sphinx-1/language/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.14.0\n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -45,104 +45,104 @@ msgstr "來æºè³‡æ–™å¤¾èˆ‡ç›®çš„資料夾ä¸èƒ½ç‚ºç›¸åŒ"
msgid "Running Sphinx v%s"
msgstr "正在執行 Sphinx v%s 版本"
-#: sphinx/application.py:223
+#: sphinx/application.py:219
#, python-format
msgid ""
"This project needs at least Sphinx v%s and therefore cannot be built with "
"this version."
msgstr "æœ¬å°ˆæ¡ˆéœ€è¦ Sphinx v%s 版或以上,故無法以ç¾ç‰ˆæœ¬ç·¨è­¯ã€‚"
-#: sphinx/application.py:239
+#: sphinx/application.py:235
msgid "making output directory"
msgstr "正在建立輸出目錄"
-#: sphinx/application.py:244 sphinx/registry.py:444
+#: sphinx/application.py:240 sphinx/registry.py:450
#, python-format
msgid "while setting up extension %s:"
msgstr "正在設置擴充套件 %s 時:"
-#: sphinx/application.py:250
+#: sphinx/application.py:246
msgid ""
"'setup' as currently defined in conf.py isn't a Python callable. Please "
"modify its definition to make it a callable function. This is needed for "
"conf.py to behave as a Sphinx extension."
msgstr "ç›®å‰åœ¨ conf.py 裡定義的 'setup' 並éžä¸€å€‹ Python çš„å¯å‘¼å«ç‰©ä»¶ã€‚請將其定義修改為一個å¯å‘¼å«çš„函å¼ã€‚è‹¥è¦ä½¿ conf.py 以 Sphinx 擴充套件的方å¼é‹ä½œï¼Œé€™å€‹ä¿®æ”¹æ˜¯å¿…須的。"
-#: sphinx/application.py:281
+#: sphinx/application.py:277
#, python-format
msgid "loading translations [%s]... "
msgstr "正在載入翻譯 [%s]..."
-#: sphinx/application.py:298 sphinx/util/display.py:84
+#: sphinx/application.py:294 sphinx/util/display.py:85
msgid "done"
msgstr "完æˆ"
-#: sphinx/application.py:300
+#: sphinx/application.py:296
msgid "not available for built-in messages"
msgstr "ä¸æ˜¯æœ‰æ•ˆçš„內建訊æ¯"
-#: sphinx/application.py:314
+#: sphinx/application.py:310
msgid "loading pickled environment"
msgstr "正在載入已 pickle 的環境"
-#: sphinx/application.py:322
+#: sphinx/application.py:318
#, python-format
msgid "failed: %s"
msgstr "失敗:%s"
-#: sphinx/application.py:336
+#: sphinx/application.py:332
msgid "No builder selected, using default: html"
msgstr "沒有指定 builder,使用é è¨­ï¼šhtml"
-#: sphinx/application.py:369
+#: sphinx/application.py:365
msgid "succeeded"
msgstr "æˆåŠŸ"
-#: sphinx/application.py:370
+#: sphinx/application.py:366
msgid "finished with problems"
msgstr "完æˆä½†æœ‰å•é¡Œ"
-#: sphinx/application.py:374
+#: sphinx/application.py:370
#, python-format
msgid "build %s, %s warning (with warnings treated as errors)."
msgstr "建立 %s,%s 警告(警告被視為錯誤)。"
-#: sphinx/application.py:376
+#: sphinx/application.py:372
#, python-format
msgid "build %s, %s warnings (with warnings treated as errors)."
msgstr "建立 %s,%s 警告(警告被視為錯誤)。"
-#: sphinx/application.py:379
+#: sphinx/application.py:375
#, python-format
msgid "build %s, %s warning."
msgstr "建立 %s,%s 警告。"
-#: sphinx/application.py:381
+#: sphinx/application.py:377
#, python-format
msgid "build %s, %s warnings."
msgstr "建立 %s,%s 警告。"
-#: sphinx/application.py:385
+#: sphinx/application.py:381
#, python-format
msgid "build %s."
msgstr "建立 %s。"
-#: sphinx/application.py:616
+#: sphinx/application.py:610
#, python-format
msgid "node class %r is already registered, its visitors will be overridden"
msgstr "node class %r 已經被註冊,它的訪客將會被覆寫"
-#: sphinx/application.py:695
+#: sphinx/application.py:689
#, python-format
msgid "directive %r is already registered, it will be overridden"
msgstr "指令 %r 已經被註冊,它將會被覆寫"
-#: sphinx/application.py:717 sphinx/application.py:739
+#: sphinx/application.py:711 sphinx/application.py:733
#, python-format
msgid "role %r is already registered, it will be overridden"
msgstr "role %r 已經被註冊,它將會被覆寫"
-#: sphinx/application.py:1288
+#: sphinx/application.py:1282
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel reading, "
@@ -150,12 +150,12 @@ msgid ""
"explicit"
msgstr "%s 擴充套件並未宣告平行讀å–是å¦å®‰å…¨ï¼Œå‡è¨­ç‚ºå¦ - 請尋求擴充套件作者以檢查並明確表示"
-#: sphinx/application.py:1292
+#: sphinx/application.py:1286
#, python-format
msgid "the %s extension is not safe for parallel reading"
msgstr "%s 擴充套件å°æ–¼å¹³è¡Œè®€å–是ä¸å®‰å…¨çš„"
-#: sphinx/application.py:1295
+#: sphinx/application.py:1289
#, python-format
msgid ""
"the %s extension does not declare if it is safe for parallel writing, "
@@ -163,70 +163,75 @@ msgid ""
"explicit"
msgstr "%s 擴充套件並未宣告平行寫入是å¦å®‰å…¨ï¼Œå‡è¨­ç‚ºå¦ - 請尋求擴充套件作者以檢查並明確表示"
-#: sphinx/application.py:1299
+#: sphinx/application.py:1293
#, python-format
msgid "the %s extension is not safe for parallel writing"
msgstr "%s 擴充套件å°æ–¼å¹³è¡Œå¯«å…¥æ˜¯ä¸å®‰å…¨çš„"
-#: sphinx/application.py:1307 sphinx/application.py:1311
+#: sphinx/application.py:1301 sphinx/application.py:1305
#, python-format
msgid "doing serial %s"
msgstr "執行串列 %s"
-#: sphinx/config.py:179
+#: sphinx/config.py:309
#, python-format
msgid "config directory doesn't contain a conf.py file (%s)"
msgstr "config è³‡æ–™å¤¾æ²’æœ‰åŒ…å« conf.py 檔案 (%s)"
-#: sphinx/config.py:188
+#: sphinx/config.py:318
msgid ""
"Invalid configuration value found: 'language = None'. Update your "
"configuration to a valid language code. Falling back to 'en' (English)."
msgstr "找到無效的組態值: 'language = None' 。請以一個有效的語言碼更新您的é…置。跳回 'en' (英語)。"
-#: sphinx/config.py:217
+#: sphinx/config.py:341
#, python-format
msgid ""
"cannot override dictionary config setting %r, ignoring (use %r to set "
"individual elements)"
msgstr "無法覆寫資料夾組態設定 %r,忽略中(使用 %r 來設定個別元素)"
-#: sphinx/config.py:226
+#: sphinx/config.py:350
#, python-format
msgid "invalid number %r for config value %r, ignoring"
msgstr "無效的數字 %r 於組態值 %r,忽略中"
-#: sphinx/config.py:231
+#: sphinx/config.py:355
#, python-format
msgid "cannot override config setting %r with unsupported type, ignoring"
msgstr "無法以未支æ´çš„型別覆寫組態設定 %r,忽略中"
-#: sphinx/config.py:260
+#: sphinx/config.py:378
#, python-format
msgid "unknown config value %r in override, ignoring"
msgstr "覆寫未知的組態值 %r,忽略中"
-#: sphinx/config.py:288
+#: sphinx/config.py:418
#, python-format
-msgid "No such config value: %s"
-msgstr "無此類組態值:%s"
+msgid "No such config value: %r"
+msgstr ""
-#: sphinx/config.py:312
+#: sphinx/config.py:440
#, python-format
msgid "Config value %r already present"
msgstr "組態值 %r 已經存在"
-#: sphinx/config.py:360
+#: sphinx/config.py:473
+#, python-format
+msgid "cannot cache unpickable configuration value: %r"
+msgstr ""
+
+#: sphinx/config.py:509
#, python-format
msgid "There is a syntax error in your configuration file: %s\n"
msgstr "在您的組態檔中有一個語法錯誤:%s\n"
-#: sphinx/config.py:363
+#: sphinx/config.py:512
msgid ""
"The configuration file (or one of the modules it imports) called sys.exit()"
msgstr "組態檔(或它 import 的其中一個模組)呼å«äº† sys.exit()"
-#: sphinx/config.py:370
+#: sphinx/config.py:519
#, python-format
msgid ""
"There is a programmable error in your configuration file:\n"
@@ -234,291 +239,328 @@ msgid ""
"%s"
msgstr "在您的組態檔中有一個程å¼åŒ–錯誤:\n\n%s"
-#: sphinx/config.py:393
+#: sphinx/config.py:540
+#, python-format
+msgid "Failed to convert %r to a set or tuple"
+msgstr ""
+
+#: sphinx/config.py:565
#, python-format
msgid ""
"The config value `source_suffix' expects a string, list of strings, or "
"dictionary. But `%r' is given."
msgstr "組態值 `source_suffix' é æœŸæ˜¯ä¸€å€‹å­—串ã€ä¸€çµ„字串,或字典。但是 `%r' 被給予。"
-#: sphinx/config.py:413
+#: sphinx/config.py:585
#, python-format
msgid "Section %s"
msgstr "章節 %s"
-#: sphinx/config.py:414
+#: sphinx/config.py:586
#, python-format
msgid "Fig. %s"
msgstr "圖 %s"
-#: sphinx/config.py:415
+#: sphinx/config.py:587
#, python-format
msgid "Table %s"
msgstr "表格 %s"
-#: sphinx/config.py:416
+#: sphinx/config.py:588
#, python-format
msgid "Listing %s"
msgstr "列表 %s"
-#: sphinx/config.py:488
+#: sphinx/config.py:663
msgid ""
"The config value `{name}` has to be a one of {candidates}, but `{current}` "
"is given."
msgstr "組態值 `{name}` 必須是 {candidates} 的其中之一,但 `{current}` 被給予。"
-#: sphinx/config.py:506
+#: sphinx/config.py:687
msgid ""
"The config value `{name}' has type `{current.__name__}'; expected "
"{permitted}."
msgstr "組態值 `{name}' 有 `{current.__name__}' 型別;é æœŸ {permitted} 。"
-#: sphinx/config.py:518
+#: sphinx/config.py:700
msgid ""
"The config value `{name}' has type `{current.__name__}', defaults to "
"`{default.__name__}'."
msgstr "組態值 `{name}' 有 `{current.__name__}' 型別;é è¨­ç‚º `{default.__name__}' 。"
-#: sphinx/config.py:528
+#: sphinx/config.py:711
#, python-format
msgid "primary_domain %r not found, ignored."
msgstr "找ä¸åˆ° primary_domain %r,已略éŽã€‚"
-#: sphinx/config.py:540
+#: sphinx/config.py:723
msgid ""
"Since v2.0, Sphinx uses \"index\" as root_doc by default. Please add "
"\"root_doc = 'contents'\" to your conf.py."
msgstr "從 v2.0 開始,Sphinx é è¨­ä½¿ç”¨ \"index\" 作為 root_doc。請在您的 conf.py 加上 \"root_doc = 'contents'\"。"
-#: sphinx/events.py:63
+#: sphinx/events.py:64
#, python-format
msgid "Event %r already present"
msgstr "事件 %r 已經存在"
-#: sphinx/events.py:69
+#: sphinx/events.py:70
#, python-format
msgid "Unknown event name: %s"
msgstr "未知的事件å稱:%s"
-#: sphinx/events.py:107
+#: sphinx/events.py:109
#, python-format
msgid "Handler %r for event %r threw an exception"
msgstr "å°æ–¼äº‹ä»¶ %r çš„ handler %r 拋出了一個例外"
-#: sphinx/extension.py:53
+#: sphinx/extension.py:55
#, python-format
msgid ""
"The %s extension is required by needs_extensions settings, but it is not "
"loaded."
msgstr "擴充套件 %s 被 needs_extensions 的設定所è¦æ±‚,但它沒有被載入。"
-#: sphinx/extension.py:69
+#: sphinx/extension.py:76
#, python-format
msgid ""
"This project needs the extension %s at least in version %s and therefore "
"cannot be built with the loaded version (%s)."
msgstr "這個專案需è¦æ“´å……套件 %s 的最低版本是 %s,所以無法以載入的版本 (%s) 被建立。"
-#: sphinx/highlighting.py:149
+#: sphinx/highlighting.py:155
#, python-format
msgid "Pygments lexer name %r is not known"
msgstr "Pygments lexer å稱 %r ä¸æ˜¯å·²çŸ¥çš„"
-#: sphinx/highlighting.py:176
+#: sphinx/highlighting.py:189
#, python-format
msgid ""
"Lexing literal_block %r as \"%s\" resulted in an error at token: %r. "
"Retrying in relaxed mode."
-msgstr ""
+msgstr "å°‡ literal_block %r lex 為 \"%s\" 時,在 token %r 造æˆéŒ¯èª¤ã€‚正在以 relaxed 模å¼é‡è©¦ä¸­ã€‚"
-#: sphinx/project.py:65
+#: sphinx/project.py:66
#, python-format
msgid ""
"multiple files found for the document \"%s\": %r\n"
"Use %r for the build."
msgstr "為文件 \"%s\" 找到多個檔案: %r\n使用 %r 來建立。"
-#: sphinx/project.py:74
+#: sphinx/project.py:81
#, python-format
msgid "Ignored unreadable document %r."
-msgstr ""
+msgstr "已略éŽç„¡æ³•è®€å–的文件 %r 。"
-#: sphinx/registry.py:136
+#: sphinx/registry.py:142
#, python-format
msgid "Builder class %s has no \"name\" attribute"
msgstr "Builder class %s 沒有 \"name\" 屬性"
-#: sphinx/registry.py:138
+#: sphinx/registry.py:144
#, python-format
msgid "Builder %r already exists (in module %s)"
msgstr "Builder %r 已存在(於 %s 模組)"
-#: sphinx/registry.py:151
+#: sphinx/registry.py:157
#, python-format
msgid "Builder name %s not registered or available through entry point"
msgstr "Builder å稱 %s 未註冊或無法從 entry point å–å¾—"
-#: sphinx/registry.py:158
+#: sphinx/registry.py:164
#, python-format
msgid "Builder name %s not registered"
msgstr "Builder å稱 %s 未註冊"
-#: sphinx/registry.py:165
+#: sphinx/registry.py:171
#, python-format
msgid "domain %s already registered"
msgstr "domain %s 已註冊"
-#: sphinx/registry.py:188 sphinx/registry.py:201 sphinx/registry.py:212
+#: sphinx/registry.py:194 sphinx/registry.py:207 sphinx/registry.py:218
#, python-format
msgid "domain %s not yet registered"
msgstr "domain %s 尚未被註冊"
-#: sphinx/registry.py:192
+#: sphinx/registry.py:198
#, python-format
msgid "The %r directive is already registered to domain %s"
msgstr "%r 指令已註冊給 domain %s"
-#: sphinx/registry.py:204
+#: sphinx/registry.py:210
#, python-format
msgid "The %r role is already registered to domain %s"
msgstr "%r 角色已註冊給 domain %s"
-#: sphinx/registry.py:215
+#: sphinx/registry.py:221
#, python-format
msgid "The %r index is already registered to domain %s"
msgstr "%r 索引已註冊給 domain %s"
-#: sphinx/registry.py:246
+#: sphinx/registry.py:252
#, python-format
msgid "The %r object_type is already registered"
msgstr "%r object_type 已註冊"
-#: sphinx/registry.py:272
+#: sphinx/registry.py:278
#, python-format
msgid "The %r crossref_type is already registered"
msgstr "%r crossref_type 已註冊"
-#: sphinx/registry.py:279
+#: sphinx/registry.py:285
#, python-format
msgid "source_suffix %r is already registered"
msgstr "source_suffix %r 已註冊"
-#: sphinx/registry.py:288
+#: sphinx/registry.py:294
#, python-format
msgid "source_parser for %r is already registered"
msgstr "å°æ–¼ %r çš„ source_parser 已註冊"
-#: sphinx/registry.py:296
+#: sphinx/registry.py:302
#, python-format
msgid "Source parser for %s not registered"
msgstr "å°æ–¼ %s çš„æºç¢¼å‰–æžå™¨æœªè¨»å†Š"
-#: sphinx/registry.py:312
+#: sphinx/registry.py:318
#, python-format
msgid "Translator for %r already exists"
msgstr "å°æ–¼ %r 的翻譯器已經存在"
-#: sphinx/registry.py:328
+#: sphinx/registry.py:334
#, python-format
msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r"
msgstr "å°æ–¼ add_node() çš„ kwargs 必須是一個 (visit, depart) 函å¼å€¼çµ„:%r=%r"
-#: sphinx/registry.py:411
+#: sphinx/registry.py:417
#, python-format
msgid "enumerable_node %r already registered"
msgstr "enumerable_node %r 已註冊"
-#: sphinx/registry.py:423
+#: sphinx/registry.py:429
#, python-format
msgid "math renderer %s is already registered"
msgstr "數學æ繪器 %s 已註冊"
-#: sphinx/registry.py:438
+#: sphinx/registry.py:444
#, python-format
msgid ""
"the extension %r was already merged with Sphinx since version %s; this "
"extension is ignored."
msgstr "擴充套件 %r 已被併入 %s 版以上的 Sphinx:此擴充套件已略éŽã€‚"
-#: sphinx/registry.py:449
+#: sphinx/registry.py:455
msgid "Original exception:\n"
msgstr "原始的例外:\n"
-#: sphinx/registry.py:450
+#: sphinx/registry.py:456
#, python-format
msgid "Could not import extension %s"
msgstr "無法引入擴充套件 %s"
-#: sphinx/registry.py:455
+#: sphinx/registry.py:461
#, python-format
msgid ""
"extension %r has no setup() function; is it really a Sphinx extension "
"module?"
msgstr "擴充套件 %r 沒有 setup() 函å¼ï¼›å®ƒçœŸçš„是 Sphinx 擴充套件模組嗎?"
-#: sphinx/registry.py:464
+#: sphinx/registry.py:470
#, python-format
msgid ""
"The %s extension used by this project needs at least Sphinx v%s; it "
"therefore cannot be built with this version."
msgstr "此專案使用的 %s æ“´å……å¥—ä»¶éœ€è¦ Sphinx v%s 以上的版本;所以它無法以此版本被建立。"
-#: sphinx/registry.py:472
+#: sphinx/registry.py:478
#, python-format
msgid ""
"extension %r returned an unsupported object from its setup() function; it "
"should return None or a metadata dictionary"
msgstr "擴充套件 %r 從它的 setup() 函å¼å›žå‚³ä¸€å€‹æœªæ”¯æ´ç‰©ä»¶ï¼›å®ƒæ‡‰è©²å›žå‚³ None 或一個元數據資料夾"
-#: sphinx/roles.py:178
+#: sphinx/roles.py:201
#, python-format
msgid "Python Enhancement Proposals; PEP %s"
msgstr "Python Enhancement Proposals; PEP %s"
-#: sphinx/roles.py:194
+#: sphinx/roles.py:222
#, python-format
msgid "invalid PEP number %s"
msgstr "無效的 PEP 號碼 %s"
-#: sphinx/roles.py:228
+#: sphinx/roles.py:257
#, python-format
msgid "invalid RFC number %s"
msgstr "無效的 RFC 號碼 %s"
-#: sphinx/theming.py:77
-#, python-format
-msgid "theme %r doesn't have \"theme\" setting"
-msgstr "主題 %r 沒有 \"theme\" 設定"
-
-#: sphinx/theming.py:79
-#, python-format
-msgid "theme %r doesn't have \"inherit\" setting"
-msgstr "主題 %r 沒有 \"inherit\" 設定"
-
-#: sphinx/theming.py:85
-#, python-format
-msgid "no theme named %r found, inherited by %r"
-msgstr "未找到å為 %r 的主題,被 %r 繼承"
-
-#: sphinx/theming.py:108
+#: sphinx/theming.py:125
#, python-format
msgid "setting %s.%s occurs in none of the searched theme configs"
msgstr "設定 %s。%s ä¸åœ¨å·²è¢«æœå°‹çš„主題組態中出ç¾"
-#: sphinx/theming.py:127
+#: sphinx/theming.py:140
#, python-format
msgid "unsupported theme option %r given"
msgstr "未支æ´çš„主題é¸é … %r 被給予"
-#: sphinx/theming.py:216
+#: sphinx/theming.py:206
#, python-format
msgid "file %r on theme path is not a valid zipfile or contains no theme"
msgstr "主題路徑中的檔案 %r ä¸æ˜¯æœ‰æ•ˆçš„ zipfile 或未包å«ä¸»é¡Œ"
-#: sphinx/theming.py:230
+#: sphinx/theming.py:226
+#, python-format
+msgid "no theme named %r found (missing theme.toml?)"
+msgstr ""
+
+#: sphinx/theming.py:259
#, python-format
-msgid "no theme named %r found (missing theme.conf?)"
-msgstr "未找到å為 %r 的主題(缺少 theme.conf?)"
+msgid "The %r theme has circular inheritance"
+msgstr ""
+
+#: sphinx/theming.py:262
+#, python-format
+msgid ""
+"The %r theme inherits from %r, which is not a loaded theme. Loaded themes "
+"are: %s"
+msgstr ""
+
+#: sphinx/theming.py:269
+#, python-format
+msgid "The %r theme has too many ancestors"
+msgstr ""
+
+#: sphinx/theming.py:295
+#, python-format
+msgid "no theme configuration file found in %r"
+msgstr ""
+
+#: sphinx/theming.py:323 sphinx/theming.py:374
+#, python-format
+msgid "theme %r doesn't have the \"theme\" table"
+msgstr ""
+
+#: sphinx/theming.py:327
+#, python-format
+msgid "The %r theme \"[theme]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:331 sphinx/theming.py:377
+#, python-format
+msgid "The %r theme must define the \"theme.inherit\" setting"
+msgstr ""
+
+#: sphinx/theming.py:335
+#, python-format
+msgid "The %r theme \"[options]\" table is not a table"
+msgstr ""
+
+#: sphinx/theming.py:353
+#, python-format
+msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\""
+msgstr ""
#: sphinx/builders/__init__.py:183
#, python-format
@@ -534,8 +576,8 @@ msgstr "未找到å°æ–¼ %s builder é©ç”¨çš„圖片:%s"
msgid "building [mo]: "
msgstr "建立 [mo]:"
-#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:575
-#: sphinx/builders/__init__.py:602
+#: sphinx/builders/__init__.py:208 sphinx/builders/__init__.py:574
+#: sphinx/builders/__init__.py:601
msgid "writing output... "
msgstr "編寫輸出..."
@@ -584,7 +626,7 @@ msgstr "在命令列給了 %d 個原始檔案"
msgid "targets for %d source files that are out of date"
msgstr "%d 個éŽæ™‚原始檔案的目標"
-#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:236
+#: sphinx/builders/__init__.py:309 sphinx/builders/gettext.py:243
#, python-format
msgid "building [%s]: "
msgstr "正在建立 [%s]:"
@@ -593,88 +635,88 @@ msgstr "正在建立 [%s]:"
msgid "looking for now-outdated files... "
msgstr "正在尋找目å‰å·²éŽæœŸçš„檔案..."
-#: sphinx/builders/__init__.py:321
+#: sphinx/builders/__init__.py:320
#, python-format
msgid "%d found"
msgstr "已找到 %d"
-#: sphinx/builders/__init__.py:323
+#: sphinx/builders/__init__.py:322
msgid "none found"
msgstr "找ä¸åˆ°ä»»ä½•çµæžœ"
-#: sphinx/builders/__init__.py:328
+#: sphinx/builders/__init__.py:327
msgid "pickling environment"
msgstr "正在 pickle 環境"
-#: sphinx/builders/__init__.py:334
+#: sphinx/builders/__init__.py:333
msgid "checking consistency"
msgstr "正在檢查一致性"
-#: sphinx/builders/__init__.py:338
+#: sphinx/builders/__init__.py:337
msgid "no targets are out of date."
msgstr "沒有éŽæ™‚的目標。"
-#: sphinx/builders/__init__.py:377
+#: sphinx/builders/__init__.py:376
msgid "updating environment: "
msgstr "正在更新環境:"
-#: sphinx/builders/__init__.py:398
+#: sphinx/builders/__init__.py:397
#, python-format
msgid "%s added, %s changed, %s removed"
msgstr "%s 已新增, %s 已變更, %s 已移除"
-#: sphinx/builders/__init__.py:436 sphinx/builders/__init__.py:448
+#: sphinx/builders/__init__.py:435 sphinx/builders/__init__.py:447
msgid "reading sources... "
msgstr "正在讀å–來æº..."
-#: sphinx/builders/__init__.py:550
+#: sphinx/builders/__init__.py:549
#, python-format
msgid "docnames to write: %s"
msgstr "待寫入的 docname: %s"
-#: sphinx/builders/__init__.py:559 sphinx/builders/singlehtml.py:156
+#: sphinx/builders/__init__.py:558 sphinx/builders/singlehtml.py:157
msgid "preparing documents"
msgstr "正在準備文件"
-#: sphinx/builders/__init__.py:562
+#: sphinx/builders/__init__.py:561
msgid "copying assets"
-msgstr ""
+msgstr "正在複製資產 (asset)"
#: sphinx/builders/_epub_base.py:215
#, python-format
msgid "duplicated ToC entry found: %s"
msgstr "找到了é‡è¤‡çš„ ToC 項目: %s"
-#: sphinx/builders/_epub_base.py:403 sphinx/builders/html/__init__.py:750
-#: sphinx/builders/latex/__init__.py:425 sphinx/builders/texinfo.py:183
+#: sphinx/builders/_epub_base.py:404 sphinx/builders/html/__init__.py:758
+#: sphinx/builders/latex/__init__.py:432 sphinx/builders/texinfo.py:187
msgid "copying images... "
msgstr "正在複製圖片..."
-#: sphinx/builders/_epub_base.py:410
+#: sphinx/builders/_epub_base.py:411
#, python-format
msgid "cannot read image file %r: copying it instead"
msgstr "無法讀å–圖片檔 %r: 正在複製它åšç‚ºæ›¿ä»£"
-#: sphinx/builders/_epub_base.py:416 sphinx/builders/html/__init__.py:758
-#: sphinx/builders/latex/__init__.py:433 sphinx/builders/texinfo.py:193
+#: sphinx/builders/_epub_base.py:417 sphinx/builders/html/__init__.py:766
+#: sphinx/builders/latex/__init__.py:440 sphinx/builders/texinfo.py:197
#, python-format
msgid "cannot copy image file %r: %s"
msgstr "無法複製圖片檔 %r: %s"
-#: sphinx/builders/_epub_base.py:433
+#: sphinx/builders/_epub_base.py:434
#, python-format
msgid "cannot write image file %r: %s"
msgstr "無法寫入圖片檔 %r: %s"
-#: sphinx/builders/_epub_base.py:443
+#: sphinx/builders/_epub_base.py:444
msgid "Pillow not found - copying image files"
msgstr "未找到 Pillow - 正在複製圖片檔"
-#: sphinx/builders/_epub_base.py:469
+#: sphinx/builders/_epub_base.py:470
msgid "writing mimetype file..."
msgstr "正在寫入 mimetype 檔案..."
-#: sphinx/builders/_epub_base.py:474
+#: sphinx/builders/_epub_base.py:475
msgid "writing META-INF/container.xml file..."
msgstr "正在寫入 META-INF/container.xml 檔案..."
@@ -682,470 +724,470 @@ msgstr "正在寫入 META-INF/container.xml 檔案..."
msgid "writing content.opf file..."
msgstr "正在寫入 content.opf 檔案..."
-#: sphinx/builders/_epub_base.py:531
+#: sphinx/builders/_epub_base.py:539
#, python-format
msgid "unknown mimetype for %s, ignoring"
msgstr "å°æ–¼ %s 未知的 mimetype,忽略中"
-#: sphinx/builders/_epub_base.py:678
+#: sphinx/builders/_epub_base.py:686
msgid "writing toc.ncx file..."
msgstr "正在寫入 toc.ncx 檔案..."
-#: sphinx/builders/_epub_base.py:703
+#: sphinx/builders/_epub_base.py:711
#, python-format
msgid "writing %s file..."
msgstr "正在寫入 %s 檔案..."
-#: sphinx/builders/changes.py:30
+#: sphinx/builders/changes.py:32
#, python-format
msgid "The overview file is in %(outdir)s."
msgstr "概觀檔案是在 %(outdir)s 。"
-#: sphinx/builders/changes.py:56
+#: sphinx/builders/changes.py:59
#, python-format
msgid "no changes in version %s."
msgstr "在 %s 版中無變更"
-#: sphinx/builders/changes.py:58
+#: sphinx/builders/changes.py:61
msgid "writing summary file..."
msgstr "正在寫入摘è¦æª”案..."
-#: sphinx/builders/changes.py:73
+#: sphinx/builders/changes.py:76
msgid "Builtins"
msgstr "內建"
-#: sphinx/builders/changes.py:75
+#: sphinx/builders/changes.py:78
msgid "Module level"
msgstr "模組層次"
-#: sphinx/builders/changes.py:118
+#: sphinx/builders/changes.py:123
msgid "copying source files..."
msgstr "正在複製原始檔案..."
-#: sphinx/builders/changes.py:125
+#: sphinx/builders/changes.py:130
#, python-format
msgid "could not read %r for changelog creation"
msgstr "åœ¨è®Šæ›´æ—¥èªŒå»ºç«‹æ™‚ç„¡æ³•è®€å– %r"
-#: sphinx/builders/dummy.py:18
+#: sphinx/builders/dummy.py:19
msgid "The dummy builder generates no files."
msgstr "虛擬建立器未產生任何檔案。"
-#: sphinx/builders/epub3.py:79
+#: sphinx/builders/epub3.py:81
#, python-format
msgid "The ePub file is in %(outdir)s."
msgstr "ePub 檔案是在 %(outdir)s 。"
-#: sphinx/builders/epub3.py:183
+#: sphinx/builders/epub3.py:185
msgid "writing nav.xhtml file..."
msgstr "正在寫入 nav.xhtml 檔案..."
-#: sphinx/builders/epub3.py:209
+#: sphinx/builders/epub3.py:211
msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3"
msgstr "conf 值 \"epub_language\" (或 \"language\") 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:213
+#: sphinx/builders/epub3.py:215
msgid "conf value \"epub_uid\" should be XML NAME for EPUB3"
msgstr "conf 值 \"epub_uid\" 在 EPUB3 應該是 XML NAME"
-#: sphinx/builders/epub3.py:216
+#: sphinx/builders/epub3.py:218
msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3"
msgstr "conf 值 \"epub_title\" (或 \"html_title\") 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:220
+#: sphinx/builders/epub3.py:222
msgid "conf value \"epub_author\" should not be empty for EPUB3"
msgstr "conf 值 \"epub_author\" 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:223
+#: sphinx/builders/epub3.py:225
msgid "conf value \"epub_contributor\" should not be empty for EPUB3"
msgstr "conf 值 \"epub_contributor\" 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:226
+#: sphinx/builders/epub3.py:228
msgid "conf value \"epub_description\" should not be empty for EPUB3"
msgstr "conf 值 \"epub_description\" 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:229
+#: sphinx/builders/epub3.py:231
msgid "conf value \"epub_publisher\" should not be empty for EPUB3"
msgstr "conf 值 \"epub_publisher\" 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:232
+#: sphinx/builders/epub3.py:234
msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3"
msgstr "conf 值 \"epub_copyright\" (或 \"copyright\") 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:236
+#: sphinx/builders/epub3.py:238
msgid "conf value \"epub_identifier\" should not be empty for EPUB3"
msgstr "conf 值 \"epub_identifier\" 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:239
+#: sphinx/builders/epub3.py:241
msgid "conf value \"version\" should not be empty for EPUB3"
msgstr "conf 值 \"version\" 在 EPUB3 ä¸æ‡‰è©²ç‚ºç©º"
-#: sphinx/builders/epub3.py:253 sphinx/builders/html/__init__.py:1189
+#: sphinx/builders/epub3.py:255 sphinx/builders/html/__init__.py:1187
#, python-format
msgid "invalid css_file: %r, ignored"
msgstr "無效的 css_file: %r, 已略éŽ"
-#: sphinx/builders/gettext.py:215
+#: sphinx/builders/gettext.py:222
#, python-format
msgid "The message catalogs are in %(outdir)s."
msgstr "訊æ¯ç›®éŒ„是在 %(outdir)s"
-#: sphinx/builders/gettext.py:237
+#: sphinx/builders/gettext.py:244
#, python-format
msgid "targets for %d template files"
msgstr "模æ¿æª” %d 的目標"
-#: sphinx/builders/gettext.py:241
+#: sphinx/builders/gettext.py:248
msgid "reading templates... "
msgstr "正在讀å–模æ¿..."
-#: sphinx/builders/gettext.py:275
+#: sphinx/builders/gettext.py:282
msgid "writing message catalogs... "
msgstr "正在寫入訊æ¯ç›®éŒ„..."
-#: sphinx/builders/linkcheck.py:60
+#: sphinx/builders/linkcheck.py:59
#, python-format
msgid "Look for any errors in the above output or in %(outdir)s/output.txt"
msgstr "尋找以上輸出或 %(outdir)s/output.txt 中的任何錯誤"
-#: sphinx/builders/linkcheck.py:109
+#: sphinx/builders/linkcheck.py:137
#, python-format
msgid "broken link: %s (%s)"
msgstr "錯誤連çµï¼š %s (%s)"
-#: sphinx/builders/linkcheck.py:606
+#: sphinx/builders/linkcheck.py:660
#, python-format
msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s"
msgstr "在 linkcheck_allowed_redirects 編譯 regex 失敗: %r %s"
-#: sphinx/builders/manpage.py:35
+#: sphinx/builders/manpage.py:37
#, python-format
msgid "The manual pages are in %(outdir)s."
msgstr "手冊é é¢åœ¨ %(outdir)s"
-#: sphinx/builders/manpage.py:42
+#: sphinx/builders/manpage.py:44
msgid "no \"man_pages\" config value found; no manual pages will be written"
msgstr "未找到 \"man_pages\" 組態值:ä¸æœƒç·¨å¯«ä»»ä½•æ‰‹å†Šé é¢"
-#: sphinx/builders/latex/__init__.py:309 sphinx/builders/manpage.py:51
-#: sphinx/builders/singlehtml.py:164 sphinx/builders/texinfo.py:110
+#: sphinx/builders/latex/__init__.py:314 sphinx/builders/manpage.py:53
+#: sphinx/builders/singlehtml.py:165 sphinx/builders/texinfo.py:112
msgid "writing"
msgstr "編寫中"
-#: sphinx/builders/manpage.py:66
+#: sphinx/builders/manpage.py:68
#, python-format
msgid "\"man_pages\" config value references unknown document %s"
msgstr "\"man_pages\" 組態值引用未知的文件 %s"
-#: sphinx/builders/singlehtml.py:32
+#: sphinx/builders/singlehtml.py:34
#, python-format
msgid "The HTML page is in %(outdir)s."
msgstr "HTML é é¢åœ¨ %(outdir)s 。"
-#: sphinx/builders/singlehtml.py:159
+#: sphinx/builders/singlehtml.py:160
msgid "assembling single document"
msgstr "正在組åˆå–®ä¸€æ–‡ä»¶"
-#: sphinx/builders/singlehtml.py:177
+#: sphinx/builders/singlehtml.py:178
msgid "writing additional files"
msgstr "正在寫入附加檔案"
-#: sphinx/builders/texinfo.py:46
+#: sphinx/builders/texinfo.py:48
#, python-format
msgid "The Texinfo files are in %(outdir)s."
msgstr "Texinfo 檔案在 %(outdir)s 。"
-#: sphinx/builders/texinfo.py:48
+#: sphinx/builders/texinfo.py:50
msgid ""
"\n"
"Run 'make' in that directory to run these through makeinfo\n"
"(use 'make info' here to do that automatically)."
msgstr "\n在該目錄中執行 'make' 以é€éŽ makeinfo 執行這些\n(在此使用 'make info' 以自動執行)"
-#: sphinx/builders/texinfo.py:75
+#: sphinx/builders/texinfo.py:77
msgid "no \"texinfo_documents\" config value found; no documents will be written"
msgstr "未找到 \"texinfo_documents\" 組態值;ä¸æœƒç·¨å¯«ä»»ä½•æ–‡ä»¶"
-#: sphinx/builders/texinfo.py:83
+#: sphinx/builders/texinfo.py:85
#, python-format
msgid "\"texinfo_documents\" config value references unknown document %s"
msgstr "\"texinfo_documents\" 組態值引用未知的文件 %s"
-#: sphinx/builders/latex/__init__.py:291 sphinx/builders/texinfo.py:106
+#: sphinx/builders/latex/__init__.py:296 sphinx/builders/texinfo.py:108
#, python-format
msgid "processing %s"
msgstr "æ­£åœ¨è™•ç† %s"
-#: sphinx/builders/latex/__init__.py:364 sphinx/builders/texinfo.py:159
+#: sphinx/builders/latex/__init__.py:369 sphinx/builders/texinfo.py:161
msgid "resolving references..."
msgstr "正在解æžåƒç…§..."
-#: sphinx/builders/latex/__init__.py:374 sphinx/builders/texinfo.py:168
+#: sphinx/builders/latex/__init__.py:380 sphinx/builders/texinfo.py:171
msgid " (in "
msgstr " (æ–¼ "
-#: sphinx/builders/texinfo.py:198
+#: sphinx/builders/texinfo.py:202
msgid "copying Texinfo support files"
msgstr "正在複製 Texinfo 支æ´æª”案"
-#: sphinx/builders/texinfo.py:202
+#: sphinx/builders/texinfo.py:206
#, python-format
msgid "error writing file Makefile: %s"
msgstr "錯誤寫入檔案 Makefile: %s"
-#: sphinx/builders/text.py:29
+#: sphinx/builders/text.py:30
#, python-format
msgid "The text files are in %(outdir)s."
msgstr "文字檔案在 %(outdir)s 。"
-#: sphinx/builders/html/__init__.py:1140 sphinx/builders/text.py:76
-#: sphinx/builders/xml.py:94
+#: sphinx/builders/html/__init__.py:1138 sphinx/builders/text.py:77
+#: sphinx/builders/xml.py:96
#, python-format
msgid "error writing file %s: %s"
msgstr "錯誤寫入檔案 %s: %s"
-#: sphinx/builders/xml.py:34
+#: sphinx/builders/xml.py:36
#, python-format
msgid "The XML files are in %(outdir)s."
msgstr "XML 檔案在 %(outdir)s 。"
-#: sphinx/builders/xml.py:106
+#: sphinx/builders/xml.py:109
#, python-format
msgid "The pseudo-XML files are in %(outdir)s."
msgstr "pseudo-XML 檔案在 %(outdir)s 。"
-#: sphinx/builders/html/__init__.py:122
+#: sphinx/builders/html/__init__.py:130
#, python-format
msgid "build info file is broken: %r"
msgstr "build info 檔案已失效: %r"
-#: sphinx/builders/html/__init__.py:159
+#: sphinx/builders/html/__init__.py:168
#, python-format
msgid "The HTML pages are in %(outdir)s."
msgstr "HTML é é¢åœ¨ %(outdir)s 。"
-#: sphinx/builders/html/__init__.py:385
+#: sphinx/builders/html/__init__.py:394
#, python-format
msgid "Failed to read build info file: %r"
msgstr "è®€å– build info 檔失敗: %r"
-#: sphinx/builders/html/__init__.py:478 sphinx/builders/latex/__init__.py:187
-#: sphinx/transforms/__init__.py:117 sphinx/writers/manpage.py:100
-#: sphinx/writers/texinfo.py:225
+#: sphinx/builders/html/__init__.py:487 sphinx/builders/latex/__init__.py:189
+#: sphinx/transforms/__init__.py:119 sphinx/writers/manpage.py:101
+#: sphinx/writers/texinfo.py:227
#, python-format
msgid "%b %d, %Y"
msgstr "%Y 年 %m 月 %d 日"
-#: sphinx/builders/html/__init__.py:497 sphinx/themes/basic/defindex.html:30
+#: sphinx/builders/html/__init__.py:506 sphinx/themes/basic/defindex.html:30
msgid "General Index"
msgstr "總索引"
-#: sphinx/builders/html/__init__.py:497
+#: sphinx/builders/html/__init__.py:506
msgid "index"
msgstr "索引"
-#: sphinx/builders/html/__init__.py:569
+#: sphinx/builders/html/__init__.py:579
msgid "next"
msgstr "下一é "
-#: sphinx/builders/html/__init__.py:578
+#: sphinx/builders/html/__init__.py:588
msgid "previous"
msgstr "上一é "
-#: sphinx/builders/html/__init__.py:674
+#: sphinx/builders/html/__init__.py:684
msgid "generating indices"
msgstr "正在產生索引"
-#: sphinx/builders/html/__init__.py:689
+#: sphinx/builders/html/__init__.py:699
msgid "writing additional pages"
msgstr "正在編寫附加é é¢"
-#: sphinx/builders/html/__init__.py:768
+#: sphinx/builders/html/__init__.py:776
msgid "copying downloadable files... "
msgstr "正在複製å¯ä¸‹è¼‰çš„檔案..."
-#: sphinx/builders/html/__init__.py:776
+#: sphinx/builders/html/__init__.py:784
#, python-format
msgid "cannot copy downloadable file %r: %s"
msgstr "無法複製å¯ä¸‹è¼‰çš„檔案 %r: %s"
-#: sphinx/builders/html/__init__.py:809 sphinx/builders/html/__init__.py:821
+#: sphinx/builders/html/__init__.py:817 sphinx/builders/html/__init__.py:829
#, python-format
msgid "Failed to copy a file in html_static_file: %s: %r"
msgstr "在 html_static_file 中複製一個檔案失敗: %s: %r "
-#: sphinx/builders/html/__init__.py:842
+#: sphinx/builders/html/__init__.py:850
msgid "copying static files"
msgstr "正在複製éœæ…‹æª”案"
-#: sphinx/builders/html/__init__.py:858
+#: sphinx/builders/html/__init__.py:866
#, python-format
msgid "cannot copy static file %r"
msgstr "無法複製éœæ…‹æª”案 %r"
-#: sphinx/builders/html/__init__.py:863
+#: sphinx/builders/html/__init__.py:871
msgid "copying extra files"
msgstr "正在複製é¡å¤–檔案"
-#: sphinx/builders/html/__init__.py:869
+#: sphinx/builders/html/__init__.py:877
#, python-format
msgid "cannot copy extra file %r"
msgstr "無法複製é¡å¤–檔案 %r"
-#: sphinx/builders/html/__init__.py:876
+#: sphinx/builders/html/__init__.py:884
#, python-format
msgid "Failed to write build info file: %r"
msgstr "寫入 build info 檔失敗: %r"
-#: sphinx/builders/html/__init__.py:925
+#: sphinx/builders/html/__init__.py:933
msgid ""
"search index couldn't be loaded, but not all documents will be built: the "
"index will be incomplete."
msgstr "æœå°‹ç´¢å¼•ç„¡æ³•è¢«è¼‰å…¥ï¼Œä½†ä¸æ˜¯æ‰€æœ‰çš„文件都會被建置:索引將會是ä¸å®Œå…¨çš„。"
-#: sphinx/builders/html/__init__.py:986
+#: sphinx/builders/html/__init__.py:978
#, python-format
msgid "page %s matches two patterns in html_sidebars: %r and %r"
msgstr "é é¢ %s 在 html_sidebars 中符åˆå…©å€‹åž‹æ¨£ï¼š %r å’Œ %r"
-#: sphinx/builders/html/__init__.py:1123
+#: sphinx/builders/html/__init__.py:1121
#, python-format
msgid ""
"a Unicode error occurred when rendering the page %s. Please make sure all "
"config values that contain non-ASCII content are Unicode strings."
msgstr "在呈ç¾é é¢ %s 時發生了一個 Unicode 錯誤。請確èªæ‰€æœ‰åŒ…å« non-ASCII 內容的組態值都是 Unicode 字串。"
-#: sphinx/builders/html/__init__.py:1128
+#: sphinx/builders/html/__init__.py:1126
#, python-format
msgid ""
"An error happened in rendering the page %s.\n"
"Reason: %r"
msgstr "在呈ç¾é é¢ %s 時發生了一個錯誤。\n原因: %r"
-#: sphinx/builders/html/__init__.py:1156
+#: sphinx/builders/html/__init__.py:1154
msgid "dumping object inventory"
msgstr "正在傾å°ç‰©ä»¶åº«å­˜"
-#: sphinx/builders/html/__init__.py:1164
+#: sphinx/builders/html/__init__.py:1162
#, python-format
msgid "dumping search index in %s"
msgstr "正在傾å°æœå°‹ç´¢å¼•æ–¼ %s"
-#: sphinx/builders/html/__init__.py:1212
+#: sphinx/builders/html/__init__.py:1210
#, python-format
msgid "invalid js_file: %r, ignored"
msgstr "無效的 js_file: %r, 已略éŽ"
-#: sphinx/builders/html/__init__.py:1240
+#: sphinx/builders/html/__init__.py:1238
msgid "Many math_renderers are registered. But no math_renderer is selected."
msgstr "多個 math_renderer 已被註冊。但是沒有 math_renderer 被é¸æ“‡ã€‚"
-#: sphinx/builders/html/__init__.py:1243
+#: sphinx/builders/html/__init__.py:1241
#, python-format
msgid "Unknown math_renderer %r is given."
msgstr "未知的 math_renderer %r 被給予。"
-#: sphinx/builders/html/__init__.py:1251
+#: sphinx/builders/html/__init__.py:1249
#, python-format
msgid "html_extra_path entry %r does not exist"
msgstr "html_extra_path é …ç›® %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1255
+#: sphinx/builders/html/__init__.py:1253
#, python-format
msgid "html_extra_path entry %r is placed inside outdir"
msgstr "html_extra_path 項目 %r 被放入 outdir"
-#: sphinx/builders/html/__init__.py:1264
+#: sphinx/builders/html/__init__.py:1262
#, python-format
msgid "html_static_path entry %r does not exist"
msgstr "html_static_path é …ç›® %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1268
+#: sphinx/builders/html/__init__.py:1266
#, python-format
msgid "html_static_path entry %r is placed inside outdir"
msgstr "html_static_path 項目 %r 被放入 outdir"
-#: sphinx/builders/html/__init__.py:1277 sphinx/builders/latex/__init__.py:437
+#: sphinx/builders/html/__init__.py:1275 sphinx/builders/latex/__init__.py:444
#, python-format
msgid "logo file %r does not exist"
msgstr "標誌檔案 %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1286
+#: sphinx/builders/html/__init__.py:1284
#, python-format
msgid "favicon file %r does not exist"
msgstr "favicon 檔案 %r ä¸å­˜åœ¨"
-#: sphinx/builders/html/__init__.py:1293
+#: sphinx/builders/html/__init__.py:1291
msgid ""
"HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in "
"configuration options)"
-msgstr ""
+msgstr "HTML 4 å·²ä¸å†è¢« Sphinx 所支æ´ã€‚(在組態é¸é …中åµæ¸¬åˆ° \"html4_writer=True\")"
-#: sphinx/builders/html/__init__.py:1308
+#: sphinx/builders/html/__init__.py:1306
#, python-format
msgid "%s %s documentation"
msgstr "%s %s 說明文件"
-#: sphinx/builders/latex/__init__.py:113
+#: sphinx/builders/latex/__init__.py:115
#, python-format
msgid "The LaTeX files are in %(outdir)s."
msgstr "LaTeX 檔案在 %(outdir)s 。"
-#: sphinx/builders/latex/__init__.py:115
+#: sphinx/builders/latex/__init__.py:117
msgid ""
"\n"
"Run 'make' in that directory to run these through (pdf)latex\n"
"(use `make latexpdf' here to do that automatically)."
msgstr "\n在該目錄中執行 'make' 以é€éŽ (pdf)latex 執行這些\n(在此使用 'make latexpdf' 以自動執行)"
-#: sphinx/builders/latex/__init__.py:150
+#: sphinx/builders/latex/__init__.py:152
msgid "no \"latex_documents\" config value found; no documents will be written"
msgstr "未找到 \"latex_documents\" 組態值;ä¸æœƒç·¨å¯«ä»»ä½•æ–‡ä»¶"
-#: sphinx/builders/latex/__init__.py:158
+#: sphinx/builders/latex/__init__.py:160
#, python-format
msgid "\"latex_documents\" config value references unknown document %s"
msgstr "\"latex_documents\" 組態值引用未知的文件 %s"
-#: sphinx/builders/latex/__init__.py:194 sphinx/domains/std.py:557
-#: sphinx/domains/std.py:569 sphinx/templates/latex/latex.tex_t:106
+#: sphinx/builders/latex/__init__.py:196 sphinx/domains/std/__init__.py:559
+#: sphinx/domains/std/__init__.py:571 sphinx/templates/latex/latex.tex_t:106
#: sphinx/themes/basic/genindex-single.html:30
#: sphinx/themes/basic/genindex-single.html:55
#: sphinx/themes/basic/genindex-split.html:11
#: sphinx/themes/basic/genindex-split.html:14
#: sphinx/themes/basic/genindex.html:11 sphinx/themes/basic/genindex.html:34
#: sphinx/themes/basic/genindex.html:67 sphinx/themes/basic/layout.html:138
-#: sphinx/writers/texinfo.py:493
+#: sphinx/writers/texinfo.py:497
msgid "Index"
msgstr "索引"
-#: sphinx/builders/latex/__init__.py:197 sphinx/templates/latex/latex.tex_t:91
+#: sphinx/builders/latex/__init__.py:199 sphinx/templates/latex/latex.tex_t:91
msgid "Release"
msgstr "發佈"
-#: sphinx/builders/latex/__init__.py:211 sphinx/writers/latex.py:370
+#: sphinx/builders/latex/__init__.py:213 sphinx/writers/latex.py:370
#, python-format
msgid "no Babel option known for language %r"
msgstr "沒有語言 %r 已知的 Babel é¸é …"
-#: sphinx/builders/latex/__init__.py:387
+#: sphinx/builders/latex/__init__.py:394
msgid "copying TeX support files"
msgstr "正在複製 TeX 支æ´æª”案"
-#: sphinx/builders/latex/__init__.py:403
+#: sphinx/builders/latex/__init__.py:410
msgid "copying TeX support files..."
msgstr "正在複製 TeX 支æ´æª”案..."
-#: sphinx/builders/latex/__init__.py:416
+#: sphinx/builders/latex/__init__.py:423
msgid "copying additional files"
msgstr "正在複製附加檔案"
-#: sphinx/builders/latex/__init__.py:459
+#: sphinx/builders/latex/__init__.py:466
#, python-format
msgid "Unknown configure key: latex_elements[%r], ignored."
msgstr "未知的é…ç½®éµï¼š latex_elements[%r],已略éŽã€‚"
-#: sphinx/builders/latex/__init__.py:467
+#: sphinx/builders/latex/__init__.py:474
#, python-format
msgid "Unknown theme option: latex_theme_options[%r], ignored."
msgstr "未知的主題é¸é …: latex_theme_options[%r],,已略éŽã€‚"
@@ -1160,18 +1202,18 @@ msgstr "%r 沒有「主題ã€è¨­å®š"
msgid "%r doesn't have \"%s\" setting"
msgstr "%r 沒有 \"%s\" 設定"
-#: sphinx/builders/latex/transforms.py:117
+#: sphinx/builders/latex/transforms.py:120
msgid "Failed to get a docname!"
-msgstr ""
+msgstr "無法å–å¾— docnameï¼"
-#: sphinx/builders/latex/transforms.py:118
+#: sphinx/builders/latex/transforms.py:121
msgid "Failed to get a docname for source {source!r}!"
-msgstr ""
+msgstr "無法å–å¾—ä¾†æº {source!r} çš„ docnameï¼"
-#: sphinx/builders/latex/transforms.py:479
+#: sphinx/builders/latex/transforms.py:482
#, python-format
msgid "No footnote was found for given reference node %r"
-msgstr ""
+msgstr "給定的åƒè€ƒç¯€é»ž %r 找ä¸åˆ°è¨»è…³"
#: sphinx/cmd/build.py:46
msgid "Exception occurred while building, starting debugger:"
@@ -1227,8 +1269,8 @@ msgstr "錯誤回報å¯è¢«æ­¸æª”於追蹤系統中,它是在 <https://github.c
msgid "job number should be a positive number"
msgstr "工件編號應該是一個正數"
-#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:477
-#: sphinx/ext/apidoc.py:319 sphinx/ext/autosummary/generate.py:689
+#: sphinx/cmd/build.py:117 sphinx/cmd/quickstart.py:474
+#: sphinx/ext/apidoc.py:317 sphinx/ext/autosummary/generate.py:689
msgid "For more information, visit <https://www.sphinx-doc.org/>."
msgstr "需è¦æ›´å¤šè³‡è¨Šï¼Œè«‹æ‹œè¨ª <https://www.sphinx-doc.org/>."
@@ -1260,257 +1302,264 @@ msgid "path to output directory"
msgstr "到輸出資料夾的路徑"
#: sphinx/cmd/build.py:143
-msgid "a list of specific files to rebuild. Ignored if -a is specified"
-msgstr "一份è¦é‡å»ºçš„特定檔案列表。如果 -a 被指定則會被略éŽã€‚"
+msgid ""
+"(optional) a list of specific files to rebuild. Ignored if --write-all is "
+"specified"
+msgstr ""
#: sphinx/cmd/build.py:146
msgid "general options"
msgstr "一般é¸é …"
#: sphinx/cmd/build.py:149
-msgid "builder to use (default: html)"
-msgstr "è¦ä½¿ç”¨çš„建立器(é è¨­å€¼ï¼šhtml)"
+msgid "builder to use (default: 'html')"
+msgstr ""
+
+#: sphinx/cmd/build.py:152
+msgid ""
+"run in parallel with N processes, when possible. 'auto' uses the number of "
+"CPU cores"
+msgstr ""
-#: sphinx/cmd/build.py:151
+#: sphinx/cmd/build.py:155
msgid "write all files (default: only write new and changed files)"
msgstr "寫入所有檔案(é è¨­ï¼šåªå¯«å…¥æ–°å¢žåŠå·²è®Šæ›´æª”案)"
-#: sphinx/cmd/build.py:154
+#: sphinx/cmd/build.py:158
msgid "don't use a saved environment, always read all files"
msgstr "ä¸è¦ä½¿ç”¨å·²å„²å­˜çš„環境,永é è¦è®€å–全部的檔案"
-#: sphinx/cmd/build.py:157
-msgid ""
-"path for the cached environment and doctree files (default: "
-"OUTPUTDIR/.doctrees)"
-msgstr "已存快å–ç’°å¢ƒåŠ doctree 檔案的路徑(é è¨­å€¼ï¼šOUTPUTDIR/.doctrees)"
-
#: sphinx/cmd/build.py:161
-msgid ""
-"build in parallel with N processes where possible (special value \"auto\" "
-"will set N to cpu-count)"
-msgstr "盡å¯èƒ½ä»¥ N 個程åºå¹³è¡Œå»ºç«‹ï¼ˆç‰¹æ®Šå€¼ \"auto\" 會設定 N 為 cpu-count)"
+msgid "path options"
+msgstr ""
-#: sphinx/cmd/build.py:165
+#: sphinx/cmd/build.py:163
msgid ""
-"path where configuration file (conf.py) is located (default: same as "
-"SOURCEDIR)"
-msgstr "組態檔案 (conf.py) 所在的路徑(é è¨­å€¼ï¼šèˆ‡ SOURCEDIR 相åŒï¼‰"
+"directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)"
+msgstr ""
-#: sphinx/cmd/build.py:168
-msgid "use no config file at all, only -D options"
-msgstr "完全ä¸ä½¿ç”¨çµ„態檔案,åªç”¨ -D é¸é …"
+#: sphinx/cmd/build.py:166
+msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)"
+msgstr ""
#: sphinx/cmd/build.py:171
+msgid "use no configuration file, only use settings from -D options"
+msgstr ""
+
+#: sphinx/cmd/build.py:174
msgid "override a setting in configuration file"
msgstr "在組態檔案中置æ›ä¸€é …設定"
-#: sphinx/cmd/build.py:174
+#: sphinx/cmd/build.py:177
msgid "pass a value into HTML templates"
msgstr "傳éžä¸€å€‹å€¼é€²å…¥ HTML 模æ¿"
-#: sphinx/cmd/build.py:177
+#: sphinx/cmd/build.py:180
msgid "define tag: include \"only\" blocks with TAG"
msgstr "定義 tag:「åªã€åŒ…å«æœ‰ TAG çš„å€å¡Š"
-#: sphinx/cmd/build.py:179
-msgid "nit-picky mode, warn about all missing references"
-msgstr "nit-picky 模å¼ï¼Œå°æ‰€æœ‰éºæ¼çš„åƒç…§ç™¼å‡ºè­¦å‘Š"
-
#: sphinx/cmd/build.py:182
+msgid "nit-picky mode: warn about all missing references"
+msgstr ""
+
+#: sphinx/cmd/build.py:184
msgid "console output options"
msgstr "控制å°è¼¸å‡ºé¸é …"
-#: sphinx/cmd/build.py:184
+#: sphinx/cmd/build.py:187
msgid "increase verbosity (can be repeated)"
msgstr "增加贅言(å¯ä»¥è¢«é‡è¤‡ï¼‰"
-#: sphinx/cmd/build.py:186 sphinx/ext/apidoc.py:342
+#: sphinx/cmd/build.py:189 sphinx/ext/apidoc.py:340
msgid "no output on stdout, just warnings on stderr"
msgstr "在 stdout 無輸出,åªæœ‰åœ¨ stderr 的警告"
-#: sphinx/cmd/build.py:188
+#: sphinx/cmd/build.py:191
msgid "no output at all, not even warnings"
msgstr "完全沒有輸出,也沒有警告"
-#: sphinx/cmd/build.py:191
+#: sphinx/cmd/build.py:194
msgid "do emit colored output (default: auto-detect)"
msgstr "執行 emit 彩色輸出(é è¨­å€¼ï¼šauto-detect)"
-#: sphinx/cmd/build.py:194
+#: sphinx/cmd/build.py:197
msgid "do not emit colored output (default: auto-detect)"
msgstr "ä¸åŸ·è¡Œ emit 彩色輸出(é è¨­å€¼ï¼šauto-detect)"
-#: sphinx/cmd/build.py:197
+#: sphinx/cmd/build.py:199
+msgid "warning control options"
+msgstr ""
+
+#: sphinx/cmd/build.py:201
msgid "write warnings (and errors) to given file"
msgstr "寫入警告(åŠéŒ¯èª¤ï¼‰è‡³çµ¦å®šçš„檔案"
-#: sphinx/cmd/build.py:199
+#: sphinx/cmd/build.py:203
msgid "turn warnings into errors"
msgstr "將警告轉為錯誤"
-#: sphinx/cmd/build.py:201
-msgid "with -W, keep going when getting warnings"
-msgstr "帶有 -W,在得到警告時會繼續å‰é€²"
+#: sphinx/cmd/build.py:205
+msgid "with --fail-on-warning, keep going when getting warnings"
+msgstr ""
-#: sphinx/cmd/build.py:203
+#: sphinx/cmd/build.py:207
msgid "show full traceback on exception"
msgstr "在例外中顯示完整的回溯"
-#: sphinx/cmd/build.py:205
+#: sphinx/cmd/build.py:209
msgid "run Pdb on exception"
msgstr "在例外中執行 Pdb"
-#: sphinx/cmd/build.py:229
+#: sphinx/cmd/build.py:244
msgid "cannot combine -a option and filenames"
msgstr "無法åˆä½µ -a é¸é …åŠæª”å"
-#: sphinx/cmd/build.py:250
+#: sphinx/cmd/build.py:276
#, python-format
msgid "cannot open warning file %r: %s"
msgstr "無法開啟警告檔案 %r: %s"
-#: sphinx/cmd/build.py:264
+#: sphinx/cmd/build.py:296
msgid "-D option argument must be in the form name=value"
msgstr "-D é¸é …引數必須是 name=value çš„å½¢å¼"
-#: sphinx/cmd/build.py:271
+#: sphinx/cmd/build.py:303
msgid "-A option argument must be in the form name=value"
msgstr "-A é¸é …引數必須是 name=value çš„å½¢å¼"
-#: sphinx/cmd/quickstart.py:48
+#: sphinx/cmd/quickstart.py:42
msgid "automatically insert docstrings from modules"
msgstr "從模組自動æ’入說明字串"
-#: sphinx/cmd/quickstart.py:49
+#: sphinx/cmd/quickstart.py:43
msgid "automatically test code snippets in doctest blocks"
msgstr "在 doctest å€å¡Šè‡ªå‹•æ¸¬è©¦ç¨‹å¼ç¢¼ç‰‡æ®µ"
-#: sphinx/cmd/quickstart.py:50
+#: sphinx/cmd/quickstart.py:44
msgid "link between Sphinx documentation of different projects"
msgstr "在ä¸åŒå°ˆæ¡ˆçš„ Sphinx 說明文件中éˆæŽ¥"
-#: sphinx/cmd/quickstart.py:51
+#: sphinx/cmd/quickstart.py:45
msgid "write \"todo\" entries that can be shown or hidden on build"
msgstr "寫入 \"todo\" 項目,它們å¯ä»¥åœ¨çµ„建時被顯示或隱è—"
-#: sphinx/cmd/quickstart.py:52
+#: sphinx/cmd/quickstart.py:46
msgid "checks for documentation coverage"
msgstr "æ ¸å°èªªæ˜Žæ–‡ä»¶çš„涵蓋範åœ"
-#: sphinx/cmd/quickstart.py:53
+#: sphinx/cmd/quickstart.py:47
msgid "include math, rendered as PNG or SVG images"
msgstr "åŒ…å« math,以 PNG 或 SVG å½±åƒè¢«å‘ˆç¾"
-#: sphinx/cmd/quickstart.py:54
+#: sphinx/cmd/quickstart.py:48
msgid "include math, rendered in the browser by MathJax"
msgstr "åŒ…å« math,被 MathJax 在ç€è¦½å™¨ä¸­å‘ˆç¾"
-#: sphinx/cmd/quickstart.py:55
+#: sphinx/cmd/quickstart.py:49
msgid "conditional inclusion of content based on config values"
msgstr "根據組態值有æ¢ä»¶åœ°åŒ…å«å…§å®¹"
-#: sphinx/cmd/quickstart.py:56
+#: sphinx/cmd/quickstart.py:50
msgid "include links to the source code of documented Python objects"
msgstr "包å«éˆæŽ¥è‡³å·²æœ‰èªªæ˜Žæ–‡ä»¶çš„ Python 物件原始碼"
-#: sphinx/cmd/quickstart.py:57
+#: sphinx/cmd/quickstart.py:51
msgid "create .nojekyll file to publish the document on GitHub pages"
msgstr "建立 .nojekyll 檔案以在 GitHub é é¢ç™¼å¸ƒæ–‡ä»¶"
-#: sphinx/cmd/quickstart.py:99
+#: sphinx/cmd/quickstart.py:93
msgid "Please enter a valid path name."
msgstr "請輸入有效的路徑å稱。"
-#: sphinx/cmd/quickstart.py:115
+#: sphinx/cmd/quickstart.py:109
msgid "Please enter some text."
msgstr "請輸入一些文字。"
-#: sphinx/cmd/quickstart.py:122
+#: sphinx/cmd/quickstart.py:116
#, python-format
msgid "Please enter one of %s."
msgstr "請輸入一種 %s 。"
-#: sphinx/cmd/quickstart.py:129
+#: sphinx/cmd/quickstart.py:123
msgid "Please enter either 'y' or 'n'."
msgstr "請輸入 'y' 或 'n'。"
-#: sphinx/cmd/quickstart.py:135
+#: sphinx/cmd/quickstart.py:129
msgid "Please enter a file suffix, e.g. '.rst' or '.txt'."
msgstr "請輸入檔案後綴,例如 '.rst' 或 '.txt'。"
-#: sphinx/cmd/quickstart.py:215
+#: sphinx/cmd/quickstart.py:208
#, python-format
msgid "Welcome to the Sphinx %s quickstart utility."
msgstr "歡迎進入 Sphinx %s 快速入門公用程å¼ã€‚"
-#: sphinx/cmd/quickstart.py:217
+#: sphinx/cmd/quickstart.py:210
msgid ""
"Please enter values for the following settings (just press Enter to\n"
"accept a default value, if one is given in brackets)."
msgstr "請輸入以下設定值(如果括號中有給定é è¨­å€¼ï¼Œè«‹ç›´æŽ¥\n按下 Enter 以接å—它)。"
-#: sphinx/cmd/quickstart.py:222
+#: sphinx/cmd/quickstart.py:215
#, python-format
msgid "Selected root path: %s"
msgstr "被é¸çš„根路徑: %s"
-#: sphinx/cmd/quickstart.py:225
+#: sphinx/cmd/quickstart.py:218
msgid "Enter the root path for documentation."
msgstr "輸入說明文件的根路徑。"
-#: sphinx/cmd/quickstart.py:226
+#: sphinx/cmd/quickstart.py:219
msgid "Root path for the documentation"
msgstr "說明文件的根路徑"
-#: sphinx/cmd/quickstart.py:231
+#: sphinx/cmd/quickstart.py:224
msgid "Error: an existing conf.py has been found in the selected root path."
msgstr "錯誤:在被é¸çš„根路徑找到一個已存在的 conf.py。"
-#: sphinx/cmd/quickstart.py:233
+#: sphinx/cmd/quickstart.py:226
msgid "sphinx-quickstart will not overwrite existing Sphinx projects."
msgstr "sphinx-quickstart ä¸æœƒé‡å¯«å·²å­˜åœ¨çš„ Sphinx 專案。"
-#: sphinx/cmd/quickstart.py:235
+#: sphinx/cmd/quickstart.py:228
msgid "Please enter a new root path (or just Enter to exit)"
msgstr "請輸入一個新的根路徑(或直接按 Enter 離開)"
-#: sphinx/cmd/quickstart.py:242
+#: sphinx/cmd/quickstart.py:235
msgid ""
"You have two options for placing the build directory for Sphinx output.\n"
"Either, you use a directory \"_build\" within the root path, or you separate\n"
"\"source\" and \"build\" directories within the root path."
msgstr "您有兩個é¸æ“‡ä¾†ç‚º Sphinx 的輸出放置建立資料夾。\n其一,您å¯ä»¥åœ¨æ ¹è·¯å¾‘中使用資料夾 \"_build\",或者,\n您å¯ä»¥åœ¨æ ¹è·¯å¾‘中分離 \"source\" å’Œ \"build\" 資料夾。"
-#: sphinx/cmd/quickstart.py:245
+#: sphinx/cmd/quickstart.py:238
msgid "Separate source and build directories (y/n)"
msgstr "分離來æºä¸¦å»ºç«‹è³‡æ–™å¤¾ (y/n)"
-#: sphinx/cmd/quickstart.py:249
+#: sphinx/cmd/quickstart.py:242
msgid ""
"Inside the root directory, two more directories will be created; \"_templates\"\n"
"for custom HTML templates and \"_static\" for custom stylesheets and other static\n"
"files. You can enter another prefix (such as \".\") to replace the underscore."
msgstr "在根資料夾內部,å¦å¤–兩個資料夾會被建立;\"_templates\" \n放置自訂的 HTML 模æ¿ï¼Œè€Œ \"_static\" 放置自訂的表單åŠå…¶ä»–\néœæ…‹æª”案。您å¯ä»¥è¼¸å…¥å¦ä¸€å€‹å‰ç¶´ï¼ˆåƒæ˜¯ \".\")來å–代底線。"
-#: sphinx/cmd/quickstart.py:252
+#: sphinx/cmd/quickstart.py:245
msgid "Name prefix for templates and static dir"
msgstr "用於模æ¿åŠéœæ…‹è³‡æ–™å¤¾çš„å稱å‰ç¶´"
-#: sphinx/cmd/quickstart.py:256
+#: sphinx/cmd/quickstart.py:249
msgid ""
"The project name will occur in several places in the built documentation."
msgstr "專案å稱會在已建立的說明文件中的多個ä½ç½®å‡ºç¾ã€‚"
-#: sphinx/cmd/quickstart.py:257
+#: sphinx/cmd/quickstart.py:250
msgid "Project name"
msgstr "專案å稱"
-#: sphinx/cmd/quickstart.py:259
+#: sphinx/cmd/quickstart.py:252
msgid "Author name(s)"
msgstr "作者姓å"
-#: sphinx/cmd/quickstart.py:263
+#: sphinx/cmd/quickstart.py:256
msgid ""
"Sphinx has the notion of a \"version\" and a \"release\" for the\n"
"software. Each version can have multiple releases. For example, for\n"
@@ -1519,15 +1568,15 @@ msgid ""
"just set both to the same value."
msgstr "在 Sphinx 中,軟體具有「版本ã€å’Œã€Œç™¼å¸ƒç‰ˆæœ¬ã€çš„概念。æ¯å€‹\n版本å¯ä»¥æœ‰å¤šå€‹ç™¼å¸ƒç‰ˆæœ¬ã€‚舉例來說,Python 的版本會åƒæ˜¯ 2.5 \n或 3.0,而發布版本則åƒæ˜¯ 2.5.1 或 3.0a1。如果您ä¸éœ€è¦é€™å€‹é›™\né‡çš„çµæ§‹ï¼Œè«‹ç›´æŽ¥å°‡å…©è€…設為相åŒçš„值。"
-#: sphinx/cmd/quickstart.py:268
+#: sphinx/cmd/quickstart.py:261
msgid "Project version"
msgstr "專案版本"
-#: sphinx/cmd/quickstart.py:270
+#: sphinx/cmd/quickstart.py:263
msgid "Project release"
msgstr "專案發布版本"
-#: sphinx/cmd/quickstart.py:274
+#: sphinx/cmd/quickstart.py:267
msgid ""
"If the documents are to be written in a language other than English,\n"
"you can select a language here by its language code. Sphinx will then\n"
@@ -1537,21 +1586,21 @@ msgid ""
"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
msgstr "如果文件是被英語以外的語言被編寫,您å¯ä»¥æ ¹æ“šå®ƒçš„語言碼\n在此é¸æ“‡ä¸€å€‹èªžè¨€ã€‚Sphinx 會將它產生的文本翻譯為該語言。\n\nè¦äº†è§£å¯æ”¯æ´çš„語言碼列表,請åƒé–±\nhttps://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language."
-#: sphinx/cmd/quickstart.py:282
+#: sphinx/cmd/quickstart.py:275
msgid "Project language"
msgstr "專案語言"
-#: sphinx/cmd/quickstart.py:288
+#: sphinx/cmd/quickstart.py:281
msgid ""
"The file name suffix for source files. Commonly, this is either \".txt\"\n"
"or \".rst\". Only files with this suffix are considered documents."
msgstr "用於原始檔的檔案å稱後綴。通常,這會是 \".txt\" 或 \".rst\"。\nåªæœ‰å…·æœ‰æ­¤å¾Œç¶´çš„檔案æ‰æœƒè¢«èªç‚ºæ˜¯æ–‡ä»¶ã€‚"
-#: sphinx/cmd/quickstart.py:290
+#: sphinx/cmd/quickstart.py:283
msgid "Source file suffix"
msgstr "原始檔案後綴"
-#: sphinx/cmd/quickstart.py:294
+#: sphinx/cmd/quickstart.py:287
msgid ""
"One document is special in that it is considered the top node of the\n"
"\"contents tree\", that is, it is the root of the hierarchical structure\n"
@@ -1559,91 +1608,91 @@ msgid ""
"document is a custom template, you can also set this to another filename."
msgstr "一份文件的特別之處在於它會被視為 \"contents tree\" 中的頂端\n節點,也就是說,它是文件階層çµæ§‹ä¸­çš„根。通常,這會是 \n\"index\",但如果您的 \"index\" 文件是一個自訂的模æ¿ï¼Œæ‚¨ä¹Ÿå¯ä»¥\n將它設定為å¦ä¸€å€‹æª”å。"
-#: sphinx/cmd/quickstart.py:298
+#: sphinx/cmd/quickstart.py:291
msgid "Name of your master document (without suffix)"
msgstr "您的主è¦æ–‡ä»¶å稱(ä¸å«å¾Œç¶´ï¼‰"
-#: sphinx/cmd/quickstart.py:303
+#: sphinx/cmd/quickstart.py:296
#, python-format
msgid ""
"Error: the master file %s has already been found in the selected root path."
msgstr "錯誤:在被é¸çš„根路徑中已經找到主檔 %s 。"
-#: sphinx/cmd/quickstart.py:305
+#: sphinx/cmd/quickstart.py:298
msgid "sphinx-quickstart will not overwrite the existing file."
msgstr "sphinx-quickstart ä¸æœƒé‡å¯«å·²å­˜åœ¨çš„檔案。"
-#: sphinx/cmd/quickstart.py:307
+#: sphinx/cmd/quickstart.py:300
msgid ""
"Please enter a new file name, or rename the existing file and press Enter"
msgstr "請輸入一個新的檔案å稱,或將已存在的檔案é‡æ–°å‘½å並按下 Enter"
-#: sphinx/cmd/quickstart.py:311
+#: sphinx/cmd/quickstart.py:304
msgid "Indicate which of the following Sphinx extensions should be enabled:"
msgstr "指示以下哪一個 Sphinx 擴充應該被啟用:"
-#: sphinx/cmd/quickstart.py:319
+#: sphinx/cmd/quickstart.py:312
msgid ""
"Note: imgmath and mathjax cannot be enabled at the same time. imgmath has "
"been deselected."
msgstr "註解:imgmath å’Œ mathjax 無法åŒæ™‚被啟用。imgmath 已被å–消é¸æ“‡ã€‚"
-#: sphinx/cmd/quickstart.py:325
+#: sphinx/cmd/quickstart.py:318
msgid ""
"A Makefile and a Windows command file can be generated for you so that you\n"
"only have to run e.g. `make html' instead of invoking sphinx-build\n"
"directly."
msgstr "會為您產生一個 Makefile 和一個 Windows 命令檔,所以\n您åªéœ€è¦åŸ·è¡Œåƒæ˜¯ `make html' 而ä¸å¿…直接調用 \nsphinx-build。"
-#: sphinx/cmd/quickstart.py:328
+#: sphinx/cmd/quickstart.py:321
msgid "Create Makefile? (y/n)"
msgstr "是å¦å»ºç«‹ Makefile? (y/n)"
-#: sphinx/cmd/quickstart.py:331
+#: sphinx/cmd/quickstart.py:324
msgid "Create Windows command file? (y/n)"
msgstr "是å¦å»ºç«‹ Windows 命令檔?(y/n)"
-#: sphinx/cmd/quickstart.py:375 sphinx/ext/apidoc.py:93
+#: sphinx/cmd/quickstart.py:368 sphinx/ext/apidoc.py:93
#, python-format
msgid "Creating file %s."
msgstr "正在建立檔案 %s 。"
-#: sphinx/cmd/quickstart.py:380 sphinx/ext/apidoc.py:90
+#: sphinx/cmd/quickstart.py:373 sphinx/ext/apidoc.py:90
#, python-format
msgid "File %s already exists, skipping."
msgstr "檔案 %s 已存在,正在跳éŽã€‚"
-#: sphinx/cmd/quickstart.py:422
+#: sphinx/cmd/quickstart.py:418
msgid "Finished: An initial directory structure has been created."
msgstr "å·²çµæŸï¼šä¸€å€‹åˆå§‹è³‡æ–™å¤¾çµæ§‹å·²è¢«å»ºç«‹ã€‚"
-#: sphinx/cmd/quickstart.py:424
+#: sphinx/cmd/quickstart.py:420
#, python-format
msgid ""
"You should now populate your master file %s and create other documentation\n"
"source files. "
msgstr "您ç¾åœ¨æ‡‰è©²åœ¨æ‚¨çš„主檔 %s 輸入資料並建立其他說明文件\n原始檔。"
-#: sphinx/cmd/quickstart.py:427
+#: sphinx/cmd/quickstart.py:423
msgid ""
"Use the Makefile to build the docs, like so:\n"
" make builder"
msgstr "使用 Makefile 來建立文件,åƒé€™æ¨£ï¼š\n make builder"
-#: sphinx/cmd/quickstart.py:430
+#: sphinx/cmd/quickstart.py:426
#, python-format
msgid ""
"Use the sphinx-build command to build the docs, like so:\n"
" sphinx-build -b builder %s %s"
msgstr "使用 sphinx-build 命令來建立文件,åƒé€™æ¨£ï¼š\n sphinx-build -b builder %s %s"
-#: sphinx/cmd/quickstart.py:432
+#: sphinx/cmd/quickstart.py:428
msgid ""
"where \"builder\" is one of the supported builders, e.g. html, latex or "
"linkcheck."
msgstr "在這裡 \"builder\" 是一種被支æ´çš„建立器,例如 html,latex 或 linkcheck。"
-#: sphinx/cmd/quickstart.py:467
+#: sphinx/cmd/quickstart.py:464
msgid ""
"\n"
"Generate required files for a Sphinx project.\n"
@@ -1653,135 +1702,135 @@ msgid ""
"Makefile to be used with sphinx-build.\n"
msgstr "\n為 Sphinx 專案產生需è¦çš„檔案。\n\nsphinx-quickstart 是一個互動å¼å·¥å…·ï¼Œå®ƒæœƒå•ä¸€äº›é—œæ–¼æ‚¨å°ˆæ¡ˆ\nçš„å•é¡Œï¼Œç„¶å¾Œç”¢ç”Ÿå®Œæ•´çš„說明文件資料夾以åŠç”¨æ–¼ sphinx-build \nçš„ Makefile 樣本。\n"
-#: sphinx/cmd/quickstart.py:482
+#: sphinx/cmd/quickstart.py:479
msgid "quiet mode"
msgstr "安éœæ¨¡å¼"
-#: sphinx/cmd/quickstart.py:487
+#: sphinx/cmd/quickstart.py:484
msgid "project root"
msgstr "專案根"
-#: sphinx/cmd/quickstart.py:489
+#: sphinx/cmd/quickstart.py:486
msgid "Structure options"
msgstr "çµæ§‹é¸é …"
-#: sphinx/cmd/quickstart.py:491
+#: sphinx/cmd/quickstart.py:488
msgid "if specified, separate source and build dirs"
msgstr "如果有指定,會分離來æºè³‡æ–™å¤¾å’Œ build 資料夾"
-#: sphinx/cmd/quickstart.py:493
+#: sphinx/cmd/quickstart.py:490
msgid "if specified, create build dir under source dir"
msgstr "如果有指定,會在來æºè³‡æ–™å¤¾ä¸‹å»ºç«‹ build 資料夾"
-#: sphinx/cmd/quickstart.py:495
+#: sphinx/cmd/quickstart.py:492
msgid "replacement for dot in _templates etc."
msgstr "在 _templates 等處進行å¥è™Ÿçš„å–代"
-#: sphinx/cmd/quickstart.py:497
+#: sphinx/cmd/quickstart.py:494
msgid "Project basic options"
msgstr "專案基本é¸é …"
-#: sphinx/cmd/quickstart.py:499
+#: sphinx/cmd/quickstart.py:496
msgid "project name"
msgstr "專案å稱"
-#: sphinx/cmd/quickstart.py:501
+#: sphinx/cmd/quickstart.py:498
msgid "author names"
msgstr "作者å"
-#: sphinx/cmd/quickstart.py:503
+#: sphinx/cmd/quickstart.py:500
msgid "version of project"
msgstr "專案版本"
-#: sphinx/cmd/quickstart.py:505
+#: sphinx/cmd/quickstart.py:502
msgid "release of project"
msgstr "專案發布"
-#: sphinx/cmd/quickstart.py:507
+#: sphinx/cmd/quickstart.py:504
msgid "document language"
msgstr "文件語言"
-#: sphinx/cmd/quickstart.py:509
+#: sphinx/cmd/quickstart.py:506
msgid "source file suffix"
msgstr "æºå§‹æª”後綴"
-#: sphinx/cmd/quickstart.py:511
+#: sphinx/cmd/quickstart.py:508
msgid "master document name"
msgstr "主文件å稱"
-#: sphinx/cmd/quickstart.py:513
+#: sphinx/cmd/quickstart.py:510
msgid "use epub"
msgstr "使用 epub"
-#: sphinx/cmd/quickstart.py:515
+#: sphinx/cmd/quickstart.py:512
msgid "Extension options"
msgstr "擴充套件é¸é …"
-#: sphinx/cmd/quickstart.py:519 sphinx/ext/apidoc.py:402
+#: sphinx/cmd/quickstart.py:516 sphinx/ext/apidoc.py:400
#, python-format
msgid "enable %s extension"
msgstr "啟用 %s 擴充套件"
-#: sphinx/cmd/quickstart.py:521 sphinx/ext/apidoc.py:398
+#: sphinx/cmd/quickstart.py:518 sphinx/ext/apidoc.py:396
msgid "enable arbitrary extensions"
msgstr "啟用任æ„的擴充套件"
-#: sphinx/cmd/quickstart.py:523
+#: sphinx/cmd/quickstart.py:520
msgid "Makefile and Batchfile creation"
msgstr "Makefile åŠ Batchfile 的建立"
-#: sphinx/cmd/quickstart.py:525
+#: sphinx/cmd/quickstart.py:522
msgid "create makefile"
msgstr "建立 makefile"
-#: sphinx/cmd/quickstart.py:527
+#: sphinx/cmd/quickstart.py:524
msgid "do not create makefile"
msgstr "ä¸è¦å»ºç«‹ makefile"
-#: sphinx/cmd/quickstart.py:529
+#: sphinx/cmd/quickstart.py:526
msgid "create batchfile"
msgstr "建立 batchfile"
-#: sphinx/cmd/quickstart.py:532
+#: sphinx/cmd/quickstart.py:529
msgid "do not create batchfile"
msgstr "ä¸è¦å»ºç«‹ batchfile"
-#: sphinx/cmd/quickstart.py:535
+#: sphinx/cmd/quickstart.py:532
msgid "use make-mode for Makefile/make.bat"
msgstr "使用 make 模å¼æ–¼ Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:538
+#: sphinx/cmd/quickstart.py:535
msgid "do not use make-mode for Makefile/make.bat"
msgstr "ä¸è¦ä½¿ç”¨ make 模å¼æ–¼ Makefile/make.bat"
-#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:404
+#: sphinx/cmd/quickstart.py:537 sphinx/ext/apidoc.py:402
msgid "Project templating"
msgstr "專案模æ¿åŒ–中"
-#: sphinx/cmd/quickstart.py:543 sphinx/ext/apidoc.py:407
+#: sphinx/cmd/quickstart.py:540 sphinx/ext/apidoc.py:405
msgid "template directory for template files"
msgstr "用於模æ¿æª”案的模æ¿è³‡æ–™å¤¾"
-#: sphinx/cmd/quickstart.py:546
+#: sphinx/cmd/quickstart.py:543
msgid "define a template variable"
msgstr "定義一個模æ¿è®Šæ•¸"
-#: sphinx/cmd/quickstart.py:579
+#: sphinx/cmd/quickstart.py:576
msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified."
msgstr "\"quiet\" 被指定,但 \"project\" 或 \"author\" 的任一項未被指定。"
-#: sphinx/cmd/quickstart.py:593
+#: sphinx/cmd/quickstart.py:590
msgid ""
"Error: specified path is not a directory, or sphinx files already exist."
msgstr "錯誤:指定的路徑ä¸æ˜¯è³‡æ–™å¤¾ï¼Œæˆ–是 sphinx 檔案已經存在。"
-#: sphinx/cmd/quickstart.py:595
+#: sphinx/cmd/quickstart.py:592
msgid ""
"sphinx-quickstart only generate into a empty directory. Please specify a new"
" root path."
msgstr "sphinx-quickstart åªèƒ½ç”¢ç”Ÿæ–¼ç©ºç™½è³‡æ–™å¤¾ä¸­ã€‚請指定一個新的根路徑。"
-#: sphinx/cmd/quickstart.py:610
+#: sphinx/cmd/quickstart.py:607
#, python-format
msgid "Invalid template variable: %s"
msgstr "無效的模æ¿è®Šæ•¸ï¼š %s"
@@ -1832,47 +1881,47 @@ msgstr "無法以一個 \"lines\" 的互斥集使用 \"lineno-match\" "
msgid "Line spec %r: no lines pulled from include file %r"
msgstr "Line spec %r: 從 include 檔案 %r 沒有æå–任何一行"
-#: sphinx/directives/other.py:116
+#: sphinx/directives/other.py:120
#, python-format
msgid "toctree glob pattern %r didn't match any documents"
msgstr "toctree glob 型樣 %r 未匹é…任何文件"
-#: sphinx/directives/other.py:142 sphinx/environment/adapters/toctree.py:323
+#: sphinx/directives/other.py:146 sphinx/environment/adapters/toctree.py:324
#, python-format
msgid "toctree contains reference to excluded document %r"
msgstr "toctree 包å«äº†æŒ‡å‘已排除文件的åƒç…§ %r"
-#: sphinx/directives/other.py:145 sphinx/environment/adapters/toctree.py:327
+#: sphinx/directives/other.py:149 sphinx/environment/adapters/toctree.py:328
#, python-format
msgid "toctree contains reference to nonexisting document %r"
msgstr "toctree 包å«äº†æŒ‡å‘ä¸å­˜åœ¨æ–‡ä»¶çš„åƒç…§ %r"
-#: sphinx/directives/other.py:156
+#: sphinx/directives/other.py:160
#, python-format
msgid "duplicated entry found in toctree: %s"
msgstr "在 toctree 中找到é‡è¤‡çš„項目: %s"
-#: sphinx/directives/other.py:188
+#: sphinx/directives/other.py:193
msgid "Section author: "
msgstr "章節作者:"
-#: sphinx/directives/other.py:190
+#: sphinx/directives/other.py:195
msgid "Module author: "
msgstr "模組作者:"
-#: sphinx/directives/other.py:192
+#: sphinx/directives/other.py:197
msgid "Code author: "
msgstr "程å¼ä½œè€…:"
-#: sphinx/directives/other.py:194
+#: sphinx/directives/other.py:199
msgid "Author: "
msgstr "作者:"
-#: sphinx/directives/other.py:266
+#: sphinx/directives/other.py:275
msgid ".. acks content is not a list"
msgstr ".. acks 的內容ä¸æ˜¯ä¸€å€‹åˆ—表"
-#: sphinx/directives/other.py:291
+#: sphinx/directives/other.py:301
msgid ".. hlist content is not a list"
msgstr ".. hlist 的內容ä¸æ˜¯ä¸€å€‹åˆ—表"
@@ -1887,82 +1936,10 @@ msgstr "å° csv-table 指令的 \":file:\" é¸é …ç¾åœ¨æœƒå°‡çµ•å°è·¯å¾‘辨識ç
msgid "%s %s"
msgstr "%s %s"
-#: sphinx/domains/c.py:2043 sphinx/domains/c.py:3318
-#, python-format
-msgid ""
-"Duplicate C declaration, also defined at %s:%s.\n"
-"Declaration is '.. c:%s:: %s'."
-msgstr "é‡è¤‡çš„ C 宣告,亦被定義於 %s:%s。\n宣告是 '.. c:%s:: %s'。"
-
-#: sphinx/domains/c.py:3257
-#, python-format
-msgid "%s (C %s)"
-msgstr "%s (C %s)"
-
-#: sphinx/domains/c.py:3356 sphinx/domains/cpp.py:7496
-#: sphinx/domains/python.py:682 sphinx/ext/napoleon/docstring.py:760
-msgid "Parameters"
-msgstr "åƒæ•¸"
-
-#: sphinx/domains/c.py:3359 sphinx/domains/cpp.py:7502
-msgid "Return values"
-msgstr "回傳值"
-
-#: sphinx/domains/c.py:3362 sphinx/domains/cpp.py:7505
-#: sphinx/domains/javascript.py:259 sphinx/domains/python.py:694
-msgid "Returns"
-msgstr "回傳"
-
-#: sphinx/domains/c.py:3364 sphinx/domains/javascript.py:261
-#: sphinx/domains/python.py:696
-msgid "Return type"
-msgstr "回傳型別"
-
-#: sphinx/domains/c.py:3730 sphinx/domains/cpp.py:7909
-msgid "member"
-msgstr "æˆå“¡å‡½æ•¸"
-
-#: sphinx/domains/c.py:3731
-msgid "variable"
-msgstr "變數"
-
-#: sphinx/domains/c.py:3732 sphinx/domains/cpp.py:7908
-#: sphinx/domains/javascript.py:365 sphinx/domains/python.py:1454
-msgid "function"
-msgstr "函å¼"
-
-#: sphinx/domains/c.py:3733
-msgid "macro"
-msgstr "巨集"
-
-#: sphinx/domains/c.py:3734
-msgid "struct"
-msgstr "çµæ§‹"
-
-#: sphinx/domains/c.py:3735 sphinx/domains/cpp.py:7907
-msgid "union"
-msgstr "union"
-
-#: sphinx/domains/c.py:3736 sphinx/domains/cpp.py:7912
-msgid "enum"
-msgstr "enum"
-
-#: sphinx/domains/c.py:3737 sphinx/domains/cpp.py:7913
-msgid "enumerator"
-msgstr "enumerator"
-
-#: sphinx/domains/c.py:3738 sphinx/domains/cpp.py:7910
-msgid "type"
-msgstr "型別"
-
-#: sphinx/domains/c.py:3740 sphinx/domains/cpp.py:7915
-msgid "function parameter"
-msgstr "函å¼åƒæ•¸"
-
#: sphinx/domains/changeset.py:23
#, python-format
-msgid "New in version %s"
-msgstr "在 %s 版新加入"
+msgid "Added in version %s"
+msgstr ""
#: sphinx/domains/changeset.py:24
#, python-format
@@ -1974,346 +1951,423 @@ msgstr "在 %s 版的變更"
msgid "Deprecated since version %s"
msgstr "在 %s 版之後被棄用"
-#: sphinx/domains/citation.py:70
+#: sphinx/domains/changeset.py:26
+#, python-format
+msgid "Removed in version %s"
+msgstr ""
+
+#: sphinx/domains/citation.py:71
#, python-format
msgid "duplicate citation %s, other instance in %s"
msgstr "é‡è¤‡çš„引用 %s,亦出ç¾æ–¼ %s"
-#: sphinx/domains/citation.py:81
+#: sphinx/domains/citation.py:82
#, python-format
msgid "Citation [%s] is not referenced."
msgstr "引用 [%s] 未被åƒç…§ã€‚"
-#: sphinx/domains/cpp.py:4929 sphinx/domains/cpp.py:7423
-#, python-format
-msgid ""
-"Duplicate C++ declaration, also defined at %s:%s.\n"
-"Declaration is '.. cpp:%s:: %s'."
-msgstr "é‡è¤‡çš„ C++ 宣告,亦被定義於 %s:%s。\n宣告是 '.. cpp:%s:: %s'。"
-
-#: sphinx/domains/cpp.py:7218
-msgid "Template Parameters"
-msgstr "模æ¿åƒæ•¸"
-
-#: sphinx/domains/cpp.py:7340
-#, python-format
-msgid "%s (C++ %s)"
-msgstr "%s (C++ %s)"
-
-#: sphinx/domains/cpp.py:7499 sphinx/domains/javascript.py:256
-msgid "Throws"
-msgstr "拋出"
-
-#: sphinx/domains/cpp.py:7906 sphinx/domains/javascript.py:367
-#: sphinx/domains/python.py:1456
-msgid "class"
-msgstr "類別"
-
-#: sphinx/domains/cpp.py:7911
-msgid "concept"
-msgstr "概念"
-
-#: sphinx/domains/cpp.py:7916
-msgid "template parameter"
-msgstr "模æ¿åƒæ•¸"
-
-#: sphinx/domains/javascript.py:164
+#: sphinx/domains/javascript.py:165
#, python-format
msgid "%s() (built-in function)"
msgstr "%s() (內建函å¼)"
-#: sphinx/domains/javascript.py:165 sphinx/domains/python.py:1121
+#: sphinx/domains/javascript.py:166 sphinx/domains/python/__init__.py:240
#, python-format
msgid "%s() (%s method)"
msgstr "%s() (%s 的方法)"
-#: sphinx/domains/javascript.py:167
+#: sphinx/domains/javascript.py:168
#, python-format
msgid "%s() (class)"
msgstr "%s() (類別)"
-#: sphinx/domains/javascript.py:169
+#: sphinx/domains/javascript.py:170
#, python-format
msgid "%s (global variable or constant)"
msgstr "%s (全域變數或常數)"
-#: sphinx/domains/javascript.py:171 sphinx/domains/python.py:1206
+#: sphinx/domains/javascript.py:172 sphinx/domains/python/__init__.py:325
#, python-format
msgid "%s (%s attribute)"
msgstr "%s (%s 的屬性)"
-#: sphinx/domains/javascript.py:253
+#: sphinx/domains/javascript.py:255
msgid "Arguments"
msgstr "引數"
-#: sphinx/domains/javascript.py:329
+#: sphinx/domains/cpp/__init__.py:350 sphinx/domains/javascript.py:258
+msgid "Throws"
+msgstr "拋出"
+
+#: sphinx/domains/c/__init__.py:251 sphinx/domains/cpp/__init__.py:361
+#: sphinx/domains/javascript.py:261 sphinx/domains/python/_object.py:175
+msgid "Returns"
+msgstr "回傳"
+
+#: sphinx/domains/c/__init__.py:253 sphinx/domains/javascript.py:263
+#: sphinx/domains/python/_object.py:177
+msgid "Return type"
+msgstr "回傳型別"
+
+#: sphinx/domains/javascript.py:331
#, python-format
msgid "%s (module)"
msgstr "%s (模組)"
-#: sphinx/domains/javascript.py:366 sphinx/domains/python.py:1458
+#: sphinx/domains/c/__init__.py:622 sphinx/domains/cpp/__init__.py:764
+#: sphinx/domains/javascript.py:368 sphinx/domains/python/__init__.py:574
+msgid "function"
+msgstr "函å¼"
+
+#: sphinx/domains/javascript.py:369 sphinx/domains/python/__init__.py:578
msgid "method"
msgstr "方法"
-#: sphinx/domains/javascript.py:368 sphinx/domains/python.py:1455
+#: sphinx/domains/cpp/__init__.py:762 sphinx/domains/javascript.py:370
+#: sphinx/domains/python/__init__.py:576
+msgid "class"
+msgstr "類別"
+
+#: sphinx/domains/javascript.py:371 sphinx/domains/python/__init__.py:575
msgid "data"
msgstr "資料"
-#: sphinx/domains/javascript.py:369 sphinx/domains/python.py:1461
+#: sphinx/domains/javascript.py:372 sphinx/domains/python/__init__.py:581
msgid "attribute"
msgstr "屬性"
-#: sphinx/domains/javascript.py:370 sphinx/domains/python.py:1463
+#: sphinx/domains/javascript.py:373 sphinx/domains/python/__init__.py:583
msgid "module"
msgstr "模組"
-#: sphinx/domains/javascript.py:401
+#: sphinx/domains/javascript.py:404
#, python-format
msgid "duplicate %s description of %s, other %s in %s"
msgstr "%s çš„é‡è¤‡ %s 敘述,其他的 %s 在 %s"
-#: sphinx/domains/math.py:61
+#: sphinx/domains/math.py:63
#, python-format
msgid "duplicate label of equation %s, other instance in %s"
msgstr "é‡è¤‡å…¬å¼æ¨™ç±¤ %s,亦出ç¾æ–¼ %s"
-#: sphinx/domains/math.py:116 sphinx/writers/latex.py:2252
+#: sphinx/domains/math.py:118 sphinx/writers/latex.py:2252
#, python-format
msgid "Invalid math_eqref_format: %r"
msgstr "無效的 math_eqref_format: %r"
-#: sphinx/domains/python.py:687
-msgid "Variables"
+#: sphinx/domains/rst.py:127 sphinx/domains/rst.py:184
+#, python-format
+msgid "%s (directive)"
+msgstr "%s (指令)"
+
+#: sphinx/domains/rst.py:185 sphinx/domains/rst.py:189
+#, python-format
+msgid ":%s: (directive option)"
+msgstr ":%s: (指令é¸é …)"
+
+#: sphinx/domains/rst.py:213
+#, python-format
+msgid "%s (role)"
+msgstr "%s (角色)"
+
+#: sphinx/domains/rst.py:223
+msgid "directive"
+msgstr "指令"
+
+#: sphinx/domains/rst.py:224
+msgid "directive-option"
+msgstr "指令é¸é …"
+
+#: sphinx/domains/rst.py:225
+msgid "role"
+msgstr "角色"
+
+#: sphinx/domains/rst.py:247
+#, python-format
+msgid "duplicate description of %s %s, other instance in %s"
+msgstr "%s %s çš„é‡è¤‡æ•˜è¿°ï¼Œå…¶ä»–的實例在 %s"
+
+#: sphinx/domains/c/__init__.py:146
+#, python-format
+msgid "%s (C %s)"
+msgstr "%s (C %s)"
+
+#: sphinx/domains/c/__init__.py:207 sphinx/domains/c/_symbol.py:552
+#, python-format
+msgid ""
+"Duplicate C declaration, also defined at %s:%s.\n"
+"Declaration is '.. c:%s:: %s'."
+msgstr "é‡è¤‡çš„ C 宣告,亦被定義於 %s:%s。\n宣告是 '.. c:%s:: %s'。"
+
+#: sphinx/domains/c/__init__.py:245 sphinx/domains/cpp/__init__.py:344
+#: sphinx/domains/python/_object.py:163 sphinx/ext/napoleon/docstring.py:762
+msgid "Parameters"
+msgstr "åƒæ•¸"
+
+#: sphinx/domains/c/__init__.py:248 sphinx/domains/cpp/__init__.py:357
+msgid "Return values"
+msgstr "回傳值"
+
+#: sphinx/domains/c/__init__.py:620 sphinx/domains/cpp/__init__.py:765
+msgid "member"
+msgstr "æˆå“¡å‡½æ•¸"
+
+#: sphinx/domains/c/__init__.py:621
+msgid "variable"
msgstr "變數"
-#: sphinx/domains/python.py:691
-msgid "Raises"
-msgstr "引發"
+#: sphinx/domains/c/__init__.py:623
+msgid "macro"
+msgstr "巨集"
+
+#: sphinx/domains/c/__init__.py:624
+msgid "struct"
+msgstr "çµæ§‹"
-#: sphinx/domains/python.py:975 sphinx/domains/python.py:1112
+#: sphinx/domains/c/__init__.py:625 sphinx/domains/cpp/__init__.py:763
+msgid "union"
+msgstr "union"
+
+#: sphinx/domains/c/__init__.py:626 sphinx/domains/cpp/__init__.py:768
+msgid "enum"
+msgstr "enum"
+
+#: sphinx/domains/c/__init__.py:627 sphinx/domains/cpp/__init__.py:769
+msgid "enumerator"
+msgstr "enumerator"
+
+#: sphinx/domains/c/__init__.py:628 sphinx/domains/cpp/__init__.py:766
+msgid "type"
+msgstr "型別"
+
+#: sphinx/domains/c/__init__.py:630 sphinx/domains/cpp/__init__.py:771
+msgid "function parameter"
+msgstr "函å¼åƒæ•¸"
+
+#: sphinx/domains/cpp/__init__.py:63
+msgid "Template Parameters"
+msgstr "模æ¿åƒæ•¸"
+
+#: sphinx/domains/cpp/__init__.py:185
+#, python-format
+msgid "%s (C++ %s)"
+msgstr "%s (C++ %s)"
+
+#: sphinx/domains/cpp/__init__.py:268 sphinx/domains/cpp/_symbol.py:790
+#, python-format
+msgid ""
+"Duplicate C++ declaration, also defined at %s:%s.\n"
+"Declaration is '.. cpp:%s:: %s'."
+msgstr "é‡è¤‡çš„ C++ 宣告,亦被定義於 %s:%s。\n宣告是 '.. cpp:%s:: %s'。"
+
+#: sphinx/domains/cpp/__init__.py:767
+msgid "concept"
+msgstr "概念"
+
+#: sphinx/domains/cpp/__init__.py:772
+msgid "template parameter"
+msgstr "模æ¿åƒæ•¸"
+
+#: sphinx/domains/python/__init__.py:94 sphinx/domains/python/__init__.py:231
#, python-format
msgid "%s() (in module %s)"
msgstr "%s() (於 %s 模組中)"
-#: sphinx/domains/python.py:1035 sphinx/domains/python.py:1202
-#: sphinx/domains/python.py:1253
+#: sphinx/domains/python/__init__.py:154 sphinx/domains/python/__init__.py:321
+#: sphinx/domains/python/__init__.py:372
#, python-format
msgid "%s (in module %s)"
msgstr "%s (於 %s 模組中)"
-#: sphinx/domains/python.py:1037
+#: sphinx/domains/python/__init__.py:156
#, python-format
msgid "%s (built-in variable)"
msgstr "%s (內建變數)"
-#: sphinx/domains/python.py:1062
+#: sphinx/domains/python/__init__.py:181
#, python-format
msgid "%s (built-in class)"
msgstr "%s (內建類別)"
-#: sphinx/domains/python.py:1063
+#: sphinx/domains/python/__init__.py:182
#, python-format
msgid "%s (class in %s)"
msgstr "%s (%s 中的類別)"
-#: sphinx/domains/python.py:1117
+#: sphinx/domains/python/__init__.py:236
#, python-format
msgid "%s() (%s class method)"
msgstr "%s() (%s 的類別方法)"
-#: sphinx/domains/python.py:1119
+#: sphinx/domains/python/__init__.py:238
#, python-format
msgid "%s() (%s static method)"
msgstr "%s() (%s çš„éœæ…‹æ–¹æ³•)"
-#: sphinx/domains/python.py:1257
+#: sphinx/domains/python/__init__.py:376
#, python-format
msgid "%s (%s property)"
msgstr "%s (%s 的特性)"
-#: sphinx/domains/python.py:1383
+#: sphinx/domains/python/__init__.py:502
msgid "Python Module Index"
msgstr "Python 模組索引"
-#: sphinx/domains/python.py:1384
+#: sphinx/domains/python/__init__.py:503
msgid "modules"
msgstr "模組"
-#: sphinx/domains/python.py:1433
+#: sphinx/domains/python/__init__.py:552
msgid "Deprecated"
msgstr "已棄用"
-#: sphinx/domains/python.py:1457
+#: sphinx/domains/python/__init__.py:577
msgid "exception"
msgstr "例外"
-#: sphinx/domains/python.py:1459
+#: sphinx/domains/python/__init__.py:579
msgid "class method"
msgstr "類別方法"
-#: sphinx/domains/python.py:1460
+#: sphinx/domains/python/__init__.py:580
msgid "static method"
msgstr "éœæ…‹æ–¹æ³•"
-#: sphinx/domains/python.py:1462
+#: sphinx/domains/python/__init__.py:582
msgid "property"
msgstr "特性"
-#: sphinx/domains/python.py:1520
+#: sphinx/domains/python/__init__.py:640
#, python-format
msgid ""
"duplicate object description of %s, other instance in %s, use :no-index: for"
" one of them"
-msgstr ""
+msgstr "é‡è¤‡çš„ %s 的物件æ述,在 %s 有其他實例,請在它們其中之一使用 :no-index:"
-#: sphinx/domains/python.py:1640
+#: sphinx/domains/python/__init__.py:760
#, python-format
msgid "more than one target found for cross-reference %r: %s"
msgstr "為交互åƒç…§ %r 找到多於一個目標: %s"
-#: sphinx/domains/python.py:1701
+#: sphinx/domains/python/__init__.py:821
msgid " (deprecated)"
msgstr "(已棄用)"
-#: sphinx/domains/rst.py:125 sphinx/domains/rst.py:181
-#, python-format
-msgid "%s (directive)"
-msgstr "%s (指令)"
-
-#: sphinx/domains/rst.py:182 sphinx/domains/rst.py:186
-#, python-format
-msgid ":%s: (directive option)"
-msgstr ":%s: (指令é¸é …)"
-
-#: sphinx/domains/rst.py:209
-#, python-format
-msgid "%s (role)"
-msgstr "%s (角色)"
-
-#: sphinx/domains/rst.py:218
-msgid "directive"
-msgstr "指令"
-
-#: sphinx/domains/rst.py:219
-msgid "directive-option"
-msgstr "指令é¸é …"
-
-#: sphinx/domains/rst.py:220
-msgid "role"
-msgstr "角色"
+#: sphinx/domains/python/_object.py:168
+msgid "Variables"
+msgstr "變數"
-#: sphinx/domains/rst.py:242
-#, python-format
-msgid "duplicate description of %s %s, other instance in %s"
-msgstr "%s %s çš„é‡è¤‡æ•˜è¿°ï¼Œå…¶ä»–的實例在 %s"
+#: sphinx/domains/python/_object.py:172
+msgid "Raises"
+msgstr "引發"
-#: sphinx/domains/std.py:79 sphinx/domains/std.py:96
+#: sphinx/domains/std/__init__.py:80 sphinx/domains/std/__init__.py:97
#, python-format
msgid "environment variable; %s"
msgstr "環境變數; %s"
-#: sphinx/domains/std.py:155
+#: sphinx/domains/std/__init__.py:157
#, python-format
msgid ""
"Malformed option description %r, should look like \"opt\", \"-opt args\", \""
"--opt args\", \"/opt args\" or \"+opt args\""
msgstr "異常的é¸é …敘述 %r ,應該è¦çœ‹èµ·ä¾†åƒ \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" 或 \"+opt args\""
-#: sphinx/domains/std.py:226
+#: sphinx/domains/std/__init__.py:228
#, python-format
msgid "%s command line option"
msgstr "%s 命令列é¸é …"
-#: sphinx/domains/std.py:228
+#: sphinx/domains/std/__init__.py:230
msgid "command line option"
msgstr "命令列é¸é …"
-#: sphinx/domains/std.py:346
+#: sphinx/domains/std/__init__.py:348
msgid "glossary term must be preceded by empty line"
msgstr "術語表項目必須有空白行在å‰"
-#: sphinx/domains/std.py:354
+#: sphinx/domains/std/__init__.py:356
msgid "glossary terms must not be separated by empty lines"
msgstr "術語表項目ä¸å¯ä»¥è¢«ç©ºç™½è¡Œåˆ†éš”"
-#: sphinx/domains/std.py:360 sphinx/domains/std.py:373
+#: sphinx/domains/std/__init__.py:362 sphinx/domains/std/__init__.py:375
msgid "glossary seems to be misformatted, check indentation"
msgstr "術語表似乎有格å¼éŒ¯èª¤ï¼Œè«‹æª¢æŸ¥ç¸®æŽ’"
-#: sphinx/domains/std.py:516
+#: sphinx/domains/std/__init__.py:518
msgid "glossary term"
msgstr "雜項術語"
-#: sphinx/domains/std.py:517
+#: sphinx/domains/std/__init__.py:519
msgid "grammar token"
msgstr "語法單詞"
-#: sphinx/domains/std.py:518
+#: sphinx/domains/std/__init__.py:520
msgid "reference label"
msgstr "åƒç…§æ¨™ç±¤"
-#: sphinx/domains/std.py:520
+#: sphinx/domains/std/__init__.py:522
msgid "environment variable"
msgstr "環境變數"
-#: sphinx/domains/std.py:521
+#: sphinx/domains/std/__init__.py:523
msgid "program option"
msgstr "程å¼é¸é …"
-#: sphinx/domains/std.py:522
+#: sphinx/domains/std/__init__.py:524
msgid "document"
msgstr "文件"
-#: sphinx/domains/std.py:558 sphinx/domains/std.py:570
+#: sphinx/domains/std/__init__.py:560 sphinx/domains/std/__init__.py:572
msgid "Module Index"
msgstr "模組索引"
-#: sphinx/domains/std.py:559 sphinx/domains/std.py:571
+#: sphinx/domains/std/__init__.py:561 sphinx/domains/std/__init__.py:573
#: sphinx/themes/basic/defindex.html:25
msgid "Search Page"
msgstr "æœå°‹é é¢"
-#: sphinx/domains/std.py:614 sphinx/domains/std.py:720
-#: sphinx/ext/autosectionlabel.py:52
+#: sphinx/domains/std/__init__.py:616 sphinx/domains/std/__init__.py:722
+#: sphinx/ext/autosectionlabel.py:53
#, python-format
msgid "duplicate label %s, other instance in %s"
msgstr "é‡è¤‡çš„標籤 %s,亦出ç¾æ–¼ %s"
-#: sphinx/domains/std.py:633
+#: sphinx/domains/std/__init__.py:635
#, python-format
msgid "duplicate %s description of %s, other instance in %s"
msgstr "é‡è¤‡ %s çš„æè¿° %s,亦出ç¾æ–¼ %s"
-#: sphinx/domains/std.py:839
+#: sphinx/domains/std/__init__.py:841
msgid "numfig is disabled. :numref: is ignored."
msgstr "numfig å·²åœç”¨ã€‚ :numref: 已略éŽã€‚"
-#: sphinx/domains/std.py:847
+#: sphinx/domains/std/__init__.py:849
#, python-format
msgid "Failed to create a cross reference. Any number is not assigned: %s"
msgstr "無法建立一個交互åƒç…§ã€‚任一數字未被指定: %s"
-#: sphinx/domains/std.py:859
+#: sphinx/domains/std/__init__.py:861
#, python-format
msgid "the link has no caption: %s"
msgstr "這個連çµæ²’有標題: %s"
-#: sphinx/domains/std.py:873
+#: sphinx/domains/std/__init__.py:875
#, python-format
msgid "invalid numfig_format: %s (%r)"
msgstr "無效的 numfig_format: %s (%r)"
-#: sphinx/domains/std.py:876
+#: sphinx/domains/std/__init__.py:878
#, python-format
msgid "invalid numfig_format: %s"
msgstr "無效的 numfig_format: %s"
-#: sphinx/domains/std.py:1106
+#: sphinx/domains/std/__init__.py:1109
#, python-format
msgid "undefined label: %r"
msgstr "未定義的標籤: %r"
-#: sphinx/domains/std.py:1108
+#: sphinx/domains/std/__init__.py:1111
#, python-format
msgid "Failed to create a cross reference. A title or caption not found: %r"
msgstr "無法建立一個交互åƒç…§ã€‚未找到標題或說明: %r"
@@ -2330,35 +2384,35 @@ msgstr "組態已變更"
msgid "extensions changed"
msgstr "擴充套件已變更"
-#: sphinx/environment/__init__.py:276
+#: sphinx/environment/__init__.py:279
msgid "build environment version not current"
msgstr "建立環境的版本ä¸æ˜¯ç›®å‰çš„"
-#: sphinx/environment/__init__.py:278
+#: sphinx/environment/__init__.py:281
msgid "source directory has changed"
msgstr "來æºè³‡æ–™å¤¾å·²è®Šæ›´"
-#: sphinx/environment/__init__.py:357
+#: sphinx/environment/__init__.py:360
msgid ""
"This environment is incompatible with the selected builder, please choose "
"another doctree directory."
msgstr "這個環境與所é¸çš„ builder ä¸ç›¸å®¹ï¼Œè«‹é¸æ“‡å¦ä¸€å€‹ doctree 資料夾。"
-#: sphinx/environment/__init__.py:456
+#: sphinx/environment/__init__.py:459
#, python-format
msgid "Failed to scan documents in %s: %r"
msgstr "無法掃æ %s 中的文件: %r"
-#: sphinx/environment/__init__.py:593
+#: sphinx/environment/__init__.py:596
#, python-format
msgid "Domain %r is not registered"
msgstr "Domain %r 未被註冊"
-#: sphinx/environment/__init__.py:727
+#: sphinx/environment/__init__.py:730
msgid "document isn't included in any toctree"
msgstr "文件未被包å«æ–¼ä»»ä½• toctree"
-#: sphinx/environment/__init__.py:764
+#: sphinx/environment/__init__.py:766
msgid "self referenced toctree found. Ignored."
msgstr "找到自我åƒç…§çš„ toctree。已略éŽã€‚"
@@ -2382,39 +2436,39 @@ msgstr "未知的索引項目型別 %r"
msgid "Symbols"
msgstr "符號"
-#: sphinx/environment/adapters/toctree.py:296
+#: sphinx/environment/adapters/toctree.py:297
#, python-format
msgid "circular toctree references detected, ignoring: %s <- %s"
msgstr "åµæ¸¬åˆ°å¾ªç’°çš„ toctree åƒç…§ï¼Œå¿½ç•¥ä¸­ï¼š %s <- %s"
-#: sphinx/environment/adapters/toctree.py:316
+#: sphinx/environment/adapters/toctree.py:317
#, python-format
msgid ""
"toctree contains reference to document %r that doesn't have a title: no link"
" will be generated"
msgstr "toctree 包å«äº†åˆ°æ–‡ä»¶ %r çš„åƒç…§ï¼Œè©²æ–‡ä»¶æ²’有標題:ä¸æœƒç”¢ç”Ÿä»»ä½•éˆæŽ¥"
-#: sphinx/environment/adapters/toctree.py:325
+#: sphinx/environment/adapters/toctree.py:326
#, python-format
msgid "toctree contains reference to non-included document %r"
msgstr "toctree 包å«äº† non-included 文件 %r çš„åƒç…§"
-#: sphinx/environment/collectors/asset.py:88
+#: sphinx/environment/collectors/asset.py:89
#, python-format
msgid "image file not readable: %s"
msgstr "å½±åƒæª”案無法讀å–: %s"
-#: sphinx/environment/collectors/asset.py:107
+#: sphinx/environment/collectors/asset.py:108
#, python-format
msgid "image file %s not readable: %s"
msgstr "å½±åƒæª”案 %s 無法讀å–: %s"
-#: sphinx/environment/collectors/asset.py:133
+#: sphinx/environment/collectors/asset.py:134
#, python-format
msgid "download file not readable: %s"
msgstr "下載檔案無法讀å–: %s"
-#: sphinx/environment/collectors/toctree.py:224
+#: sphinx/environment/collectors/toctree.py:225
#, python-format
msgid "%s is already assigned section numbers (nested numbered toctree?)"
msgstr "%s 已經被指定段è½ç·¨è™Ÿï¼ˆå·¢ç‹€ç·¨è™Ÿçš„ toctree?)"
@@ -2424,7 +2478,7 @@ msgstr "%s 已經被指定段è½ç·¨è™Ÿï¼ˆå·¢ç‹€ç·¨è™Ÿçš„ toctree?)"
msgid "Would create file %s."
msgstr "將會建立檔案 %s 。"
-#: sphinx/ext/apidoc.py:320
+#: sphinx/ext/apidoc.py:318
msgid ""
"\n"
"Look recursively in <MODULE_PATH> for Python modules and packages and create\n"
@@ -2436,149 +2490,149 @@ msgid ""
"Note: By default this script will not overwrite already created files."
msgstr "\n在 <MODULE_PATH> 中éžè¿´æŸ¥æ‰¾ Python 模組åŠå¥—件,並在 <OUTPUT_PATH> 中\n為æ¯å€‹å¥—件建立一個帶有 automodule 指令的 reST 檔。\n\n<EXCLUDE_PATTERN> å¯ä»¥æ˜¯æª”案åŠ/或資料夾型樣,它們將在生æˆæ™‚被\n移除。\n\n備註:在é è¨­æƒ…æ³ï¼Œæ­¤è…³æœ¬ä¸æœƒé‡å¯«å·²ç¶“被建立的檔案。"
-#: sphinx/ext/apidoc.py:333
+#: sphinx/ext/apidoc.py:331
msgid "path to module to document"
msgstr "è¦ç”Ÿæˆæ–‡ä»¶çš„模組路徑"
-#: sphinx/ext/apidoc.py:335
+#: sphinx/ext/apidoc.py:333
msgid ""
"fnmatch-style file and/or directory patterns to exclude from generation"
msgstr "fnmatch 風格的檔案åŠ/或資料夾模å¼ï¼Œå°‡åœ¨ç”Ÿæˆæ™‚移除。"
-#: sphinx/ext/apidoc.py:340
+#: sphinx/ext/apidoc.py:338
msgid "directory to place all output"
msgstr "è¦æ”¾ç½®æ‰€æœ‰è¼¸å‡ºçš„資料夾"
-#: sphinx/ext/apidoc.py:345
+#: sphinx/ext/apidoc.py:343
msgid "maximum depth of submodules to show in the TOC (default: 4)"
msgstr "能顯示 TOC çš„å­æ¨¡çµ„最大深度(é è¨­å€¼ï¼š4)"
-#: sphinx/ext/apidoc.py:348
+#: sphinx/ext/apidoc.py:346
msgid "overwrite existing files"
msgstr "é‡å¯«å·²å­˜åœ¨çš„檔案"
-#: sphinx/ext/apidoc.py:351
+#: sphinx/ext/apidoc.py:349
msgid ""
"follow symbolic links. Powerful when combined with "
"collective.recipe.omelette."
msgstr "跟隨符號éˆæŽ¥ã€‚與 collective.recipe.omelette çµåˆæ™‚很有用。"
-#: sphinx/ext/apidoc.py:354
+#: sphinx/ext/apidoc.py:352
msgid "run the script without creating files"
msgstr "執行腳本而ä¸å»ºç«‹æª”案"
-#: sphinx/ext/apidoc.py:357
+#: sphinx/ext/apidoc.py:355
msgid "put documentation for each module on its own page"
msgstr "為æ¯å€‹æ¨¡çµ„在它自己的é é¢ç½®æ”¾èªªæ˜Žæ–‡ä»¶"
-#: sphinx/ext/apidoc.py:360
+#: sphinx/ext/apidoc.py:358
msgid "include \"_private\" modules"
msgstr "åŒ…å« \"_private\" 模組"
-#: sphinx/ext/apidoc.py:362
+#: sphinx/ext/apidoc.py:360
msgid "filename of table of contents (default: modules)"
msgstr "目錄的檔å(é è¨­å€¼ï¼šæ¨¡çµ„)"
-#: sphinx/ext/apidoc.py:364
+#: sphinx/ext/apidoc.py:362
msgid "don't create a table of contents file"
msgstr "ä¸è¦å»ºç«‹ç›®éŒ„檔案"
-#: sphinx/ext/apidoc.py:367
+#: sphinx/ext/apidoc.py:365
msgid ""
"don't create headings for the module/package packages (e.g. when the "
"docstrings already contain them)"
msgstr "ä¸è¦ç‚ºæ¨¡çµ„/套件建立標頭(例如:當說明字串已經包å«å®ƒå€‘時)"
-#: sphinx/ext/apidoc.py:372
+#: sphinx/ext/apidoc.py:370
msgid "put module documentation before submodule documentation"
msgstr "在å­æ¨¡çµ„說明文件之å‰ç½®æ”¾æ¨¡çµ„說明文件"
-#: sphinx/ext/apidoc.py:376
+#: sphinx/ext/apidoc.py:374
msgid ""
"interpret module paths according to PEP-0420 implicit namespaces "
"specification"
msgstr "根據 PEP-0420 éš±å¼å‘½å空間è¦ç¯„來解譯模組路徑"
-#: sphinx/ext/apidoc.py:380
+#: sphinx/ext/apidoc.py:378
msgid "file suffix (default: rst)"
msgstr "檔案後綴(é è¨­å€¼ï¼šrst)"
-#: sphinx/ext/apidoc.py:382
+#: sphinx/ext/apidoc.py:380
msgid "generate a full project with sphinx-quickstart"
msgstr "以 sphinx-quickstart 生æˆä¸€å€‹å®Œå…¨çš„專案"
-#: sphinx/ext/apidoc.py:385
+#: sphinx/ext/apidoc.py:383
msgid "append module_path to sys.path, used when --full is given"
msgstr "附加 module_path 到 sys.path,在給予 --full 時使用"
-#: sphinx/ext/apidoc.py:387
+#: sphinx/ext/apidoc.py:385
msgid "project name (default: root module name)"
msgstr "專案å稱(é è¨­å€¼ï¼šæ ¹æ¨¡çµ„å稱)"
-#: sphinx/ext/apidoc.py:389
+#: sphinx/ext/apidoc.py:387
msgid "project author(s), used when --full is given"
msgstr "專案作者(們),在給予 --full 時使用"
-#: sphinx/ext/apidoc.py:391
+#: sphinx/ext/apidoc.py:389
msgid "project version, used when --full is given"
msgstr "專案版本,在給予 --full 時使用"
-#: sphinx/ext/apidoc.py:393
+#: sphinx/ext/apidoc.py:391
msgid "project release, used when --full is given, defaults to --doc-version"
msgstr "專案發布,在給予 --full 時使用,é è¨­ç‚º --doc-version"
-#: sphinx/ext/apidoc.py:396
+#: sphinx/ext/apidoc.py:394
msgid "extension options"
msgstr "擴充套件é¸é …"
-#: sphinx/ext/apidoc.py:429
+#: sphinx/ext/apidoc.py:427
#, python-format
msgid "%s is not a directory."
msgstr "%s ä¸æ˜¯è³‡æ–™å¤¾"
-#: sphinx/ext/autosectionlabel.py:48
+#: sphinx/ext/autosectionlabel.py:49
#, python-format
msgid "section \"%s\" gets labeled as \"%s\""
msgstr "æ®µè½ \"%s\" å–得標籤 \"%s\""
-#: sphinx/ext/coverage.py:45
+#: sphinx/ext/coverage.py:46
#, python-format
msgid "invalid regex %r in %s"
msgstr "無效的 regex %r 在 %s"
-#: sphinx/ext/coverage.py:73
+#: sphinx/ext/coverage.py:75
#, python-format
msgid ""
"Testing of coverage in the sources finished, look at the results in "
"%(outdir)spython.txt."
msgstr "來æºçš„涵蓋測試已çµæŸï¼Œåœ¨ %(outdir)spython.txt 中查看çµæžœã€‚"
-#: sphinx/ext/coverage.py:87
+#: sphinx/ext/coverage.py:89
#, python-format
msgid "invalid regex %r in coverage_c_regexes"
msgstr "無效的 regex %r 在 coverage_c_regexes"
-#: sphinx/ext/coverage.py:155
+#: sphinx/ext/coverage.py:157
#, python-format
msgid "undocumented c api: %s [%s] in file %s"
msgstr "未文件化的 c api: %s [%s] 在檔案 %s 中"
-#: sphinx/ext/coverage.py:187
+#: sphinx/ext/coverage.py:189
#, python-format
msgid "module %s could not be imported: %s"
msgstr "模組 %s 無法被 import: %s"
-#: sphinx/ext/coverage.py:334
+#: sphinx/ext/coverage.py:340
#, python-format
msgid "undocumented python function: %s :: %s"
msgstr "未文件化的 python 函å¼ï¼š %s :: %s"
-#: sphinx/ext/coverage.py:350
+#: sphinx/ext/coverage.py:356
#, python-format
msgid "undocumented python class: %s :: %s"
msgstr "未文件化的 python class: %s :: %s"
-#: sphinx/ext/coverage.py:363
+#: sphinx/ext/coverage.py:369
#, python-format
msgid "undocumented python method: %s :: %s :: %s"
msgstr "未文件化的 python method: %s :: %s :: %s"
@@ -2602,24 +2656,24 @@ msgstr "'%s' ä¸æ˜¯æœ‰æ•ˆçš„ pyversion é¸é …"
msgid "invalid TestCode type"
msgstr "無效的 TestCode 型別"
-#: sphinx/ext/doctest.py:280
+#: sphinx/ext/doctest.py:281
#, python-format
msgid ""
"Testing of doctests in the sources finished, look at the results in "
"%(outdir)s/output.txt."
msgstr "來æºçš„ doctests 測試已çµæŸï¼Œåœ¨ %(outdir)s/output.txt 中查看çµæžœã€‚"
-#: sphinx/ext/doctest.py:431
+#: sphinx/ext/doctest.py:438
#, python-format
msgid "no code/output in %s block at %s:%s"
msgstr "在 %s å€å¡Šä¸­çš„ %s:%s 沒有程å¼ç¢¼/輸出"
-#: sphinx/ext/doctest.py:521
+#: sphinx/ext/doctest.py:526
#, python-format
msgid "ignoring invalid doctest code: %r"
msgstr "正在忽略無效的 doctest 碼: %r"
-#: sphinx/ext/duration.py:76
+#: sphinx/ext/duration.py:77
msgid ""
"====================== slowest reading durations ======================="
msgstr "====================== 最慢的讀å–歷時 ======================="
@@ -2630,32 +2684,32 @@ msgid ""
"hardcoded link %r could be replaced by an extlink (try using %r instead)"
msgstr "hardcoded link %r å¯ä»¥è¢«ä¸€å€‹ extlink 所å–代(試試改用 %r)"
-#: sphinx/ext/graphviz.py:133
+#: sphinx/ext/graphviz.py:135
msgid "Graphviz directive cannot have both content and a filename argument"
msgstr "Graphviz 指令ä¸èƒ½åŒæ™‚有內容åŠæª”å引數"
-#: sphinx/ext/graphviz.py:143
+#: sphinx/ext/graphviz.py:145
#, python-format
msgid "External Graphviz file %r not found or reading it failed"
msgstr "外部的 Graphviz 檔案 %r 未找到或是讀å–失敗"
-#: sphinx/ext/graphviz.py:150
+#: sphinx/ext/graphviz.py:152
msgid "Ignoring \"graphviz\" directive without content."
msgstr "正在略éŽæ²’有內容的 \"graphviz\" 指令"
-#: sphinx/ext/graphviz.py:259
+#: sphinx/ext/graphviz.py:268
#, python-format
msgid "graphviz_dot executable path must be set! %r"
-msgstr ""
+msgstr "graphviz_dot å¯åŸ·è¡Œè·¯å¾‘å¿…é ˆè¨­å®šï¼ %r"
-#: sphinx/ext/graphviz.py:294
+#: sphinx/ext/graphviz.py:303
#, python-format
msgid ""
"dot command %r cannot be run (needed for graphviz output), check the "
"graphviz_dot setting"
msgstr "dot 命令 %r 無法被執行(graphviz 輸出所需è¦ï¼‰ï¼Œè«‹æª¢æŸ¥ graphviz_dot 設定"
-#: sphinx/ext/graphviz.py:301
+#: sphinx/ext/graphviz.py:310
#, python-format
msgid ""
"dot exited with error:\n"
@@ -2665,7 +2719,7 @@ msgid ""
"%r"
msgstr "退出 dot,發生錯誤:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:304
+#: sphinx/ext/graphviz.py:313
#, python-format
msgid ""
"dot did not produce an output file:\n"
@@ -2675,27 +2729,27 @@ msgid ""
"%r"
msgstr "dot 並未製作一個輸出檔案:\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/graphviz.py:320
+#: sphinx/ext/graphviz.py:329
#, python-format
msgid "graphviz_output_format must be one of 'png', 'svg', but is %r"
msgstr "graphviz_output_format 必須是 'png' å’Œ 'svg' 之一,但å»æ˜¯ %r"
-#: sphinx/ext/graphviz.py:324 sphinx/ext/graphviz.py:377
-#: sphinx/ext/graphviz.py:414
+#: sphinx/ext/graphviz.py:333 sphinx/ext/graphviz.py:386
+#: sphinx/ext/graphviz.py:423
#, python-format
msgid "dot code %r: %s"
msgstr "點碼 %r: %s"
-#: sphinx/ext/graphviz.py:427 sphinx/ext/graphviz.py:435
+#: sphinx/ext/graphviz.py:436 sphinx/ext/graphviz.py:444
#, python-format
msgid "[graph: %s]"
msgstr "[圖:%s]"
-#: sphinx/ext/graphviz.py:429 sphinx/ext/graphviz.py:437
+#: sphinx/ext/graphviz.py:438 sphinx/ext/graphviz.py:446
msgid "[graph]"
msgstr "[圖]"
-#: sphinx/ext/imgconverter.py:38
+#: sphinx/ext/imgconverter.py:39
#, python-format
msgid ""
"Unable to run the image conversion command %r. 'sphinx.ext.imgconverter' requires ImageMagick by default. Ensure it is installed, or set the 'image_converter' option to a custom conversion command.\n"
@@ -2703,7 +2757,7 @@ msgid ""
"Traceback: %s"
msgstr "無法執行影åƒè½‰æ›å‘½ä»¤ %r。 'sphinx.ext.imgconverter' é è¨­ç‚ºéœ€è¦ ImageMagick。請確èªå®ƒå·²è¢«å®‰è£ï¼Œæˆ–是設定 'image_converter' é¸é …為一個自訂轉æ›å‘½ä»¤ã€‚\n\n回溯: %s"
-#: sphinx/ext/imgconverter.py:47 sphinx/ext/imgconverter.py:71
+#: sphinx/ext/imgconverter.py:48 sphinx/ext/imgconverter.py:72
#, python-format
msgid ""
"convert exited with error:\n"
@@ -2713,173 +2767,178 @@ msgid ""
"%r"
msgstr "退出轉æ›ï¼Œç™¼ç”ŸéŒ¯èª¤ï¼š\n[stderr]\n%r\n[stdout]\n%r"
-#: sphinx/ext/imgconverter.py:66
+#: sphinx/ext/imgconverter.py:67
#, python-format
msgid "convert command %r cannot be run, check the image_converter setting"
msgstr "轉æ›å‘½ä»¤ %r 無法被執行,請檢查 image_converter 設定"
-#: sphinx/ext/imgmath.py:157
+#: sphinx/ext/imgmath.py:158
#, python-format
msgid ""
"LaTeX command %r cannot be run (needed for math display), check the "
"imgmath_latex setting"
msgstr "LaTeX 命令 %r 無法被執行(數學顯示所需è¦ï¼‰ï¼Œè«‹æª¢æŸ¥ imgmath_latex 設定"
-#: sphinx/ext/imgmath.py:172
+#: sphinx/ext/imgmath.py:173
#, python-format
msgid ""
"%s command %r cannot be run (needed for math display), check the imgmath_%s "
"setting"
msgstr "%s 命令 %r 無法被執行(數學顯示所需è¦ï¼‰ï¼Œè«‹æª¢æŸ¥ imgmath_%s 設定"
-#: sphinx/ext/imgmath.py:326
+#: sphinx/ext/imgmath.py:327
#, python-format
msgid "display latex %r: %s"
msgstr "顯示 latex %r: %s"
-#: sphinx/ext/imgmath.py:360
+#: sphinx/ext/imgmath.py:361
#, python-format
msgid "inline latex %r: %s"
msgstr "行內 latex %r: %s"
-#: sphinx/ext/imgmath.py:367 sphinx/ext/mathjax.py:52
+#: sphinx/ext/imgmath.py:368 sphinx/ext/mathjax.py:53
msgid "Link to this equation"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹æ–¹ç¨‹å¼"
-#: sphinx/ext/intersphinx.py:194
+#: sphinx/ext/intersphinx.py:195
#, python-format
msgid "intersphinx inventory has moved: %s -> %s"
msgstr "intersphinx 庫存已移動: %s -> %s"
-#: sphinx/ext/intersphinx.py:229
+#: sphinx/ext/intersphinx.py:230
#, python-format
msgid "loading intersphinx inventory from %s..."
msgstr "正在從 %s 載入 intersphinx 庫存... "
-#: sphinx/ext/intersphinx.py:243
+#: sphinx/ext/intersphinx.py:244
msgid ""
"encountered some issues with some of the inventories, but they had working "
"alternatives:"
msgstr "從一些庫存中é‡åˆ°ä¸€äº›å•é¡Œï¼Œä½†ä»–們已在進行替代方案:"
-#: sphinx/ext/intersphinx.py:249
+#: sphinx/ext/intersphinx.py:250
msgid "failed to reach any of the inventories with the following issues:"
msgstr "無法到é”任何的庫存,é‡åˆ°ä»¥ä¸‹å•é¡Œï¼š"
-#: sphinx/ext/intersphinx.py:302
+#: sphinx/ext/intersphinx.py:303
#, python-format
msgid "(in %s v%s)"
msgstr "(æ–¼ %s v%s)"
-#: sphinx/ext/intersphinx.py:304
+#: sphinx/ext/intersphinx.py:305
#, python-format
msgid "(in %s)"
msgstr "(æ–¼ %s)"
-#: sphinx/ext/intersphinx.py:536
+#: sphinx/ext/intersphinx.py:538
#, python-format
-msgid "inventory for external cross-reference not found: %s"
-msgstr "未找到外部交å‰åƒç…§çš„清單: %s"
+msgid "inventory for external cross-reference not found: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:542
+#: sphinx/ext/intersphinx.py:546
#, python-format
-msgid "role for external cross-reference not found: %s"
-msgstr "未找到外部交å‰åƒç…§çš„角色: %s"
+msgid "invalid external cross-reference suffix: %r"
+msgstr ""
-#: sphinx/ext/intersphinx.py:633
+#: sphinx/ext/intersphinx.py:557
+#, python-format
+msgid "domain for external cross-reference not found: %r"
+msgstr ""
+
+#: sphinx/ext/intersphinx.py:750
#, python-format
msgid "external %s:%s reference target not found: %s"
msgstr "未找到外部的 %s:%s åƒç…§ç›®æ¨™ï¼š %s"
-#: sphinx/ext/intersphinx.py:658
+#: sphinx/ext/intersphinx.py:775
#, python-format
msgid "intersphinx identifier %r is not string. Ignored"
msgstr "intersphinx identifier %r ä¸æ˜¯å­—串。已略éŽ"
-#: sphinx/ext/intersphinx.py:680
+#: sphinx/ext/intersphinx.py:797
#, python-format
msgid "Failed to read intersphinx_mapping[%s], ignored: %r"
msgstr "ç„¡æ³•è®€å– intersphinx_mapping[%s], 已略éŽ: %r"
-#: sphinx/ext/linkcode.py:68 sphinx/ext/viewcode.py:198
+#: sphinx/ext/linkcode.py:69 sphinx/ext/viewcode.py:199
msgid "[source]"
msgstr "[原始碼]"
-#: sphinx/ext/todo.py:67
+#: sphinx/ext/todo.py:69
msgid "Todo"
msgstr "Todo"
-#: sphinx/ext/todo.py:100
+#: sphinx/ext/todo.py:102
#, python-format
msgid "TODO entry found: %s"
msgstr "找到 TODO 項目: %s"
-#: sphinx/ext/todo.py:158
+#: sphinx/ext/todo.py:161
msgid "<<original entry>>"
msgstr "<<original entry>>"
-#: sphinx/ext/todo.py:160
+#: sphinx/ext/todo.py:163
#, python-format
msgid "(The <<original entry>> is located in %s, line %d.)"
msgstr "(<<original entry>> 見 %s ,第 %d 行)"
-#: sphinx/ext/todo.py:170
+#: sphinx/ext/todo.py:173
msgid "original entry"
msgstr "原始記錄"
-#: sphinx/ext/viewcode.py:255
+#: sphinx/ext/viewcode.py:256
msgid "highlighting module code... "
msgstr "正在 highlight 模組程å¼ç¢¼..."
-#: sphinx/ext/viewcode.py:283
+#: sphinx/ext/viewcode.py:284
msgid "[docs]"
msgstr "[文件]"
-#: sphinx/ext/viewcode.py:303
+#: sphinx/ext/viewcode.py:304
msgid "Module code"
msgstr "模組原始碼"
-#: sphinx/ext/viewcode.py:309
+#: sphinx/ext/viewcode.py:310
#, python-format
msgid "<h1>Source code for %s</h1>"
msgstr "<h1>%s 的原始碼</h1>"
-#: sphinx/ext/viewcode.py:335
+#: sphinx/ext/viewcode.py:336
msgid "Overview: module code"
msgstr "概è¦ï¼šæ¨¡çµ„原始碼"
-#: sphinx/ext/viewcode.py:336
+#: sphinx/ext/viewcode.py:337
msgid "<h1>All modules for which code is available</h1>"
msgstr "<h1>所有å¯å¾—程å¼ç¢¼çš„模組</h1>"
-#: sphinx/ext/autodoc/__init__.py:127
+#: sphinx/ext/autodoc/__init__.py:135
#, python-format
msgid "invalid value for member-order option: %s"
msgstr "å°æ–¼ member-order é¸é …無效的值: %s"
-#: sphinx/ext/autodoc/__init__.py:135
+#: sphinx/ext/autodoc/__init__.py:143
#, python-format
msgid "invalid value for class-doc-from option: %s"
msgstr "å°æ–¼ class-doc-from é¸é …無效的值: %s"
-#: sphinx/ext/autodoc/__init__.py:391
+#: sphinx/ext/autodoc/__init__.py:399
#, python-format
msgid "invalid signature for auto%s (%r)"
msgstr "無效的簽章給 auto%s (%r)"
-#: sphinx/ext/autodoc/__init__.py:508
+#: sphinx/ext/autodoc/__init__.py:515
#, python-format
msgid "error while formatting arguments for %s: %s"
msgstr "在為 %s æ ¼å¼åŒ–引數時有錯誤: %s"
-#: sphinx/ext/autodoc/__init__.py:777
+#: sphinx/ext/autodoc/__init__.py:798
#, python-format
msgid ""
"autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n"
"%s"
msgstr "autodoc: 決定 %s.%s (%r) 被文件化失敗,引發以下的例外:\n%s"
-#: sphinx/ext/autodoc/__init__.py:872
+#: sphinx/ext/autodoc/__init__.py:893
#, python-format
msgid ""
"don't know which module to import for autodocumenting %r (try placing a "
@@ -2887,112 +2946,112 @@ msgid ""
"explicit module name)"
msgstr "ä¸æ¸…æ¥šè¦ import 哪個模組來 autodocument %r (試試看在文件中加入 \"module\" 或 \"currentmodule\" 指令,或是給予一個明確的模組å稱)"
-#: sphinx/ext/autodoc/__init__.py:916
+#: sphinx/ext/autodoc/__init__.py:937
#, python-format
msgid "A mocked object is detected: %r"
msgstr "一個 mocked 物件被åµæ¸¬åˆ°ï¼š %r"
-#: sphinx/ext/autodoc/__init__.py:935
+#: sphinx/ext/autodoc/__init__.py:956
#, python-format
msgid "error while formatting signature for %s: %s"
msgstr "正在為 %s æ ¼å¼åŒ–ç°½å時發生錯誤: %s"
-#: sphinx/ext/autodoc/__init__.py:996
+#: sphinx/ext/autodoc/__init__.py:1019
msgid "\"::\" in automodule name doesn't make sense"
msgstr "\"::\" 在 automodule çš„å稱中並ä¸åˆç†"
-#: sphinx/ext/autodoc/__init__.py:1003
+#: sphinx/ext/autodoc/__init__.py:1026
#, python-format
msgid "signature arguments or return annotation given for automodule %s"
msgstr "ç°½å引數或回傳註釋給予 automodule %s"
-#: sphinx/ext/autodoc/__init__.py:1016
+#: sphinx/ext/autodoc/__init__.py:1039
#, python-format
msgid ""
"__all__ should be a list of strings, not %r (in module %s) -- ignoring "
"__all__"
msgstr "__all__ 應該是一個字串的列表,ä¸æ˜¯ %r (在 %s 模組中)-- 正在忽略 __all__"
-#: sphinx/ext/autodoc/__init__.py:1082
+#: sphinx/ext/autodoc/__init__.py:1105
#, python-format
msgid ""
"missing attribute mentioned in :members: option: module %s, attribute %s"
msgstr "缺少 :members: é¸é …中所述的屬性:模組 %s ,屬性 %s"
-#: sphinx/ext/autodoc/__init__.py:1298 sphinx/ext/autodoc/__init__.py:1375
-#: sphinx/ext/autodoc/__init__.py:2768
+#: sphinx/ext/autodoc/__init__.py:1327 sphinx/ext/autodoc/__init__.py:1404
+#: sphinx/ext/autodoc/__init__.py:2824
#, python-format
msgid "Failed to get a function signature for %s: %s"
msgstr "無法å–得一個函å¼ç°½å給 %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1586
+#: sphinx/ext/autodoc/__init__.py:1618
#, python-format
msgid "Failed to get a constructor signature for %s: %s"
msgstr "無法å–得一個 constructor ç°½å給 %s: %s"
-#: sphinx/ext/autodoc/__init__.py:1713
+#: sphinx/ext/autodoc/__init__.py:1745
#, python-format
msgid "Bases: %s"
msgstr "基礎類別:%s"
-#: sphinx/ext/autodoc/__init__.py:1727
+#: sphinx/ext/autodoc/__init__.py:1759
#, python-format
msgid "missing attribute %s in object %s"
msgstr "éºæ¼å±¬æ€§ %s 在物件 %s"
-#: sphinx/ext/autodoc/__init__.py:1826 sphinx/ext/autodoc/__init__.py:1863
-#: sphinx/ext/autodoc/__init__.py:1946
+#: sphinx/ext/autodoc/__init__.py:1858 sphinx/ext/autodoc/__init__.py:1895
+#: sphinx/ext/autodoc/__init__.py:1990
#, python-format
msgid "alias of %s"
msgstr "%s 的別å"
-#: sphinx/ext/autodoc/__init__.py:1846
+#: sphinx/ext/autodoc/__init__.py:1878
#, python-format
msgid "alias of TypeVar(%s)"
msgstr "TypeVar(%s) 的別å"
-#: sphinx/ext/autodoc/__init__.py:2167 sphinx/ext/autodoc/__init__.py:2264
+#: sphinx/ext/autodoc/__init__.py:2216 sphinx/ext/autodoc/__init__.py:2316
#, python-format
msgid "Failed to get a method signature for %s: %s"
msgstr "無法å–得一個 method ç°½å給 %s: %s"
-#: sphinx/ext/autodoc/__init__.py:2395
+#: sphinx/ext/autodoc/__init__.py:2447
#, python-format
msgid "Invalid __slots__ found on %s. Ignored."
msgstr "在 %s 找到無效的 __slots__。已略éŽã€‚"
-#: sphinx/ext/autodoc/preserve_defaults.py:183
+#: sphinx/ext/autodoc/preserve_defaults.py:190
#, python-format
msgid "Failed to parse a default argument value for %r: %s"
msgstr "無法為 %r 剖æžä¸€å€‹é è¨­å¼•æ•¸ï¼š %s"
-#: sphinx/ext/autodoc/type_comment.py:131
+#: sphinx/ext/autodoc/type_comment.py:132
#, python-format
msgid "Failed to update signature for %r: parameter not found: %s"
msgstr "無法為 %r æ›´æ–°ç°½å:未找到åƒæ•¸ï¼š %s"
-#: sphinx/ext/autodoc/type_comment.py:134
+#: sphinx/ext/autodoc/type_comment.py:135
#, python-format
msgid "Failed to parse type_comment for %r: %s"
msgstr "無法為 %r å‰–æž type_comment: %s"
-#: sphinx/ext/autosummary/__init__.py:249
+#: sphinx/ext/autosummary/__init__.py:251
#, python-format
msgid "autosummary references excluded document %r. Ignored."
msgstr "autosummary åƒç…§å·²æŽ’除文件 %r 。已略éŽã€‚"
-#: sphinx/ext/autosummary/__init__.py:251
+#: sphinx/ext/autosummary/__init__.py:253
#, python-format
msgid ""
"autosummary: stub file not found %r. Check your autosummary_generate "
"setting."
msgstr "autosummary: 未找到 stub 檔 %r 。請檢查您的 autosummary_generate 設定。"
-#: sphinx/ext/autosummary/__init__.py:270
+#: sphinx/ext/autosummary/__init__.py:272
msgid "A captioned autosummary requires :toctree: option. ignored."
msgstr "一個有標題的 autosummary éœ€è¦ :toctree: é¸é …。已略éŽã€‚ "
-#: sphinx/ext/autosummary/__init__.py:323
+#: sphinx/ext/autosummary/__init__.py:325
#, python-format
msgid ""
"autosummary: failed to import %s.\n"
@@ -3000,26 +3059,26 @@ msgid ""
"%s"
msgstr "autosummary: import %s 失敗。\nå¯èƒ½çš„æ示:\n%s"
-#: sphinx/ext/autosummary/__init__.py:337
+#: sphinx/ext/autosummary/__init__.py:339
#, python-format
msgid "failed to parse name %s"
msgstr "剖æžå稱 %s 失敗"
-#: sphinx/ext/autosummary/__init__.py:342
+#: sphinx/ext/autosummary/__init__.py:344
#, python-format
msgid "failed to import object %s"
msgstr "import 物件 %s 失敗"
-#: sphinx/ext/autosummary/__init__.py:798
+#: sphinx/ext/autosummary/__init__.py:802
#, python-format
msgid "autosummary_generate: file not found: %s"
msgstr "autosummary_generate: 檔案未找到: %s"
-#: sphinx/ext/autosummary/__init__.py:806
+#: sphinx/ext/autosummary/__init__.py:810
msgid ""
-"autosummary generats .rst files internally. But your source_suffix does not "
-"contain .rst. Skipped."
-msgstr "autosummary 會在內部產生 .rst 檔案。但是您的 source_suffix ä¸¦æœªåŒ…å« .rst。已çœç•¥ã€‚"
+"autosummary generates .rst files internally. But your source_suffix does not"
+" contain .rst. Skipped."
+msgstr ""
#: sphinx/ext/autosummary/generate.py:200
#: sphinx/ext/autosummary/generate.py:358
@@ -3092,99 +3151,99 @@ msgid ""
"%(default)s)"
msgstr "文件確實是在模組 __all__ 屬性中的æˆå“¡ã€‚(é è¨­å€¼ï¼š %(default)s)"
-#: sphinx/ext/napoleon/__init__.py:336 sphinx/ext/napoleon/docstring.py:726
+#: sphinx/ext/napoleon/__init__.py:341 sphinx/ext/napoleon/docstring.py:728
msgid "Keyword Arguments"
msgstr "é—œéµå­—引數"
-#: sphinx/ext/napoleon/docstring.py:680
+#: sphinx/ext/napoleon/docstring.py:682
msgid "Example"
msgstr "範例"
-#: sphinx/ext/napoleon/docstring.py:681
+#: sphinx/ext/napoleon/docstring.py:683
msgid "Examples"
msgstr "範例"
-#: sphinx/ext/napoleon/docstring.py:742
+#: sphinx/ext/napoleon/docstring.py:744
msgid "Notes"
msgstr "備註"
-#: sphinx/ext/napoleon/docstring.py:751
+#: sphinx/ext/napoleon/docstring.py:753
msgid "Other Parameters"
msgstr "其他åƒæ•¸"
-#: sphinx/ext/napoleon/docstring.py:787
+#: sphinx/ext/napoleon/docstring.py:789
msgid "Receives"
msgstr "接收"
-#: sphinx/ext/napoleon/docstring.py:791
+#: sphinx/ext/napoleon/docstring.py:793
msgid "References"
msgstr "åƒç…§"
-#: sphinx/ext/napoleon/docstring.py:823
+#: sphinx/ext/napoleon/docstring.py:825
msgid "Warns"
msgstr "警告"
-#: sphinx/ext/napoleon/docstring.py:827
+#: sphinx/ext/napoleon/docstring.py:829
msgid "Yields"
msgstr "產出"
-#: sphinx/ext/napoleon/docstring.py:985
+#: sphinx/ext/napoleon/docstring.py:987
#, python-format
msgid "invalid value set (missing closing brace): %s"
msgstr "無效的值集åˆï¼ˆç¼ºå°‘å³æ‹¬è™Ÿï¼‰ï¼š %s"
-#: sphinx/ext/napoleon/docstring.py:992
+#: sphinx/ext/napoleon/docstring.py:994
#, python-format
msgid "invalid value set (missing opening brace): %s"
msgstr "無效的值集åˆï¼ˆç¼ºå°‘左括號): %s"
-#: sphinx/ext/napoleon/docstring.py:999
+#: sphinx/ext/napoleon/docstring.py:1001
#, python-format
msgid "malformed string literal (missing closing quote): %s"
msgstr "異常的字串文本(缺少å³æ‹¬è™Ÿï¼‰ï¼š %s"
-#: sphinx/ext/napoleon/docstring.py:1006
+#: sphinx/ext/napoleon/docstring.py:1008
#, python-format
msgid "malformed string literal (missing opening quote): %s"
msgstr "異常的字串文本(缺少左括號): %s"
-#: sphinx/locale/__init__.py:221
+#: sphinx/locale/__init__.py:228
msgid "Attention"
msgstr "注æ„"
-#: sphinx/locale/__init__.py:222
+#: sphinx/locale/__init__.py:229
msgid "Caution"
msgstr "警示"
-#: sphinx/locale/__init__.py:223
+#: sphinx/locale/__init__.py:230
msgid "Danger"
msgstr "å±éšª"
-#: sphinx/locale/__init__.py:224
+#: sphinx/locale/__init__.py:231
msgid "Error"
msgstr "錯誤"
-#: sphinx/locale/__init__.py:225
+#: sphinx/locale/__init__.py:232
msgid "Hint"
msgstr "æ示"
-#: sphinx/locale/__init__.py:226
+#: sphinx/locale/__init__.py:233
msgid "Important"
msgstr "é‡è¦"
-#: sphinx/locale/__init__.py:227
+#: sphinx/locale/__init__.py:234
msgid "Note"
msgstr "備註"
-#: sphinx/locale/__init__.py:228
+#: sphinx/locale/__init__.py:235
msgid "See also"
msgstr "也åƒè€ƒ"
-#: sphinx/locale/__init__.py:229
+#: sphinx/locale/__init__.py:236
msgid "Tip"
msgstr "å°è¨£ç«…"
-#: sphinx/locale/__init__.py:230
+#: sphinx/locale/__init__.py:237
msgid "Warning"
msgstr "警告"
@@ -3216,7 +3275,7 @@ msgid "Table of Contents"
msgstr "目錄"
#: sphinx/themes/agogo/layout.html:43 sphinx/themes/basic/layout.html:141
-#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:22
+#: sphinx/themes/basic/search.html:11 sphinx/themes/basic/search.html:23
msgid "Search"
msgstr "æœå°‹"
@@ -3314,7 +3373,7 @@ msgstr "版權所有"
#: sphinx/themes/basic/layout.html:194 sphinx/themes/basic/layout.html:200
#, python-format
msgid "&#169; %(copyright_prefix)s %(copyright)s."
-msgstr ""
+msgstr "&#169; %(copyright_prefix)s %(copyright)s."
#: sphinx/themes/basic/layout.html:212
#, python-format
@@ -3349,34 +3408,22 @@ msgstr "下個主題"
msgid "next chapter"
msgstr "下一章"
-#: sphinx/themes/basic/search.html:27
+#: sphinx/themes/basic/search.html:28
msgid ""
"Please activate JavaScript to enable the search\n"
" functionality."
msgstr "請啟用 Javascript 以開啟æœå°‹åŠŸèƒ½ã€‚"
-#: sphinx/themes/basic/search.html:35
+#: sphinx/themes/basic/search.html:36
msgid ""
"Searching for multiple words only shows matches that contain\n"
" all words."
msgstr "æœå°‹å¤šå€‹é—œéµå­—時,åªæœƒé¡¯ç¤ºåŒ…å«æ‰€æœ‰é—œéµå­—çš„çµæžœã€‚"
-#: sphinx/themes/basic/search.html:42
+#: sphinx/themes/basic/search.html:43
msgid "search"
msgstr "æœå°‹"
-#: sphinx/themes/basic/search.html:48
-#: sphinx/themes/basic/static/searchtools.js:112
-msgid "Search Results"
-msgstr "æœå°‹çµæžœ"
-
-#: sphinx/themes/basic/search.html:50
-#: sphinx/themes/basic/static/searchtools.js:114
-msgid ""
-"Your search did not match any documents. Please make sure that all words are"
-" spelled correctly and that you've selected enough categories."
-msgstr "您的æœå°‹æ‰¾ä¸åˆ°ä»»ä½•æ»¿è¶³æ¢ä»¶çš„文件。請確定是å¦æ‰€æœ‰çš„æœå°‹è©žéƒ½æ­£ç¢ºåœ°æ‹¼å¯«ä¸”您已é¸æ“‡è¶³å¤ çš„分類。"
-
#: sphinx/themes/basic/searchbox.html:12
msgid "Quick search"
msgstr "快速æœå°‹"
@@ -3413,20 +3460,30 @@ msgstr "C API 的變更"
msgid "Other changes"
msgstr "其他變更"
+#: sphinx/themes/basic/static/searchtools.js:112
+msgid "Search Results"
+msgstr "æœå°‹çµæžœ"
+
+#: sphinx/themes/basic/static/searchtools.js:114
+msgid ""
+"Your search did not match any documents. Please make sure that all words are"
+" spelled correctly and that you've selected enough categories."
+msgstr "您的æœå°‹æ‰¾ä¸åˆ°ä»»ä½•æ»¿è¶³æ¢ä»¶çš„文件。請確定是å¦æ‰€æœ‰çš„æœå°‹è©žéƒ½æ­£ç¢ºåœ°æ‹¼å¯«ä¸”您已é¸æ“‡è¶³å¤ çš„分類。"
+
#: sphinx/themes/basic/static/searchtools.js:118
msgid ""
"Search finished, found ${resultCount} page(s) matching the search query."
msgstr "æœå°‹çµæŸï¼Œå…±æ‰¾åˆ° ${resultCount} 個é é¢ç¬¦åˆæœå°‹æ¢ä»¶ã€‚"
-#: sphinx/themes/basic/static/searchtools.js:217
+#: sphinx/themes/basic/static/searchtools.js:246
msgid "Searching"
msgstr "æœå°‹ä¸­"
-#: sphinx/themes/basic/static/searchtools.js:233
+#: sphinx/themes/basic/static/searchtools.js:262
msgid "Preparing search..."
msgstr "準備æœå°‹ä¸­â€¦"
-#: sphinx/themes/basic/static/searchtools.js:421
+#: sphinx/themes/basic/static/searchtools.js:463
msgid ", in "
msgstr ",於 "
@@ -3447,30 +3504,30 @@ msgstr "展開å´é‚Šæ¬„"
msgid "Contents"
msgstr "內容"
-#: sphinx/transforms/__init__.py:126
+#: sphinx/transforms/__init__.py:128
msgid "could not calculate translation progress!"
-msgstr ""
+msgstr "無法計算翻譯進度ï¼"
-#: sphinx/transforms/__init__.py:131
+#: sphinx/transforms/__init__.py:133
msgid "no translated elements!"
-msgstr ""
+msgstr "沒有已翻譯的元素ï¼"
-#: sphinx/transforms/__init__.py:238
+#: sphinx/transforms/__init__.py:250
#, python-format
msgid ""
"4 column based index found. It might be a bug of extensions you use: %r"
msgstr "找到基於 4 欄ä½çš„索引。它å¯èƒ½æ˜¯æ‚¨ä½¿ç”¨çš„擴充套件的一個錯誤: %r"
-#: sphinx/transforms/__init__.py:277
+#: sphinx/transforms/__init__.py:291
#, python-format
msgid "Footnote [%s] is not referenced."
msgstr "註腳 [%s] 未被åƒç…§ã€‚"
-#: sphinx/transforms/__init__.py:283
+#: sphinx/transforms/__init__.py:297
msgid "Footnote [#] is not referenced."
msgstr "註腳 [#] 未被åƒç…§ã€‚"
-#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:272
+#: sphinx/transforms/i18n.py:205 sphinx/transforms/i18n.py:270
msgid ""
"inconsistent footnote references in translated message. original: {0}, "
"translated: {1}"
@@ -3482,13 +3539,13 @@ msgid ""
"{1}"
msgstr "被翻譯訊æ¯ä¸­æœ‰ä¸ä¸€è‡´çš„åƒç…§ã€‚原文: {0},譯文: {1}"
-#: sphinx/transforms/i18n.py:287
+#: sphinx/transforms/i18n.py:285
msgid ""
"inconsistent citation references in translated message. original: {0}, "
"translated: {1}"
msgstr "被翻譯訊æ¯ä¸­æœ‰ä¸ä¸€è‡´çš„引用。原文: {0},譯文: {1}"
-#: sphinx/transforms/i18n.py:304
+#: sphinx/transforms/i18n.py:302
msgid ""
"inconsistent term references in translated message. original: {0}, "
"translated: {1}"
@@ -3515,97 +3572,97 @@ msgstr "%s:%s åƒç…§ç›®æ¨™æœªæ‰¾åˆ°ï¼š %s"
msgid "%r reference target not found: %s"
msgstr "%r åƒç…§ç›®æ¨™æœªæ‰¾åˆ°ï¼š %s"
-#: sphinx/transforms/post_transforms/images.py:80
+#: sphinx/transforms/post_transforms/images.py:89
#, python-format
msgid "Could not fetch remote image: %s [%d]"
msgstr "無法æå–é ç«¯åœ–片: %s [%d]"
-#: sphinx/transforms/post_transforms/images.py:108
+#: sphinx/transforms/post_transforms/images.py:117
#, python-format
msgid "Could not fetch remote image: %s [%s]"
msgstr "無法æå–é ç«¯åœ–片: %s [%s]"
-#: sphinx/transforms/post_transforms/images.py:126
+#: sphinx/transforms/post_transforms/images.py:135
#, python-format
msgid "Unknown image format: %s..."
msgstr "未知的圖片格å¼ï¼š %s..."
-#: sphinx/util/__init__.py:167
+#: sphinx/util/__init__.py:168
#, python-format
msgid "undecodable source characters, replacing with \"?\": %r"
msgstr "無法解碼的原始字元,以 \"?\" å–代: %r"
-#: sphinx/util/display.py:77
+#: sphinx/util/display.py:78
msgid "skipped"
msgstr "å·²çœç•¥"
-#: sphinx/util/display.py:82
+#: sphinx/util/display.py:83
msgid "failed"
msgstr "失敗"
-#: sphinx/util/docfields.py:88
+#: sphinx/util/docfields.py:87
#, python-format
msgid ""
"Problem in %s domain: field is supposed to use role '%s', but that role is "
"not in the domain."
msgstr "在 %s domain 中的å•é¡Œï¼šæ¬„ä½æ‡‰è©²è¦ç”¨è§’色 '%s' ,但是那個角色並ä¸åœ¨è©² domain。"
-#: sphinx/util/docutils.py:311
+#: sphinx/util/docutils.py:295
#, python-format
msgid "unknown directive or role name: %s:%s"
msgstr "未知的指令或角色å稱: %s:%s"
-#: sphinx/util/docutils.py:605
+#: sphinx/util/docutils.py:591
#, python-format
msgid "unknown node type: %r"
msgstr "未知的節點型別: %r"
-#: sphinx/util/i18n.py:63
+#: sphinx/util/i18n.py:94
#, python-format
msgid "reading error: %s, %s"
msgstr "讀å–錯誤: %s, %s"
-#: sphinx/util/i18n.py:70
+#: sphinx/util/i18n.py:101
#, python-format
msgid "writing error: %s, %s"
msgstr "寫入錯誤: %s, %s"
-#: sphinx/util/i18n.py:94
+#: sphinx/util/i18n.py:125
#, python-format
msgid "locale_dir %s does not exist"
-msgstr ""
+msgstr "locale_dir %s ä¸å­˜åœ¨"
-#: sphinx/util/i18n.py:185
+#: sphinx/util/i18n.py:215
#, python-format
msgid ""
"Invalid date format. Quote the string by single quote if you want to output "
"it directly: %s"
msgstr "無效的日期格å¼ã€‚如果您è¦ç›´æŽ¥å°‡å®ƒè¼¸å‡ºï¼Œå‰‡ä»¥å–®å¼•è™Ÿå¼•ç”¨è©²å­—串: %s"
-#: sphinx/util/nodes.py:378
+#: sphinx/util/nodes.py:386
#, python-format
msgid ""
"%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead."
-msgstr ""
+msgstr "%r 已棄用於索引項目(從項目 %r)。請改用 'pair: %s'。"
-#: sphinx/util/nodes.py:426
+#: sphinx/util/nodes.py:439
#, python-format
msgid "toctree contains ref to nonexisting file %r"
msgstr "toctree 包å«äº†ä¸å­˜åœ¨çš„檔案 %r çš„åƒç…§ "
-#: sphinx/util/nodes.py:627
+#: sphinx/util/nodes.py:637
#, python-format
msgid "exception while evaluating only directive expression: %s"
msgstr "在評估åªæœ‰æŒ‡ä»¤çš„é‹ç®—å¼æ™‚發生例外: %s"
-#: sphinx/util/rst.py:70
+#: sphinx/util/rst.py:71
#, python-format
msgid "default role %s not found"
msgstr "é è¨­è§’色 %s 未找到"
#: sphinx/writers/html5.py:100 sphinx/writers/html5.py:109
msgid "Link to this definition"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹å®šç¾©"
#: sphinx/writers/html5.py:397
#, python-format
@@ -3619,29 +3676,29 @@ msgstr "任一個 ID 未被指定給 %s 節點"
#: sphinx/writers/html5.py:462
msgid "Link to this term"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹é …ç›®"
-#: sphinx/writers/html5.py:485 sphinx/writers/html5.py:490
+#: sphinx/writers/html5.py:496 sphinx/writers/html5.py:501
msgid "Link to this heading"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹æ¨™é ­"
-#: sphinx/writers/html5.py:494
+#: sphinx/writers/html5.py:505
msgid "Link to this table"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹è¡¨æ ¼"
-#: sphinx/writers/html5.py:537
+#: sphinx/writers/html5.py:548
msgid "Link to this code"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹ç¨‹å¼ç¢¼"
-#: sphinx/writers/html5.py:539
+#: sphinx/writers/html5.py:550
msgid "Link to this image"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹åœ–片"
-#: sphinx/writers/html5.py:541
+#: sphinx/writers/html5.py:552
msgid "Link to this toctree"
-msgstr ""
+msgstr "連çµåˆ°é€™å€‹ toctree"
-#: sphinx/writers/html5.py:679
+#: sphinx/writers/html5.py:688
msgid "Could not obtain image size. :scale: option is ignored."
msgstr "無法å–得圖片大å°ã€‚ :scale: é¸é …已略éŽã€‚"
@@ -3658,13 +3715,13 @@ msgstr ":maxdepth: 太大,已略éŽã€‚"
msgid "document title is not a single Text node"
msgstr "文件標題ä¸æ˜¯å–®ä¸€çš„ Text 節點"
-#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:622
+#: sphinx/writers/latex.py:656 sphinx/writers/texinfo.py:626
msgid ""
"encountered title node not in section, topic, table, admonition or sidebar"
msgstr "é‡åˆ°çš„標題節點ä¸æ˜¯åœ¨æ®µè½ã€ä¸»é¡Œã€è¡¨æ ¼ã€è­¦å‘Šæˆ–å´é‚Šæ¬„"
-#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:258
-#: sphinx/writers/texinfo.py:637
+#: sphinx/writers/latex.py:959 sphinx/writers/manpage.py:259
+#: sphinx/writers/texinfo.py:641
msgid "Footnotes"
msgstr "註腳"
@@ -3683,20 +3740,20 @@ msgstr "ç¶­åº¦å–®ä½ %s 是無效的。已略éŽã€‚"
msgid "unknown index entry type %s found"
msgstr "找到了未知的索引æ¢ç›®åž‹åˆ¥ %s"
-#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:917
+#: sphinx/writers/manpage.py:305 sphinx/writers/text.py:907
#, python-format
msgid "[image: %s]"
msgstr "[圖片:%s]"
-#: sphinx/writers/manpage.py:307 sphinx/writers/text.py:918
+#: sphinx/writers/manpage.py:306 sphinx/writers/text.py:908
msgid "[image]"
msgstr "[圖片]"
-#: sphinx/writers/texinfo.py:1193
+#: sphinx/writers/texinfo.py:1197
msgid "caption not inside a figure."
msgstr "標題ä¸åœ¨åœ–之內。"
-#: sphinx/writers/texinfo.py:1280
+#: sphinx/writers/texinfo.py:1284
#, python-format
msgid "unimplemented node type: %r"
msgstr "未實作的節點型別: %r"
diff --git a/sphinx/parsers.py b/sphinx/parsers.py
index 1269884..955d59b 100644
--- a/sphinx/parsers.py
+++ b/sphinx/parsers.py
@@ -2,7 +2,7 @@
from __future__ import annotations
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
import docutils.parsers
import docutils.parsers.rst
@@ -19,6 +19,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
class Parser(docutils.parsers.Parser):
@@ -65,13 +66,14 @@ class RSTParser(docutils.parsers.rst.Parser, Parser):
self.statemachine = states.RSTStateMachine(
state_classes=self.state_classes,
initial_state=self.initial_state,
- debug=document.reporter.debug_flag)
+ debug=document.reporter.debug_flag,
+ )
# preprocess inputstring
if isinstance(inputstring, str):
lines = docutils.statemachine.string2lines(
- inputstring, tab_width=document.settings.tab_width,
- convert_whitespace=True)
+ inputstring, tab_width=document.settings.tab_width, convert_whitespace=True
+ )
inputlines = StringList(lines, document.current_source)
else:
@@ -87,7 +89,7 @@ class RSTParser(docutils.parsers.rst.Parser, Parser):
append_epilog(content, self.config.rst_epilog)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_source_parser(RSTParser)
return {
diff --git a/sphinx/project.py b/sphinx/project.py
index 57813fa..0ac9f1e 100644
--- a/sphinx/project.py
+++ b/sphinx/project.py
@@ -28,7 +28,7 @@ class Project:
#: source_suffix. Same as :confval:`source_suffix`.
self.source_suffix = tuple(source_suffix)
- self._first_source_suffix = next(iter(self.source_suffix), "")
+ self._first_source_suffix = next(iter(self.source_suffix), '')
#: The name of documents belonging to this project.
self.docnames: set[str] = set()
@@ -43,12 +43,12 @@ class Project:
self._path_to_docname = other._path_to_docname
self._docname_to_path = other._docname_to_path
- def discover(self, exclude_paths: Iterable[str] = (),
- include_paths: Iterable[str] = ("**",)) -> set[str]:
+ def discover(
+ self, exclude_paths: Iterable[str] = (), include_paths: Iterable[str] = ('**',)
+ ) -> set[str]:
"""Find all document files in the source directory and put them in
:attr:`docnames`.
"""
-
self.docnames.clear()
self._path_to_docname.clear()
self._docname_to_path.clear()
@@ -56,23 +56,30 @@ class Project:
for filename in get_matching_files(
self.srcdir,
include_paths,
- [*exclude_paths] + EXCLUDE_PATHS,
+ [*exclude_paths, *EXCLUDE_PATHS],
):
if docname := self.path2doc(filename):
if docname in self.docnames:
pattern = os.path.join(self.srcdir, docname) + '.*'
files = [relpath(f, self.srcdir) for f in glob(pattern)]
- logger.warning(__('multiple files found for the document "%s": %r\n'
- 'Use %r for the build.'),
- docname, files, self.doc2path(docname, absolute=True),
- once=True)
+ logger.warning(
+ __(
+ 'multiple files found for the document "%s": %r\n'
+ 'Use %r for the build.'
+ ),
+ docname,
+ files,
+ self.doc2path(docname, absolute=True),
+ once=True,
+ )
elif os.access(os.path.join(self.srcdir, filename), os.R_OK):
self.docnames.add(docname)
self._path_to_docname[filename] = docname
self._docname_to_path[docname] = filename
else:
- logger.warning(__("Ignored unreadable document %r."),
- filename, location=docname)
+ logger.warning(
+ __('Ignored unreadable document %r.'), filename, location=docname
+ )
return self.docnames
diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py
index 55835ec..92de047 100644
--- a/sphinx/pycode/__init__.py
+++ b/sphinx/pycode/__init__.py
@@ -69,12 +69,13 @@ class ModuleAnalyzer:
return filename, None
@classmethod
- def for_string(cls, string: str, modname: str, srcname: str = '<string>',
- ) -> ModuleAnalyzer:
+ def for_string(
+ cls: type[ModuleAnalyzer], string: str, modname: str, srcname: str = '<string>',
+ ) -> ModuleAnalyzer:
return cls(string, modname, srcname)
@classmethod
- def for_file(cls, filename: str, modname: str) -> ModuleAnalyzer:
+ def for_file(cls: type[ModuleAnalyzer], filename: str, modname: str) -> ModuleAnalyzer:
if ('file', filename) in cls.cache:
return cls.cache['file', filename]
try:
@@ -87,7 +88,7 @@ class ModuleAnalyzer:
return obj
@classmethod
- def for_module(cls, modname: str) -> ModuleAnalyzer:
+ def for_module(cls: type[ModuleAnalyzer], modname: str) -> ModuleAnalyzer:
if ('module', modname) in cls.cache:
entry = cls.cache['module', modname]
if isinstance(entry, PycodeError):
@@ -127,7 +128,7 @@ class ModuleAnalyzer:
self.attr_docs = {}
for (scope, comment) in parser.comments.items():
if comment:
- self.attr_docs[scope] = comment.splitlines() + ['']
+ self.attr_docs[scope] = [*comment.splitlines(), '']
else:
self.attr_docs[scope] = ['']
diff --git a/sphinx/pycode/ast.py b/sphinx/pycode/ast.py
index e5914cc..7517d48 100644
--- a/sphinx/pycode/ast.py
+++ b/sphinx/pycode/ast.py
@@ -3,7 +3,7 @@
from __future__ import annotations
import ast
-from typing import overload
+from typing import NoReturn, overload
OPERATORS: dict[type[ast.AST], str] = {
ast.Add: "+",
@@ -85,9 +85,8 @@ class _UnparseVisitor(ast.NodeVisitor):
for _ in range(len(kw_defaults), len(node.kwonlyargs)):
kw_defaults.insert(0, None)
- args: list[str] = []
- for i, arg in enumerate(node.posonlyargs):
- args.append(self._visit_arg_with_default(arg, defaults[i]))
+ args: list[str] = [self._visit_arg_with_default(arg, defaults[i])
+ for i, arg in enumerate(node.posonlyargs)]
if node.posonlyargs:
args.append('/')
@@ -115,15 +114,17 @@ class _UnparseVisitor(ast.NodeVisitor):
# Special case ``**`` to not have surrounding spaces.
if isinstance(node.op, ast.Pow):
return "".join(map(self.visit, (node.left, node.op, node.right)))
- return " ".join(self.visit(e) for e in [node.left, node.op, node.right])
+ return " ".join(map(self.visit, (node.left, node.op, node.right)))
def visit_BoolOp(self, node: ast.BoolOp) -> str:
op = " %s " % self.visit(node.op)
return op.join(self.visit(e) for e in node.values)
def visit_Call(self, node: ast.Call) -> str:
- args = ', '.join([self.visit(e) for e in node.args]
- + [f"{k.arg}={self.visit(k.value)}" for k in node.keywords])
+ args = ', '.join(
+ [self.visit(e) for e in node.args]
+ + [f"{k.arg}={self.visit(k.value)}" for k in node.keywords],
+ )
return f"{self.visit(node.func)}({args})"
def visit_Constant(self, node: ast.Constant) -> str:
@@ -155,6 +156,20 @@ class _UnparseVisitor(ast.NodeVisitor):
def visit_Set(self, node: ast.Set) -> str:
return "{" + ", ".join(self.visit(e) for e in node.elts) + "}"
+ def visit_Slice(self, node: ast.Slice) -> str:
+ if not node.lower and not node.upper and not node.step:
+ # Empty slice with default values -> [:]
+ return ":"
+
+ start = self.visit(node.lower) if node.lower else ""
+ stop = self.visit(node.upper) if node.upper else ""
+ if not node.step:
+ # Default step size -> [start:stop]
+ return f"{start}:{stop}"
+
+ step = self.visit(node.step) if node.step else ""
+ return f"{start}:{stop}:{step}"
+
def visit_Subscript(self, node: ast.Subscript) -> str:
def is_simple_tuple(value: ast.expr) -> bool:
return (
@@ -184,5 +199,5 @@ class _UnparseVisitor(ast.NodeVisitor):
else:
return "(" + ", ".join(self.visit(e) for e in node.elts) + ")"
- def generic_visit(self, node):
+ def generic_visit(self, node: ast.AST) -> NoReturn:
raise NotImplementedError('Unable to parse %s object' % type(node).__name__)
diff --git a/sphinx/pycode/parser.py b/sphinx/pycode/parser.py
index a0f855d..2bfe25b 100644
--- a/sphinx/pycode/parser.py
+++ b/sphinx/pycode/parser.py
@@ -4,8 +4,10 @@ from __future__ import annotations
import ast
import contextlib
+import functools
import inspect
import itertools
+import operator
import re
import tokenize
from inspect import Signature
@@ -243,7 +245,7 @@ class VariableCommentPicker(ast.NodeVisitor):
else:
return None
else:
- return self.context + [name]
+ return [*self.context, name]
def add_entry(self, name: str) -> None:
qualname = self.get_qualname_for(name)
@@ -350,9 +352,8 @@ class VariableCommentPicker(ast.NodeVisitor):
"""Handles Assign node and pick up a variable comment."""
try:
targets = get_assign_targets(node)
- varnames: list[str] = sum(
- [get_lvar_names(t, self=self.get_self()) for t in targets], [],
- )
+ varnames: list[str] = functools.reduce(
+ operator.iadd, [get_lvar_names(t, self=self.get_self()) for t in targets], [])
current_line = self.get_line(node.lineno)
except TypeError:
return # this assignment is not new definition!
@@ -476,7 +477,7 @@ class DefinitionFinder(TokenProcessor):
def add_definition(self, name: str, entry: tuple[str, int, int]) -> None:
"""Add a location of definition."""
- if self.indents and self.indents[-1][0] == 'def' and entry[0] == 'def':
+ if self.indents and self.indents[-1][0] == entry[0] == 'def':
# ignore definition of inner function
pass
else:
diff --git a/sphinx/registry.py b/sphinx/registry.py
index 501661d..7887858 100644
--- a/sphinx/registry.py
+++ b/sphinx/registry.py
@@ -39,7 +39,12 @@ if TYPE_CHECKING:
from sphinx.config import Config
from sphinx.environment import BuildEnvironment
from sphinx.ext.autodoc import Documenter
- from sphinx.util.typing import RoleFunction, TitleGetter
+ from sphinx.util.typing import (
+ ExtensionMetadata,
+ RoleFunction,
+ TitleGetter,
+ _ExtensionSetupFunc,
+ )
logger = logging.getLogger(__name__)
@@ -47,6 +52,7 @@ logger = logging.getLogger(__name__)
# Values are Sphinx version that merge the extension.
EXTENSION_BLACKLIST = {
"sphinxjp.themecore": "1.2",
+ "sphinxprettysearchresults": "2.0.0",
}
@@ -55,7 +61,7 @@ class SphinxComponentRegistry:
#: special attrgetter for autodoc; class object -> attrgetter
self.autodoc_attrgettrs: dict[type, Callable[[Any, str, Any], Any]] = {}
- #: builders; a dict of builder name -> bulider class
+ #: builders; a dict of builder name -> builder class
self.builders: dict[str, type[Builder]] = {}
#: autodoc documenters; a dict of documenter name -> documenter class
@@ -450,11 +456,11 @@ class SphinxComponentRegistry:
raise ExtensionError(__('Could not import extension %s') % extname,
err) from err
- setup = getattr(mod, 'setup', None)
+ setup: _ExtensionSetupFunc | None = getattr(mod, 'setup', None)
if setup is None:
logger.warning(__('extension %r has no setup() function; is it really '
'a Sphinx extension module?'), extname)
- metadata: dict[str, Any] = {}
+ metadata: ExtensionMetadata = {}
else:
try:
metadata = setup(app)
@@ -476,7 +482,7 @@ class SphinxComponentRegistry:
app.extensions[extname] = Extension(extname, mod, **metadata)
- def get_envversion(self, app: Sphinx) -> dict[str, str]:
+ def get_envversion(self, app: Sphinx) -> dict[str, int]:
from sphinx.environment import ENV_VERSION
envversion = {ext.name: ext.metadata['env_version'] for ext in app.extensions.values()
if ext.metadata.get('env_version')}
@@ -507,7 +513,7 @@ def merge_source_suffix(app: Sphinx, config: Config) -> None:
app.registry.source_suffix = app.config.source_suffix
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.connect('config-inited', merge_source_suffix, priority=800)
return {
diff --git a/sphinx/roles.py b/sphinx/roles.py
index d734429..2fa242f 100644
--- a/sphinx/roles.py
+++ b/sphinx/roles.py
@@ -22,7 +22,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
- from sphinx.util.typing import RoleFunction
+ from sphinx.util.typing import ExtensionMetadata, RoleFunction
generic_docroles = {
@@ -31,7 +31,6 @@ generic_docroles = {
'kbd': nodes.literal,
'mailheader': addnodes.literal_emphasis,
'makevar': addnodes.literal_strong,
- 'manpage': addnodes.manpage,
'mimetype': addnodes.literal_emphasis,
'newsgroup': addnodes.literal_emphasis,
'program': addnodes.literal_strong, # XXX should be an x-ref
@@ -41,6 +40,7 @@ generic_docroles = {
# -- generic cross-reference role ----------------------------------------------
+
class XRefRole(ReferenceRole):
"""
A generic cross-referencing role. To create a callable that can be used as
@@ -68,10 +68,14 @@ class XRefRole(ReferenceRole):
nodeclass: type[Element] = addnodes.pending_xref
innernodeclass: type[TextElement] = nodes.literal
- def __init__(self, fix_parens: bool = False, lowercase: bool = False,
- nodeclass: type[Element] | None = None,
- innernodeclass: type[TextElement] | None = None,
- warn_dangling: bool = False) -> None:
+ def __init__(
+ self,
+ fix_parens: bool = False,
+ lowercase: bool = False,
+ nodeclass: type[Element] | None = None,
+ innernodeclass: type[TextElement] | None = None,
+ warn_dangling: bool = False,
+ ) -> None:
self.fix_parens = fix_parens
self.lowercase = lowercase
self.warn_dangling = warn_dangling
@@ -112,7 +116,7 @@ class XRefRole(ReferenceRole):
text = utils.unescape(self.text[1:])
if self.fix_parens:
self.has_explicit_title = False # treat as implicit
- text, target = self.update_title_and_target(text, "")
+ text, target = self.update_title_and_target(text, '')
node = self.innernodeclass(self.rawtext, text, classes=self.classes)
return self.result_nodes(self.inliner.document, self.env, node, is_ref=False)
@@ -126,17 +130,20 @@ class XRefRole(ReferenceRole):
title, target = self.update_title_and_target(title, target)
# create the reference node
- options = {'refdoc': self.env.docname,
- 'refdomain': self.refdomain,
- 'reftype': self.reftype,
- 'refexplicit': self.has_explicit_title,
- 'refwarn': self.warn_dangling}
+ options = {
+ 'refdoc': self.env.docname,
+ 'refdomain': self.refdomain,
+ 'reftype': self.reftype,
+ 'refexplicit': self.has_explicit_title,
+ 'refwarn': self.warn_dangling,
+ }
refnode = self.nodeclass(self.rawtext, **options)
self.set_source_info(refnode)
# determine the target and title for the class
- title, target = self.process_link(self.env, refnode, self.has_explicit_title,
- title, target)
+ title, target = self.process_link(
+ self.env, refnode, self.has_explicit_title, title, target
+ )
refnode['reftarget'] = target
refnode += self.innernodeclass(self.rawtext, title, classes=self.classes)
@@ -144,8 +151,14 @@ class XRefRole(ReferenceRole):
# methods that can be overwritten
- def process_link(self, env: BuildEnvironment, refnode: Element, has_explicit_title: bool,
- title: str, target: str) -> tuple[str, str]:
+ def process_link(
+ self,
+ env: BuildEnvironment,
+ refnode: Element,
+ has_explicit_title: bool,
+ title: str,
+ target: str,
+ ) -> tuple[str, str]:
"""Called after parsing title and target text, and creating the
reference node (given in *refnode*). This method can alter the
reference node and must return a new (or the same) ``(title, target)``
@@ -153,8 +166,9 @@ class XRefRole(ReferenceRole):
"""
return title, ws_re.sub(' ', target)
- def result_nodes(self, document: nodes.document, env: BuildEnvironment, node: Element,
- is_ref: bool) -> tuple[list[Node], list[system_message]]:
+ def result_nodes(
+ self, document: nodes.document, env: BuildEnvironment, node: Element, is_ref: bool
+ ) -> tuple[list[Node], list[system_message]]:
"""Called before returning the finished nodes. *node* is the reference
node if one was created (*is_ref* is then true), else the content node.
This method can add other nodes and must return a ``(nodes, messages)``
@@ -164,8 +178,14 @@ class XRefRole(ReferenceRole):
class AnyXRefRole(XRefRole):
- def process_link(self, env: BuildEnvironment, refnode: Element, has_explicit_title: bool,
- title: str, target: str) -> tuple[str, str]:
+ def process_link(
+ self,
+ env: BuildEnvironment,
+ refnode: Element,
+ has_explicit_title: bool,
+ title: str,
+ target: str,
+ ) -> tuple[str, str]:
result = super().process_link(env, refnode, has_explicit_title, title, target)
# add all possible context info (i.e. std:program, py:module etc.)
refnode.attributes.update(env.ref_context)
@@ -175,8 +195,15 @@ class AnyXRefRole(XRefRole):
class PEP(ReferenceRole):
def run(self) -> tuple[list[Node], list[system_message]]:
target_id = 'index-%s' % self.env.new_serialno('index')
- entries = [('single', _('Python Enhancement Proposals; PEP %s') % self.target,
- target_id, '', None)]
+ entries = [
+ (
+ 'single',
+ _('Python Enhancement Proposals; PEP %s') % self.target,
+ target_id,
+ '',
+ None,
+ )
+ ]
index = addnodes.index(entries=entries)
target = nodes.target('', '', ids=[target_id])
@@ -188,11 +215,12 @@ class PEP(ReferenceRole):
if self.has_explicit_title:
reference += nodes.strong(self.title, self.title)
else:
- title = "PEP " + self.title
+ title = 'PEP ' + self.title
reference += nodes.strong(title, title)
except ValueError:
- msg = self.inliner.reporter.error(__('invalid PEP number %s') % self.target,
- line=self.lineno)
+ msg = self.inliner.reporter.error(
+ __('invalid PEP number %s') % self.target, line=self.lineno
+ )
prb = self.inliner.problematic(self.rawtext, self.rawtext, msg)
return [prb], [msg]
@@ -222,11 +250,12 @@ class RFC(ReferenceRole):
if self.has_explicit_title:
reference += nodes.strong(self.title, self.title)
else:
- title = "RFC " + self.title
+ title = 'RFC ' + self.title
reference += nodes.strong(title, title)
except ValueError:
- msg = self.inliner.reporter.error(__('invalid RFC number %s') % self.target,
- line=self.lineno)
+ msg = self.inliner.reporter.error(
+ __('invalid RFC number %s') % self.target, line=self.lineno
+ )
prb = self.inliner.problematic(self.rawtext, self.rawtext, msg)
return [prb], [msg]
@@ -241,9 +270,6 @@ class RFC(ReferenceRole):
return base_url + self.inliner.rfc_url % int(ret[0])
-_amp_re = re.compile(r'(?<!&)&(?![&\s])')
-
-
class GUILabel(SphinxRole):
amp_re = re.compile(r'(?<!&)&(?![&\s])')
@@ -270,17 +296,14 @@ class MenuSelection(GUILabel):
return super().run()
-_litvar_re = re.compile('{([^}]+)}')
-parens_re = re.compile(r'(\\*{|\\*})')
-
-
class EmphasizedLiteral(SphinxRole):
parens_re = re.compile(r'(\\\\|\\{|\\}|{|})')
def run(self) -> tuple[list[Node], list[system_message]]:
children = self.parse(self.text)
- node = nodes.literal(self.rawtext, '', *children,
- role=self.name.lower(), classes=[self.name])
+ node = nodes.literal(
+ self.rawtext, '', *children, role=self.name.lower(), classes=[self.name]
+ )
return [node], []
@@ -292,14 +315,13 @@ class EmphasizedLiteral(SphinxRole):
if part == '\\\\': # escaped backslash
stack[-1] += '\\'
elif part == '{':
- if len(stack) >= 2 and stack[-2] == "{": # nested
- stack[-1] += "{"
+ if len(stack) >= 2 and stack[-2] == '{': # nested
+ stack[-1] += '{'
else:
# start emphasis
- stack.append('{')
- stack.append('')
+ stack.extend(('{', ''))
elif part == '}':
- if len(stack) == 3 and stack[1] == "{" and len(stack[2]) > 0:
+ if len(stack) == 3 and stack[1] == '{' and len(stack[2]) > 0:
# emphasized word found
if stack[0]:
result.append(nodes.Text(stack[0]))
@@ -324,17 +346,14 @@ class EmphasizedLiteral(SphinxRole):
return result
-_abbr_re = re.compile(r'\((.*)\)$', re.S)
-
-
class Abbreviation(SphinxRole):
- abbr_re = re.compile(r'\((.*)\)$', re.S)
+ abbr_re = re.compile(r'\((.*)\)$', re.DOTALL)
def run(self) -> tuple[list[Node], list[system_message]]:
options = self.options.copy()
matched = self.abbr_re.search(self.text)
if matched:
- text = self.text[:matched.start()].strip()
+ text = self.text[: matched.start()].strip()
options['explanation'] = matched.group(1)
else:
text = self.text
@@ -342,6 +361,28 @@ class Abbreviation(SphinxRole):
return [nodes.abbreviation(self.rawtext, text, **options)], []
+class Manpage(ReferenceRole):
+ _manpage_re = re.compile(r'^(?P<path>(?P<page>.+)[(.](?P<section>[1-9]\w*)?\)?)$')
+
+ def run(self) -> tuple[list[Node], list[system_message]]:
+ manpage = ws_re.sub(' ', self.target)
+ if m := self._manpage_re.match(manpage):
+ info = m.groupdict()
+ else:
+ info = {'path': manpage, 'page': manpage, 'section': ''}
+
+ inner: nodes.Node
+ text = self.title[1:] if self.disabled else self.title
+ if not self.disabled and self.config.manpages_url:
+ uri = self.config.manpages_url.format(**info)
+ inner = nodes.reference('', text, classes=[self.name], refuri=uri)
+ else:
+ inner = nodes.Text(text)
+ node = addnodes.manpage(self.rawtext, '', inner, classes=[self.name], **info)
+
+ return [node], []
+
+
# Sphinx provides the `code-block` directive for highlighting code blocks.
# Docutils provides the `code` role which in theory can be used similarly by
# defining a custom role for a given programming language:
@@ -366,10 +407,15 @@ class Abbreviation(SphinxRole):
# way as the Sphinx `code-block` directive.
#
# TODO: Change to use `SphinxRole` once SphinxRole is fixed to support options.
-def code_role(name: str, rawtext: str, text: str, lineno: int,
- inliner: docutils.parsers.rst.states.Inliner,
- options: dict | None = None, content: Sequence[str] = (),
- ) -> tuple[list[Node], list[system_message]]:
+def code_role(
+ name: str,
+ rawtext: str,
+ text: str,
+ lineno: int,
+ inliner: docutils.parsers.rst.states.Inliner,
+ options: dict[str, Any] | None = None,
+ content: Sequence[str] = (),
+) -> tuple[list[Node], list[system_message]]:
if options is None:
options = {}
options = options.copy()
@@ -400,7 +446,6 @@ specific_docroles: dict[str, RoleFunction] = {
'download': XRefRole(nodeclass=addnodes.download_reference),
# links to anything
'any': AnyXRefRole(warn_dangling=True),
-
'pep': PEP(),
'rfc': RFC(),
'guilabel': GUILabel(),
@@ -408,23 +453,24 @@ specific_docroles: dict[str, RoleFunction] = {
'file': EmphasizedLiteral(),
'samp': EmphasizedLiteral(),
'abbr': Abbreviation(),
+ 'manpage': Manpage(),
}
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
from docutils.parsers.rst import roles
for rolename, nodeclass in generic_docroles.items():
generic = roles.GenericRole(rolename, nodeclass)
- role = roles.CustomRole(rolename, generic, {'classes': [rolename]})
- roles.register_local_role(rolename, role)
+ role = roles.CustomRole(rolename, generic, {'classes': [rolename]}) # type: ignore[arg-type]
+ roles.register_local_role(rolename, role) # type: ignore[arg-type]
for rolename, func in specific_docroles.items():
- roles.register_local_role(rolename, func)
+ roles.register_local_role(rolename, func) # type: ignore[arg-type]
# Since docutils registers it as a canonical role, override it as a
# canonical role as well.
- roles.register_canonical_role('code', code_role)
+ roles.register_canonical_role('code', code_role) # type: ignore[arg-type]
return {
'version': 'builtin',
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
index 21758d3..2638f92 100644
--- a/sphinx/search/__init__.py
+++ b/sphinx/search/__init__.py
@@ -70,11 +70,11 @@ var Stemmer = function() {
_word_re = re.compile(r'\w+')
- def __init__(self, options: dict) -> None:
+ def __init__(self, options: dict[str, str]) -> None:
self.options = options
self.init(options)
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
"""
Initialize the class with the options the user has given.
"""
@@ -121,7 +121,7 @@ def parse_stop_word(source: str) -> set[str]:
"""
Parse snowball style word list like this:
- * http://snowball.tartarus.org/algorithms/finnish/stop.txt
+ * https://snowball.tartarus.org/algorithms/finnish/stop.txt
"""
result: set[str] = set()
for line in source.splitlines():
@@ -162,7 +162,7 @@ class _JavaScriptIndex:
SUFFIX = ')'
def dumps(self, data: Any) -> str:
- return self.PREFIX + json.dumps(data) + self.SUFFIX
+ return self.PREFIX + json.dumps(data, sort_keys=True) + self.SUFFIX
def loads(self, s: str) -> Any:
data = s[len(self.PREFIX):-len(self.SUFFIX)]
@@ -171,10 +171,10 @@ class _JavaScriptIndex:
raise ValueError('invalid data')
return json.loads(data)
- def dump(self, data: Any, f: IO) -> None:
+ def dump(self, data: Any, f: IO[str]) -> None:
f.write(self.dumps(data))
- def load(self, f: IO) -> Any:
+ def load(self, f: IO[str]) -> Any:
return self.loads(f.read())
@@ -182,7 +182,7 @@ js_index = _JavaScriptIndex()
def _is_meta_keywords(
- node: nodes.meta, # type: ignore[name-defined]
+ node: nodes.meta,
lang: str | None,
) -> bool:
if node.get('name') == 'keywords':
@@ -234,7 +234,7 @@ class WordCollector(nodes.NodeVisitor):
ids = node.parent['ids']
self.found_titles.append((title, ids[0] if ids else None))
self.found_title_words.extend(self.lang.split(title))
- elif isinstance(node, Element) and _is_meta_keywords(node, self.lang.lang):
+ elif isinstance(node, Element) and _is_meta_keywords(node, self.lang.lang): # type: ignore[arg-type]
keywords = node['content']
keywords = [keyword.strip() for keyword in keywords.split(',')]
self.found_words.extend(keywords)
@@ -250,7 +250,7 @@ class IndexBuilder:
'pickle': pickle
}
- def __init__(self, env: BuildEnvironment, lang: str, options: dict, scoring: str) -> None:
+ def __init__(self, env: BuildEnvironment, lang: str, options: dict[str, str], scoring: str) -> None:
self.env = env
# docname -> title
self._titles: dict[str, str] = env._search_index_titles
@@ -368,8 +368,8 @@ class IndexBuilder:
plist.append((fn2index[docname], typeindex, prio, shortanchor, name))
return rv
- def get_terms(self, fn2index: dict) -> tuple[dict[str, list[str]], dict[str, list[str]]]:
- rvs: tuple[dict[str, list[str]], dict[str, list[str]]] = ({}, {})
+ def get_terms(self, fn2index: dict[str, int]) -> tuple[dict[str, list[int] | int], dict[str, list[int] | int]]:
+ rvs: tuple[dict[str, list[int] | int], dict[str, list[int] | int]] = ({}, {})
for rv, mapping in zip(rvs, (self._mapping, self._title_mapping)):
for k, v in mapping.items():
if len(v) == 1:
@@ -377,7 +377,7 @@ class IndexBuilder:
if fn in fn2index:
rv[k] = fn2index[fn]
else:
- rv[k] = sorted([fn2index[fn] for fn in v if fn in fn2index])
+ rv[k] = sorted(fn2index[fn] for fn in v if fn in fn2index)
return rvs
def freeze(self) -> dict[str, Any]:
@@ -392,14 +392,14 @@ class IndexBuilder:
objnames = self._objnames
alltitles: dict[str, list[tuple[int, str]]] = {}
- for docname, titlelist in self._all_titles.items():
+ for docname, titlelist in sorted(self._all_titles.items()):
for title, titleid in titlelist:
alltitles.setdefault(title, []).append((fn2index[docname], titleid))
- index_entries: dict[str, list[tuple[int, str]]] = {}
+ index_entries: dict[str, list[tuple[int, str, bool]]] = {}
for docname, entries in self._index_entries.items():
for entry, entry_id, main_entry in entries:
- index_entries.setdefault(entry.lower(), []).append((fn2index[docname], entry_id))
+ index_entries.setdefault(entry.lower(), []).append((fn2index[docname], entry_id, main_entry == "main"))
return dict(docnames=docnames, filenames=filenames, titles=titles, terms=terms,
objects=objects, objtypes=objtypes, objnames=objnames,
@@ -438,7 +438,7 @@ class IndexBuilder:
_stem = self.lang.stem
# memoise self.lang.stem
- @functools.lru_cache(maxsize=None)
+ @functools.cache
def stem(word_to_stem: str) -> str:
return _stem(word_to_stem).lower()
@@ -495,7 +495,7 @@ class IndexBuilder:
nodetext = re.sub(r'<[^<]+?>', '', nodetext)
word_store.words.extend(split(nodetext))
return
- elif (isinstance(node, nodes.meta) # type: ignore[attr-defined]
+ elif (isinstance(node, nodes.meta)
and _is_meta_keywords(node, language)):
keywords = [keyword.strip() for keyword in node['content'].split(',')]
word_store.words.extend(keywords)
@@ -508,7 +508,6 @@ class IndexBuilder:
word_store.title_words.extend(split(title))
for child in node.children:
_visit_nodes(child)
- return
word_store = WordStore()
split = self.lang.split
diff --git a/sphinx/search/da.py b/sphinx/search/da.py
index 9b5b9f5..47c5744 100644
--- a/sphinx/search/da.py
+++ b/sphinx/search/da.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
danish_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/danish/stop.txt
+| source: https://snowball.tartarus.org/algorithms/danish/stop.txt
og | and
i | in
jeg | I
@@ -113,7 +113,7 @@ class SearchDanish(SearchLanguage):
js_stemmer_rawcode = 'danish-stemmer.js'
stopwords = danish_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('danish')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/de.py b/sphinx/search/de.py
index 1c253fd..dae52c9 100644
--- a/sphinx/search/de.py
+++ b/sphinx/search/de.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
german_stopwords = parse_stop_word('''
-|source: http://snowball.tartarus.org/algorithms/german/stop.txt
+|source: https://snowball.tartarus.org/algorithms/german/stop.txt
aber | but
alle | all
@@ -296,7 +296,7 @@ class SearchGerman(SearchLanguage):
js_stemmer_rawcode = 'german-stemmer.js'
stopwords = german_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('german')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/en.py b/sphinx/search/en.py
index caa6f66..a1f06bd 100644
--- a/sphinx/search/en.py
+++ b/sphinx/search/en.py
@@ -213,7 +213,7 @@ class SearchEnglish(SearchLanguage):
js_stemmer_code = js_porter_stemmer
stopwords = english_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('porter')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/es.py b/sphinx/search/es.py
index c5d9a5c..247095b 100644
--- a/sphinx/search/es.py
+++ b/sphinx/search/es.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
spanish_stopwords = parse_stop_word('''
-|source: http://snowball.tartarus.org/algorithms/spanish/stop.txt
+|source: https://snowball.tartarus.org/algorithms/spanish/stop.txt
de | from, of
la | the, her
que | who, that
@@ -356,7 +356,7 @@ class SearchSpanish(SearchLanguage):
js_stemmer_rawcode = 'spanish-stemmer.js'
stopwords = spanish_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('spanish')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/fi.py b/sphinx/search/fi.py
index 70114f8..5eca6e3 100644
--- a/sphinx/search/fi.py
+++ b/sphinx/search/fi.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
finnish_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/finnish/stop.txt
+| source: https://snowball.tartarus.org/algorithms/finnish/stop.txt
| forms of BE
olla
@@ -106,7 +106,7 @@ class SearchFinnish(SearchLanguage):
js_stemmer_rawcode = 'finnish-stemmer.js'
stopwords = finnish_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('finnish')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/fr.py b/sphinx/search/fr.py
index 01319dd..4d41cf4 100644
--- a/sphinx/search/fr.py
+++ b/sphinx/search/fr.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
french_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/french/stop.txt
+| source: https://snowball.tartarus.org/algorithms/french/stop.txt
au | a + le
aux | a + les
avec | with
@@ -192,7 +192,7 @@ class SearchFrench(SearchLanguage):
js_stemmer_rawcode = 'french-stemmer.js'
stopwords = french_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('french')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/hu.py b/sphinx/search/hu.py
index eed08db..ccd6ebe 100644
--- a/sphinx/search/hu.py
+++ b/sphinx/search/hu.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
hungarian_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/hungarian/stop.txt
+| source: https://snowball.tartarus.org/algorithms/hungarian/stop.txt
| prepared by Anna Tordai
a
ahogy
@@ -219,7 +219,7 @@ class SearchHungarian(SearchLanguage):
js_stemmer_rawcode = 'hungarian-stemmer.js'
stopwords = hungarian_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('hungarian')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/it.py b/sphinx/search/it.py
index 7bf712b..8436dfa 100644
--- a/sphinx/search/it.py
+++ b/sphinx/search/it.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
italian_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/italian/stop.txt
+| source: https://snowball.tartarus.org/algorithms/italian/stop.txt
ad | a (to) before vowel
al | a + il
allo | a + lo
@@ -309,7 +309,7 @@ class SearchItalian(SearchLanguage):
js_stemmer_rawcode = 'italian-stemmer.js'
stopwords = italian_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('italian')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/ja.py b/sphinx/search/ja.py
index de221ce..5669155 100644
--- a/sphinx/search/ja.py
+++ b/sphinx/search/ja.py
@@ -1,28 +1,28 @@
"""Japanese search language: includes routine to split words."""
# Python Version of TinySegmenter
-# (http://chasen.org/~taku/software/TinySegmenter/)
+# (https://chasen.org/~taku/software/TinySegmenter/)
# TinySegmenter is super compact Japanese tokenizer.
#
# TinySegmenter was originally developed by Taku Kudo <taku(at)chasen.org>.
# Python Version was developed by xnights <programming.magic(at)gmail.com>.
-# For details, see http://programming-magic.com/?id=170
+# For details, see https://programming-magic.com/?id=170
from __future__ import annotations
import os
import re
import sys
-from typing import TYPE_CHECKING, Any, Dict, List
+from typing import Any
try:
- import MeCab
+ import MeCab # type: ignore[import-not-found]
native_module = True
except ImportError:
native_module = False
try:
- import janome.tokenizer
+ import janome.tokenizer # type: ignore[import-not-found]
janome_module = True
except ImportError:
janome_module = False
@@ -33,7 +33,7 @@ from sphinx.util import import_object
class BaseSplitter:
- def __init__(self, options: dict) -> None:
+ def __init__(self, options: dict[str, str]) -> None:
self.options = options
def split(self, input: str) -> list[str]:
@@ -46,7 +46,7 @@ class BaseSplitter:
class MecabSplitter(BaseSplitter):
- def __init__(self, options: dict) -> None:
+ def __init__(self, options: dict[str, str]) -> None:
super().__init__(options)
self.ctypes_libmecab: Any = None
self.ctypes_mecab: Any = None
@@ -64,14 +64,14 @@ class MecabSplitter(BaseSplitter):
self.ctypes_mecab, input.encode(self.dict_encode))
return result.split(' ')
- def init_native(self, options: dict) -> None:
+ def init_native(self, options: dict[str, str]) -> None:
param = '-Owakati'
dict = options.get('dict')
if dict:
param += ' -d %s' % dict
self.native = MeCab.Tagger(param)
- def init_ctypes(self, options: dict) -> None:
+ def init_ctypes(self, options: dict[str, str]) -> None:
import ctypes.util
lib = options.get('lib')
@@ -113,7 +113,7 @@ class MecabSplitter(BaseSplitter):
class JanomeSplitter(BaseSplitter):
- def __init__(self, options: dict) -> None:
+ def __init__(self, options: dict[str, str]) -> None:
super().__init__(options)
self.user_dict = options.get('user_dic')
self.user_dict_enc = options.get('user_dic_enc', 'utf8')
@@ -418,17 +418,8 @@ class DefaultSplitter(BaseSplitter):
return []
result = []
- seg = ['B3', 'B2', 'B1']
- ctype = ['O', 'O', 'O']
- for t in input:
- seg.append(t)
- ctype.append(self.ctype_(t))
- seg.append('E1')
- seg.append('E2')
- seg.append('E3')
- ctype.append('O')
- ctype.append('O')
- ctype.append('O')
+ seg = ['B3', 'B2', 'B1', *input, 'E1', 'E2', 'E3']
+ ctype = ['O', 'O', 'O', *map(self.ctype_, input), 'O', 'O', 'O']
word = seg[3]
p1 = 'U'
p2 = 'U'
@@ -513,7 +504,7 @@ class SearchJapanese(SearchLanguage):
lang = 'ja'
language_name = 'Japanese'
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
dotted_path = options.get('type', 'sphinx.search.ja.DefaultSplitter')
try:
self.splitter = import_object(dotted_path)(options)
diff --git a/sphinx/search/nl.py b/sphinx/search/nl.py
index a610b12..cb5e8c4 100644
--- a/sphinx/search/nl.py
+++ b/sphinx/search/nl.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
dutch_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/dutch/stop.txt
+| source: https://snowball.tartarus.org/algorithms/dutch/stop.txt
de | the
en | and
van | of, from
@@ -120,7 +120,7 @@ class SearchDutch(SearchLanguage):
js_stemmer_rawcode = 'dutch-stemmer.js'
stopwords = dutch_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('dutch')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/no.py b/sphinx/search/no.py
index a69380b..aa7c104 100644
--- a/sphinx/search/no.py
+++ b/sphinx/search/no.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
norwegian_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/norwegian/stop.txt
+| source: https://snowball.tartarus.org/algorithms/norwegian/stop.txt
og | and
i | in
jeg | I
@@ -195,7 +195,7 @@ class SearchNorwegian(SearchLanguage):
js_stemmer_rawcode = 'norwegian-stemmer.js'
stopwords = norwegian_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('norwegian')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/pt.py b/sphinx/search/pt.py
index 908a417..0cf9610 100644
--- a/sphinx/search/pt.py
+++ b/sphinx/search/pt.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
portuguese_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/portuguese/stop.txt
+| source: https://snowball.tartarus.org/algorithms/portuguese/stop.txt
de | of, from
a | the; to, at; her
o | the; him
@@ -254,7 +254,7 @@ class SearchPortuguese(SearchLanguage):
js_stemmer_rawcode = 'portuguese-stemmer.js'
stopwords = portuguese_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('portuguese')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/ro.py b/sphinx/search/ro.py
index b6c9d67..f15b7a6 100644
--- a/sphinx/search/ro.py
+++ b/sphinx/search/ro.py
@@ -15,7 +15,7 @@ class SearchRomanian(SearchLanguage):
js_stemmer_rawcode = 'romanian-stemmer.js'
stopwords: set[str] = set()
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('romanian')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/ru.py b/sphinx/search/ru.py
index b8412c1..d6b817e 100644
--- a/sphinx/search/ru.py
+++ b/sphinx/search/ru.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
russian_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/russian/stop.txt
+| source: https://snowball.tartarus.org/algorithms/russian/stop.txt
и | and
в | in/into
во | alternative form
@@ -244,7 +244,7 @@ class SearchRussian(SearchLanguage):
js_stemmer_rawcode = 'russian-stemmer.js'
stopwords = russian_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('russian')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/sv.py b/sphinx/search/sv.py
index 88cc560..b90e227 100644
--- a/sphinx/search/sv.py
+++ b/sphinx/search/sv.py
@@ -9,7 +9,7 @@ import snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
swedish_stopwords = parse_stop_word('''
-| source: http://snowball.tartarus.org/algorithms/swedish/stop.txt
+| source: https://snowball.tartarus.org/algorithms/swedish/stop.txt
och | and
det | it, this/that
att | to (with infinitive)
@@ -133,7 +133,7 @@ class SearchSwedish(SearchLanguage):
js_stemmer_rawcode = 'swedish-stemmer.js'
stopwords = swedish_stopwords
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('swedish')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/tr.py b/sphinx/search/tr.py
index f4a865c..fdfc18a 100644
--- a/sphinx/search/tr.py
+++ b/sphinx/search/tr.py
@@ -15,7 +15,7 @@ class SearchTurkish(SearchLanguage):
js_stemmer_rawcode = 'turkish-stemmer.js'
stopwords: set[str] = set()
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
self.stemmer = snowballstemmer.stemmer('turkish')
def stem(self, word: str) -> str:
diff --git a/sphinx/search/zh.py b/sphinx/search/zh.py
index 2a3a6e7..e40c9a9 100644
--- a/sphinx/search/zh.py
+++ b/sphinx/search/zh.py
@@ -4,14 +4,13 @@ from __future__ import annotations
import os
import re
-from typing import TYPE_CHECKING, Dict, List
import snowballstemmer
from sphinx.search import SearchLanguage
try:
- import jieba
+ import jieba # type: ignore[import-not-found]
JIEBA = True
except ImportError:
JIEBA = False
@@ -227,7 +226,7 @@ class SearchChinese(SearchLanguage):
latin1_letters = re.compile(r'[a-zA-Z0-9_]+')
latin_terms: list[str] = []
- def init(self, options: dict) -> None:
+ def init(self, options: dict[str, str]) -> None:
if JIEBA:
dict_path = options.get('dict')
if dict_path and os.path.isfile(dict_path):
diff --git a/sphinx/templates/graphviz/graphviz.css b/sphinx/templates/graphviz/graphviz.css
index 8d81c02..027576e 100644
--- a/sphinx/templates/graphviz/graphviz.css
+++ b/sphinx/templates/graphviz/graphviz.css
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- graphviz extension.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/testing/fixtures.py b/sphinx/testing/fixtures.py
index 0cc4882..6e1a122 100644
--- a/sphinx/testing/fixtures.py
+++ b/sphinx/testing/fixtures.py
@@ -7,26 +7,35 @@ import subprocess
import sys
from collections import namedtuple
from io import StringIO
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING
import pytest
from sphinx.testing.util import SphinxTestApp, SphinxTestAppWrapperForSkipBuilding
if TYPE_CHECKING:
- from collections.abc import Generator
+ from collections.abc import Callable, Iterator
from pathlib import Path
+ from typing import Any
DEFAULT_ENABLED_MARKERS = [
+ # The marker signature differs from the constructor signature
+ # since the way it is processed assumes keyword arguments for
+ # the 'testroot' and 'srcdir'.
(
- 'sphinx(builder, testroot=None, freshenv=False, confoverrides=None, tags=None,'
- ' docutilsconf=None, parallel=0): arguments to initialize the sphinx test application.'
+ 'sphinx('
+ 'buildername="html", *, '
+ 'testroot="root", srcdir=None, '
+ 'confoverrides=None, freshenv=False, '
+ 'warningiserror=False, tags=None, verbosity=0, parallel=0, '
+ 'keep_going=False, builddir=None, docutils_conf=None'
+ '): arguments to initialize the sphinx test application.'
),
'test_params(shared_result=...): test parameters.',
]
-def pytest_configure(config):
+def pytest_configure(config: pytest.Config) -> None:
"""Register custom markers"""
for marker in DEFAULT_ENABLED_MARKERS:
config.addinivalue_line('markers', marker)
@@ -44,8 +53,8 @@ class SharedResult:
if key in self.cache:
return
data = {
- 'status': app_._status.getvalue(),
- 'warning': app_._warning.getvalue(),
+ 'status': app_.status.getvalue(),
+ 'warning': app_.warning.getvalue(),
}
self.cache[key] = data
@@ -60,22 +69,25 @@ class SharedResult:
@pytest.fixture()
-def app_params(request: Any, test_params: dict, shared_result: SharedResult,
- sphinx_test_tempdir: str, rootdir: str) -> _app_params:
+def app_params(
+ request: Any,
+ test_params: dict,
+ shared_result: SharedResult,
+ sphinx_test_tempdir: str,
+ rootdir: str,
+) -> _app_params:
"""
Parameters that are specified by 'pytest.mark.sphinx' for
sphinx.application.Sphinx initialization
"""
-
# ##### process pytest.mark.sphinx
- pargs = {}
+ pargs: dict[int, Any] = {}
kwargs: dict[str, Any] = {}
# to avoid stacking positional args
for info in reversed(list(request.node.iter_markers("sphinx"))):
- for i, a in enumerate(info.args):
- pargs[i] = a
+ pargs |= dict(enumerate(info.args))
kwargs.update(info.kwargs)
args = [pargs[i] for i in sorted(pargs.keys())]
@@ -84,7 +96,7 @@ def app_params(request: Any, test_params: dict, shared_result: SharedResult,
if test_params['shared_result']:
if 'srcdir' in kwargs:
msg = 'You can not specify shared_result and srcdir in same time.'
- raise pytest.Exception(msg)
+ pytest.fail(msg)
kwargs['srcdir'] = test_params['shared_result']
restore = shared_result.restore(test_params['shared_result'])
kwargs.update(restore)
@@ -130,8 +142,12 @@ def test_params(request: Any) -> dict:
@pytest.fixture()
-def app(test_params: dict, app_params: tuple[dict, dict], make_app: Callable,
- shared_result: SharedResult) -> Generator[SphinxTestApp, None, None]:
+def app(
+ test_params: dict,
+ app_params: tuple[dict, dict],
+ make_app: Callable,
+ shared_result: SharedResult,
+) -> Iterator[SphinxTestApp]:
"""
Provides the 'sphinx.application.Sphinx' object
"""
@@ -155,7 +171,7 @@ def status(app: SphinxTestApp) -> StringIO:
"""
Back-compatibility for testing with previous @with_app decorator
"""
- return app._status
+ return app.status
@pytest.fixture()
@@ -163,20 +179,20 @@ def warning(app: SphinxTestApp) -> StringIO:
"""
Back-compatibility for testing with previous @with_app decorator
"""
- return app._warning
+ return app.warning
@pytest.fixture()
-def make_app(test_params: dict, monkeypatch: Any) -> Generator[Callable, None, None]:
+def make_app(test_params: dict, monkeypatch: Any) -> Iterator[Callable]:
"""
Provides make_app function to initialize SphinxTestApp instance.
if you want to initialize 'app' in your test function. please use this
instead of using SphinxTestApp class directory.
"""
apps = []
- syspath = sys.path[:]
+ syspath = sys.path.copy()
- def make(*args, **kwargs):
+ def make(*args: Any, **kwargs: Any) -> SphinxTestApp:
status, warning = StringIO(), StringIO()
kwargs.setdefault('status', status)
kwargs.setdefault('warning', warning)
@@ -211,7 +227,8 @@ def if_graphviz_found(app: SphinxTestApp) -> None: # NoQA: PT004
graphviz_dot = getattr(app.config, 'graphviz_dot', '')
try:
if graphviz_dot:
- subprocess.run([graphviz_dot, '-V'], capture_output=True) # show version
+ # print the graphviz_dot version, to check that the binary is available
+ subprocess.run([graphviz_dot, '-V'], capture_output=True, check=False)
return
except OSError: # No such file or directory
pass
@@ -226,7 +243,7 @@ def sphinx_test_tempdir(tmp_path_factory: Any) -> Path:
@pytest.fixture()
-def rollback_sysmodules(): # NoQA: PT004
+def rollback_sysmodules() -> Iterator[None]: # NoQA: PT004
"""
Rollback sys.modules to its value before testing to unload modules
during tests.
@@ -234,8 +251,8 @@ def rollback_sysmodules(): # NoQA: PT004
For example, used in test_ext_autosummary.py to permit unloading the
target module to clear its cache.
"""
+ sysmodules = list(sys.modules)
try:
- sysmodules = list(sys.modules)
yield
finally:
for modname in list(sys.modules):
diff --git a/sphinx/testing/path.py b/sphinx/testing/path.py
index f4069ba..49e62ce 100644
--- a/sphinx/testing/path.py
+++ b/sphinx/testing/path.py
@@ -150,7 +150,7 @@ class path(str):
os.utime(self, arg)
def open(self, mode: str = 'r', **kwargs: Any) -> IO:
- return open(self, mode, **kwargs)
+ return open(self, mode, **kwargs) # NoQA: SIM115
def write_text(self, text: str, encoding: str = 'utf-8', **kwargs: Any) -> None:
"""
diff --git a/sphinx/testing/util.py b/sphinx/testing/util.py
index e76d401..d1de8ea 100644
--- a/sphinx/testing/util.py
+++ b/sphinx/testing/util.py
@@ -1,28 +1,34 @@
"""Sphinx test suite utilities"""
+
from __future__ import annotations
+__all__ = ('SphinxTestApp', 'SphinxTestAppWrapperForSkipBuilding')
+
import contextlib
import os
-import re
import sys
-import warnings
-from typing import IO, TYPE_CHECKING, Any
-from xml.etree import ElementTree
+from io import StringIO
+from types import MappingProxyType
+from typing import TYPE_CHECKING
+from defusedxml.ElementTree import parse as xml_parse
from docutils import nodes
from docutils.parsers.rst import directives, roles
-from sphinx import application, locale
-from sphinx.pycode import ModuleAnalyzer
+import sphinx.application
+import sphinx.locale
+import sphinx.pycode
+from sphinx.util.console import strip_colors
+from sphinx.util.docutils import additional_nodes
if TYPE_CHECKING:
- from io import StringIO
+ from collections.abc import Mapping
from pathlib import Path
+ from typing import Any
+ from xml.etree.ElementTree import ElementTree
from docutils.nodes import Node
-__all__ = 'SphinxTestApp', 'SphinxTestAppWrapperForSkipBuilding'
-
def assert_node(node: Node, cls: Any = None, xpath: str = "", **kwargs: Any) -> None:
if cls:
@@ -64,38 +70,84 @@ def assert_node(node: Node, cls: Any = None, xpath: str = "", **kwargs: Any) ->
f'The node{xpath}[{key}] is not {value!r}: {node[key]!r}'
-def etree_parse(path: str) -> Any:
- with warnings.catch_warnings(record=False):
- warnings.filterwarnings("ignore", category=DeprecationWarning)
- return ElementTree.parse(path) # NoQA: S314 # using known data in tests
+# keep this to restrict the API usage and to have a correct return type
+def etree_parse(path: str | os.PathLike[str]) -> ElementTree:
+ """Parse a file into a (safe) XML element tree."""
+ return xml_parse(path)
-class SphinxTestApp(application.Sphinx):
- """
- A subclass of :class:`Sphinx` that runs on the test root, with some
- better default values for the initialization parameters.
+class SphinxTestApp(sphinx.application.Sphinx):
+ """A subclass of :class:`~sphinx.application.Sphinx` for tests.
+
+ The constructor uses some better default values for the initialization
+ parameters and supports arbitrary keywords stored in the :attr:`extras`
+ read-only mapping.
+
+ It is recommended to use::
+
+ @pytest.mark.sphinx('html')
+ def test(app):
+ app = ...
+
+ instead of::
+
+ def test():
+ app = SphinxTestApp('html', srcdir=srcdir)
+
+ In the former case, the 'app' fixture takes care of setting the source
+ directory, whereas in the latter, the user must provide it themselves.
"""
- _status: StringIO
- _warning: StringIO
+
+ # see https://github.com/sphinx-doc/sphinx/pull/12089 for the
+ # discussion on how the signature of this class should be used
def __init__(
self,
+ /, # to allow 'self' as an extras
buildername: str = 'html',
srcdir: Path | None = None,
- builddir: Path | None = None,
- freshenv: bool = False,
- confoverrides: dict | None = None,
- status: IO | None = None,
- warning: IO | None = None,
+ builddir: Path | None = None, # extra constructor argument
+ freshenv: bool = False, # argument is not in the same order as in the superclass
+ confoverrides: dict[str, Any] | None = None,
+ status: StringIO | None = None,
+ warning: StringIO | None = None,
tags: list[str] | None = None,
- docutilsconf: str | None = None,
+ docutils_conf: str | None = None, # extra constructor argument
parallel: int = 0,
+ # additional arguments at the end to keep the signature
+ verbosity: int = 0, # argument is not in the same order as in the superclass
+ keep_going: bool = False,
+ warningiserror: bool = False, # argument is not in the same order as in the superclass
+ # unknown keyword arguments
+ **extras: Any,
) -> None:
assert srcdir is not None
+ if verbosity == -1:
+ quiet = True
+ verbosity = 0
+ else:
+ quiet = False
+
+ if status is None:
+ # ensure that :attr:`status` is a StringIO and not sys.stdout
+ # but allow the stream to be /dev/null by passing verbosity=-1
+ status = None if quiet else StringIO()
+ elif not isinstance(status, StringIO):
+ err = "%r must be an io.StringIO object, got: %s" % ('status', type(status))
+ raise TypeError(err)
+
+ if warning is None:
+ # ensure that :attr:`warning` is a StringIO and not sys.stderr
+ # but allow the stream to be /dev/null by passing verbosity=-1
+ warning = None if quiet else StringIO()
+ elif not isinstance(warning, StringIO):
+ err = '%r must be an io.StringIO object, got: %s' % ('warning', type(warning))
+ raise TypeError(err)
+
self.docutils_conf_path = srcdir / 'docutils.conf'
- if docutilsconf is not None:
- self.docutils_conf_path.write_text(docutilsconf, encoding='utf8')
+ if docutils_conf is not None:
+ self.docutils_conf_path.write_text(docutils_conf, encoding='utf8')
if builddir is None:
builddir = srcdir / '_build'
@@ -107,35 +159,40 @@ class SphinxTestApp(application.Sphinx):
doctreedir.mkdir(parents=True, exist_ok=True)
if confoverrides is None:
confoverrides = {}
- warningiserror = False
-
- self._saved_path = sys.path[:]
- self._saved_directives = directives._directives.copy() # type: ignore[attr-defined]
- self._saved_roles = roles._roles.copy() # type: ignore[attr-defined]
- self._saved_nodeclasses = {v for v in dir(nodes.GenericNodeVisitor)
- if v.startswith('visit_')}
+ self._saved_path = sys.path.copy()
+ self.extras: Mapping[str, Any] = MappingProxyType(extras)
+ """Extras keyword arguments."""
try:
- super().__init__(srcdir, confdir, outdir, doctreedir,
- buildername, confoverrides, status, warning,
- freshenv, warningiserror, tags, parallel=parallel)
+ super().__init__(
+ srcdir, confdir, outdir, doctreedir, buildername,
+ confoverrides=confoverrides, status=status, warning=warning,
+ freshenv=freshenv, warningiserror=warningiserror, tags=tags,
+ verbosity=verbosity, parallel=parallel, keep_going=keep_going,
+ pdb=False,
+ )
except Exception:
self.cleanup()
raise
+ @property
+ def status(self) -> StringIO:
+ """The in-memory text I/O for the application status messages."""
+ # sphinx.application.Sphinx uses StringIO for a quiet stream
+ assert isinstance(self._status, StringIO)
+ return self._status
+
+ @property
+ def warning(self) -> StringIO:
+ """The in-memory text I/O for the application warning messages."""
+ # sphinx.application.Sphinx uses StringIO for a quiet stream
+ assert isinstance(self._warning, StringIO)
+ return self._warning
+
def cleanup(self, doctrees: bool = False) -> None:
- ModuleAnalyzer.cache.clear()
- locale.translators.clear()
sys.path[:] = self._saved_path
- sys.modules.pop('autodoc_fodder', None)
- directives._directives = self._saved_directives # type: ignore[attr-defined]
- roles._roles = self._saved_roles # type: ignore[attr-defined]
- for method in dir(nodes.GenericNodeVisitor):
- if method.startswith('visit_') and \
- method not in self._saved_nodeclasses:
- delattr(nodes.GenericNodeVisitor, 'visit_' + method[6:])
- delattr(nodes.GenericNodeVisitor, 'depart_' + method[6:])
+ _clean_up_global_state()
with contextlib.suppress(FileNotFoundError):
os.remove(self.docutils_conf_path)
@@ -148,10 +205,10 @@ class SphinxTestApp(application.Sphinx):
class SphinxTestAppWrapperForSkipBuilding:
- """
- This class is a wrapper for SphinxTestApp to speed up the test by skipping
- `app.build` process if it is already built and there is even one output
- file.
+ """A wrapper for SphinxTestApp.
+
+ This class is used to speed up the test by skipping ``app.build()``
+ if it has already been built and there are any output files.
"""
def __init__(self, app_: SphinxTestApp) -> None:
@@ -167,5 +224,37 @@ class SphinxTestAppWrapperForSkipBuilding:
# otherwise, we can use built cache
-def strip_escseq(text: str) -> str:
- return re.sub('\x1b.*?m', '', text)
+def _clean_up_global_state() -> None:
+ # clean up Docutils global state
+ directives._directives.clear() # type: ignore[attr-defined]
+ roles._roles.clear() # type: ignore[attr-defined]
+ for node in additional_nodes:
+ delattr(nodes.GenericNodeVisitor, f'visit_{node.__name__}')
+ delattr(nodes.GenericNodeVisitor, f'depart_{node.__name__}')
+ delattr(nodes.SparseNodeVisitor, f'visit_{node.__name__}')
+ delattr(nodes.SparseNodeVisitor, f'depart_{node.__name__}')
+ additional_nodes.clear()
+
+ # clean up Sphinx global state
+ sphinx.locale.translators.clear()
+
+ # clean up autodoc global state
+ sphinx.pycode.ModuleAnalyzer.cache.clear()
+
+
+# deprecated name -> (object to return, canonical path or '', removal version)
+_DEPRECATED_OBJECTS: dict[str, tuple[Any, str, tuple[int, int]]] = {
+ 'strip_escseq': (strip_colors, 'sphinx.util.console.strip_colors', (9, 0)),
+}
+
+
+def __getattr__(name: str) -> Any:
+ if name not in _DEPRECATED_OBJECTS:
+ msg = f'module {__name__!r} has no attribute {name!r}'
+ raise AttributeError(msg)
+
+ from sphinx.deprecation import _deprecation_warning
+
+ deprecated_object, canonical_name, remove = _DEPRECATED_OBJECTS[name]
+ _deprecation_warning(__name__, name, canonical_name, remove=remove)
+ return deprecated_object
diff --git a/sphinx/texinputs/sphinx.xdy b/sphinx/texinputs/sphinx.xdy
index 0dcf113..8df526e 100644
--- a/sphinx/texinputs/sphinx.xdy
+++ b/sphinx/texinputs/sphinx.xdy
@@ -99,7 +99,7 @@
;; file, with a blank space after \IeC
;; Details of the syntax are explained at
-;; http://xindy.sourceforge.net/doc/manual-3.html
+;; https://xindy.sourceforge.net/doc/manual-3.html
;; In absence of :string, "xindy uses an auto-detection mechanism to decide,
;; if the pattern is a regular expression or not". But it is not obvious to
;; guess, for example "\\_" is not detected as RE but "\\P\{\}" is, so for
diff --git a/sphinx/texinputs/sphinxlatextables.sty b/sphinx/texinputs/sphinxlatextables.sty
index 9e44532..380fc17 100644
--- a/sphinx/texinputs/sphinxlatextables.sty
+++ b/sphinx/texinputs/sphinxlatextables.sty
@@ -564,7 +564,7 @@
% 99% or use case. Or perhaps some trick with storing in a \vbox and recovering
% via some \vsplit but this becomes complicated... perhaps in future.
%
-% In passing we obtain baseline alignements across rows (only if
+% In passing we obtain baseline alignments across rows (only if
% \arraystretch is 1, as LaTeX's does not obey \arraystretch in "p"
% multi-line contents, only first and last line...)
%
diff --git a/sphinx/texinputs/sphinxpackagesubstitutefont.sty b/sphinx/texinputs/sphinxpackagesubstitutefont.sty
new file mode 100644
index 0000000..536bf20
--- /dev/null
+++ b/sphinx/texinputs/sphinxpackagesubstitutefont.sty
@@ -0,0 +1,21 @@
+%% a stub for obsoleted LaTeX package substitutefont
+% The package substitutefont stopped being distributed with TeXLive
+% around August 2023 and was moved to "obsolete" section.
+% cf https://ctan.org/pkg/substitutefont
+% Trying to load it raises a LaTeX build error since.
+
+% The \substitutefont has a LaTeX kernel replacement
+% \DeclareFontFamilySubstitution
+% which was added to LaTeX 2020-02-02
+% The aim of this stub is to do that replacement silently.
+
+% change this info string if making any custom modification
+\ProvidesPackage{sphinxpackagesubstitutefont}[2023/15/11 v7.3.0 substitutefont stub]
+
+\ifdefined\DeclareFontFamilySubstitution
+ \def\substitutefont{\DeclareFontFamilySubstitution}
+\else
+ \usepackage{substitutefont}
+\fi
+
+\endinput
diff --git a/sphinx/themes/agogo/layout.html b/sphinx/themes/agogo/layout.html
index 75c21c2..5b46819 100644
--- a/sphinx/themes/agogo/layout.html
+++ b/sphinx/themes/agogo/layout.html
@@ -5,7 +5,7 @@
Sphinx layout template for the agogo theme, originally written
by Andi Albrecht.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
@@ -39,13 +39,13 @@
{{ toctree(includehidden=True) }}
{%- endblock %}
{%- block sidebarsearch %}
- <div role="search">
+ <search role="search">
<h3 style="margin-top: 1.5em;">{{ _('Search') }}</h3>
<form class="search" action="{{ pathto('search') }}" method="get">
<input type="text" name="q" />
<input type="submit" value="{{ _('Go') }}" />
</form>
- </div>
+ </search>
{%- endblock %}
{% endmacro %}
@@ -76,7 +76,7 @@
<div class="footer-wrapper">
<div class="footer">
<div class="left">
- <div role="navigation" aria-label="related navigaton">
+ <div role="navigation" aria-label="related navigation">
{%- for rellink in rellinks|reverse %}
<a href="{{ pathto(rellink[0])|e }}" title="{{ rellink[1]|striptags|e }}"
{{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a>
diff --git a/sphinx/themes/agogo/static/agogo.css_t b/sphinx/themes/agogo/static/agogo.css_t
index e885d8c..3b7a1d0 100644
--- a/sphinx/themes/agogo/static/agogo.css_t
+++ b/sphinx/themes/agogo/static/agogo.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- agogo theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/agogo/theme.conf b/sphinx/themes/agogo/theme.conf
deleted file mode 100644
index 6a4457e..0000000
--- a/sphinx/themes/agogo/theme.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = agogo.css
-pygments_style = tango
-
-[options]
-bodyfont = "Verdana", Arial, sans-serif
-headerfont = "Georgia", "Times New Roman", serif
-pagewidth = 70em
-documentwidth = 50em
-rightsidebar = true
-sidebarwidth = 20em
-bgcolor = #eeeeec
-headerbg = #555573 url(bgtop.png) top left repeat-x
-footerbg = url(bgfooter.png) top left repeat-x
-linkcolor = #ce5c00
-headercolor1 = #204a87
-headercolor2 = #3465a4
-headerlinkcolor = #fcaf3e
-textalign = justify
diff --git a/sphinx/themes/agogo/theme.toml b/sphinx/themes/agogo/theme.toml
new file mode 100644
index 0000000..ebb47ac
--- /dev/null
+++ b/sphinx/themes/agogo/theme.toml
@@ -0,0 +1,22 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "agogo.css",
+]
+pygments_style = { default = "tango" }
+
+[options]
+bodyfont = "\"Verdana\", Arial, sans-serif"
+headerfont = "\"Georgia\", \"Times New Roman\", serif"
+pagewidth = "70em"
+documentwidth = "50em"
+rightsidebar = "true"
+sidebarwidth = "20em"
+bgcolor = "#eeeeec"
+headerbg = "#555573 url(bgtop.png) top left repeat-x"
+footerbg = "url(bgfooter.png) top left repeat-x"
+linkcolor = "#ce5c00"
+headercolor1 = "#204a87"
+headercolor2 = "#3465a4"
+headerlinkcolor = "#fcaf3e"
+textalign = "justify"
diff --git a/sphinx/themes/basic/defindex.html b/sphinx/themes/basic/defindex.html
index 6fcdb9c..c614b69 100644
--- a/sphinx/themes/basic/defindex.html
+++ b/sphinx/themes/basic/defindex.html
@@ -4,7 +4,7 @@
Default template for the "index" page.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}{{ warn('Now base template defindex.html is deprecated.') }}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/domainindex.html b/sphinx/themes/basic/domainindex.html
index c5b0dad..25d7e30 100644
--- a/sphinx/themes/basic/domainindex.html
+++ b/sphinx/themes/basic/domainindex.html
@@ -4,7 +4,7 @@
Template for domain indices (module index, ...).
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/genindex-single.html b/sphinx/themes/basic/genindex-single.html
index dd1d1f0..70b2946 100644
--- a/sphinx/themes/basic/genindex-single.html
+++ b/sphinx/themes/basic/genindex-single.html
@@ -4,7 +4,7 @@
Template for a "single" page of a split index.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{% macro indexentries(firstname, links) %}
diff --git a/sphinx/themes/basic/genindex-split.html b/sphinx/themes/basic/genindex-split.html
index df2c2c2..5375365 100644
--- a/sphinx/themes/basic/genindex-split.html
+++ b/sphinx/themes/basic/genindex-split.html
@@ -4,7 +4,7 @@
Template for a "split" index overview page.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/genindex.html b/sphinx/themes/basic/genindex.html
index 465b612..b62a9c3 100644
--- a/sphinx/themes/basic/genindex.html
+++ b/sphinx/themes/basic/genindex.html
@@ -4,7 +4,7 @@
Template for an "all-in-one" index.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/globaltoc.html b/sphinx/themes/basic/globaltoc.html
index dd5cd6f..9745538 100644
--- a/sphinx/themes/basic/globaltoc.html
+++ b/sphinx/themes/basic/globaltoc.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: global table of contents.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
<h3><a href="{{ pathto(root_doc)|e }}">{{ _('Table of Contents') }}</a></h3>
diff --git a/sphinx/themes/basic/layout.html b/sphinx/themes/basic/layout.html
index 156ebcd..bc0a67d 100644
--- a/sphinx/themes/basic/layout.html
+++ b/sphinx/themes/basic/layout.html
@@ -4,7 +4,7 @@
Master layout template for Sphinx themes.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- block doctype -%}
diff --git a/sphinx/themes/basic/localtoc.html b/sphinx/themes/basic/localtoc.html
index f53db07..70f3e16 100644
--- a/sphinx/themes/basic/localtoc.html
+++ b/sphinx/themes/basic/localtoc.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: local table of contents.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if display_toc %}
diff --git a/sphinx/themes/basic/page.html b/sphinx/themes/basic/page.html
index a490fc6..502278e 100644
--- a/sphinx/themes/basic/page.html
+++ b/sphinx/themes/basic/page.html
@@ -4,7 +4,7 @@
Master template for simple pages.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/basic/relations.html b/sphinx/themes/basic/relations.html
index 86ed02e..7ce494f 100644
--- a/sphinx/themes/basic/relations.html
+++ b/sphinx/themes/basic/relations.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: relation links.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if prev %}
diff --git a/sphinx/themes/basic/search.html b/sphinx/themes/basic/search.html
index f29d9db..8bad82a 100644
--- a/sphinx/themes/basic/search.html
+++ b/sphinx/themes/basic/search.html
@@ -4,7 +4,7 @@
Template for the search page.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
@@ -15,8 +15,9 @@
<script src="{{ pathto('_static/language_data.js', 1) }}"></script>
{%- endblock %}
{% block extrahead %}
- <script src="{{ pathto('searchindex.js', 1) }}" defer></script>
- {{ super() }}
+ <script src="{{ pathto('searchindex.js', 1) }}" defer="defer"></script>
+ <meta name="robots" content="noindex" />
+ {{ super() }}
{% endblock %}
{% block body %}
<h1 id="search-documentation">{{ _('Search') }}</h1>
@@ -44,22 +45,6 @@
</form>
{% endblock %}
{% block searchresults %}
- {% if search_performed %}
- <h2>{{ _('Search Results') }}</h2>
- {% if not search_results %}
- <p>{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}</p>
- {% endif %}
- {% endif %}
- <div id="search-results">
- {% if search_results %}
- <ul>
- {% for href, caption, context in search_results %}
- <li><a href="{{ pathto(item.href) }}">{{ caption }}</a>
- <div class="context">{{ context|e }}</div>
- </li>
- {% endfor %}
- </ul>
- {% endif %}
- </div>
+ <div id="search-results"></div>
{% endblock %}
{% endblock %}
diff --git a/sphinx/themes/basic/searchbox.html b/sphinx/themes/basic/searchbox.html
index 0cd4523..1f084bb 100644
--- a/sphinx/themes/basic/searchbox.html
+++ b/sphinx/themes/basic/searchbox.html
@@ -4,11 +4,11 @@
Sphinx sidebar template: quick search box.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if pagename != "search" and builder != "singlehtml" %}
-<div id="searchbox" style="display: none" role="search">
+<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">{{ _('Quick search') }}</h3>
<div class="searchformwrapper">
<form class="search" action="{{ pathto('search') }}" method="get">
@@ -16,6 +16,6 @@
<input type="submit" value="{{ _('Go') }}" />
</form>
</div>
-</div>
+</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
{%- endif %}
diff --git a/sphinx/themes/basic/searchfield.html b/sphinx/themes/basic/searchfield.html
index 1286be0..396218f 100644
--- a/sphinx/themes/basic/searchfield.html
+++ b/sphinx/themes/basic/searchfield.html
@@ -7,17 +7,17 @@
extra heading ("Quick search"). Instead, it uses a placeholder text
in the search field.
- :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if pagename != "search" and builder != "singlehtml" %}
-<div id="searchbox" style="display: none" role="search">
+<search id="searchbox" style="display: none" role="search">
<div class="searchformwrapper">
<form class="search" action="{{ pathto('search') }}" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
<input type="submit" value="{{ _('Go') }}" />
</form>
</div>
-</div>
+</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
{%- endif %}
diff --git a/sphinx/themes/basic/sourcelink.html b/sphinx/themes/basic/sourcelink.html
index 2ff0f00..72a5966 100644
--- a/sphinx/themes/basic/sourcelink.html
+++ b/sphinx/themes/basic/sourcelink.html
@@ -4,7 +4,7 @@
Sphinx sidebar template: "show source" link.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- if show_source and has_source and sourcename %}
diff --git a/sphinx/themes/basic/static/basic.css_t b/sphinx/themes/basic/static/basic.css_t
index 53f5eb4..297b9bf 100644
--- a/sphinx/themes/basic/static/basic.css_t
+++ b/sphinx/themes/basic/static/basic.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- basic theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/basic/static/doctools.js b/sphinx/themes/basic/static/doctools.js
index d06a71d..4d67807 100644
--- a/sphinx/themes/basic/static/doctools.js
+++ b/sphinx/themes/basic/static/doctools.js
@@ -4,7 +4,7 @@
*
* Base JavaScript utilities for all Sphinx HTML documentation.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/basic/static/language_data.js_t b/sphinx/themes/basic/static/language_data.js_t
index 80f2a4f..3666e5e 100644
--- a/sphinx/themes/basic/static/language_data.js_t
+++ b/sphinx/themes/basic/static/language_data.js_t
@@ -5,7 +5,7 @@
* This script contains the language-specific data used by searchtools.js,
* namely the list of stopwords, stemmer, scorer and splitter.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -13,7 +13,7 @@
var stopwords = {{ search_language_stop_words }};
{% if search_language_stemming_code %}
-/* Non-minified version is copied as a separate JS file, is available */
+/* Non-minified version is copied as a separate JS file, if available */
{{ search_language_stemming_code|safe }}
{% endif -%}
diff --git a/sphinx/themes/basic/static/searchtools.js b/sphinx/themes/basic/static/searchtools.js
index 7918c3f..92da3f8 100644
--- a/sphinx/themes/basic/static/searchtools.js
+++ b/sphinx/themes/basic/static/searchtools.js
@@ -4,7 +4,7 @@
*
* Sphinx JavaScript utilities for the full-text search.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => {
.then((data) => {
if (data)
listItem.appendChild(
- Search.makeSearchSummary(data, searchTerms)
+ Search.makeSearchSummary(data, searchTerms, anchor)
);
// highlight search terms in the summary
if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js
@@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => {
);
else
Search.status.innerText = _(
- `Search finished, found ${resultCount} page(s) matching the search query.`
- );
+ "Search finished, found ${resultCount} page(s) matching the search query."
+ ).replace('${resultCount}', resultCount);
};
const _displayNextItem = (
results,
@@ -137,6 +137,22 @@ const _displayNextItem = (
// search finished, update title and status message
else _finishSearch(resultCount);
};
+// Helper function used by query() to order search results.
+// Each input is an array of [docname, title, anchor, descr, score, filename].
+// Order the results by score (in opposite order of appearance, since the
+// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically.
+const _orderResultsByScoreThenName = (a, b) => {
+ const leftScore = a[4];
+ const rightScore = b[4];
+ if (leftScore === rightScore) {
+ // same score: sort alphabetically
+ const leftTitle = a[1].toLowerCase();
+ const rightTitle = b[1].toLowerCase();
+ if (leftTitle === rightTitle) return 0;
+ return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
+ }
+ return leftScore > rightScore ? 1 : -1;
+};
/**
* Default splitQuery function. Can be overridden in ``sphinx.search`` with a
@@ -160,13 +176,26 @@ const Search = {
_queued_query: null,
_pulse_status: -1,
- htmlToText: (htmlString) => {
+ htmlToText: (htmlString, anchor) => {
const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html');
- htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() });
+ for (const removalQuery of [".headerlinks", "script", "style"]) {
+ htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() });
+ }
+ if (anchor) {
+ const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`);
+ if (anchorContent) return anchorContent.textContent;
+
+ console.warn(
+ `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.`
+ );
+ }
+
+ // if anchor not specified or not found, fall back to main content
const docContent = htmlElement.querySelector('[role="main"]');
- if (docContent !== undefined) return docContent.textContent;
+ if (docContent) return docContent.textContent;
+
console.warn(
- "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template."
+ "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template."
);
return "";
},
@@ -239,16 +268,7 @@ const Search = {
else Search.deferQuery(query);
},
- /**
- * execute search (requires search index to be loaded)
- */
- query: (query) => {
- const filenames = Search._index.filenames;
- const docNames = Search._index.docnames;
- const titles = Search._index.titles;
- const allTitles = Search._index.alltitles;
- const indexEntries = Search._index.indexentries;
-
+ _parseQuery: (query) => {
// stem the search terms and add them to the correct list
const stemmer = new Stemmer();
const searchTerms = new Set();
@@ -284,16 +304,32 @@ const Search = {
// console.info("required: ", [...searchTerms]);
// console.info("excluded: ", [...excludedTerms]);
- // array of [docname, title, anchor, descr, score, filename]
- let results = [];
+ return [query, searchTerms, excludedTerms, highlightTerms, objectTerms];
+ },
+
+ /**
+ * execute search (requires search index to be loaded)
+ */
+ _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => {
+ const filenames = Search._index.filenames;
+ const docNames = Search._index.docnames;
+ const titles = Search._index.titles;
+ const allTitles = Search._index.alltitles;
+ const indexEntries = Search._index.indexentries;
+
+ // Collect multiple result groups to be sorted separately and then ordered.
+ // Each is an array of [docname, title, anchor, descr, score, filename].
+ const normalResults = [];
+ const nonMainIndexResults = [];
+
_removeChildren(document.getElementById("search-progress"));
- const queryLower = query.toLowerCase();
+ const queryLower = query.toLowerCase().trim();
for (const [title, foundTitles] of Object.entries(allTitles)) {
- if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) {
+ if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) {
for (const [file, id] of foundTitles) {
let score = Math.round(100 * queryLower.length / title.length)
- results.push([
+ normalResults.push([
docNames[file],
titles[file] !== title ? `${titles[file]} > ${title}` : title,
id !== null ? "#" + id : "",
@@ -308,46 +344,47 @@ const Search = {
// search for explicit entries in index directives
for (const [entry, foundEntries] of Object.entries(indexEntries)) {
if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) {
- for (const [file, id] of foundEntries) {
- let score = Math.round(100 * queryLower.length / entry.length)
- results.push([
+ for (const [file, id, isMain] of foundEntries) {
+ const score = Math.round(100 * queryLower.length / entry.length);
+ const result = [
docNames[file],
titles[file],
id ? "#" + id : "",
null,
score,
filenames[file],
- ]);
+ ];
+ if (isMain) {
+ normalResults.push(result);
+ } else {
+ nonMainIndexResults.push(result);
+ }
}
}
}
// lookup as object
objectTerms.forEach((term) =>
- results.push(...Search.performObjectSearch(term, objectTerms))
+ normalResults.push(...Search.performObjectSearch(term, objectTerms))
);
// lookup as search terms in fulltext
- results.push(...Search.performTermsSearch(searchTerms, excludedTerms));
+ normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms));
// let the scorer override scores with a custom scoring function
- if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item)));
-
- // now sort the results by score (in opposite order of appearance, since the
- // display function below uses pop() to retrieve items) and then
- // alphabetically
- results.sort((a, b) => {
- const leftScore = a[4];
- const rightScore = b[4];
- if (leftScore === rightScore) {
- // same score: sort alphabetically
- const leftTitle = a[1].toLowerCase();
- const rightTitle = b[1].toLowerCase();
- if (leftTitle === rightTitle) return 0;
- return leftTitle > rightTitle ? -1 : 1; // inverted is intentional
- }
- return leftScore > rightScore ? 1 : -1;
- });
+ if (Scorer.score) {
+ normalResults.forEach((item) => (item[4] = Scorer.score(item)));
+ nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item)));
+ }
+
+ // Sort each group of results by score and then alphabetically by name.
+ normalResults.sort(_orderResultsByScoreThenName);
+ nonMainIndexResults.sort(_orderResultsByScoreThenName);
+
+ // Combine the result groups in (reverse) order.
+ // Non-main index entries are typically arbitrary cross-references,
+ // so display them after other results.
+ let results = [...nonMainIndexResults, ...normalResults];
// remove duplicate search results
// note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
@@ -361,7 +398,12 @@ const Search = {
return acc;
}, []);
- results = results.reverse();
+ return results.reverse();
+ },
+
+ query: (query) => {
+ const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query);
+ const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms);
// for debugging
//Search.lastresults = results.slice(); // a copy
@@ -466,14 +508,18 @@ const Search = {
// add support for partial matches
if (word.length > 2) {
const escapedWord = _escapeRegExp(word);
- Object.keys(terms).forEach((term) => {
- if (term.match(escapedWord) && !terms[word])
- arr.push({ files: terms[term], score: Scorer.partialTerm });
- });
- Object.keys(titleTerms).forEach((term) => {
- if (term.match(escapedWord) && !titleTerms[word])
- arr.push({ files: titleTerms[word], score: Scorer.partialTitle });
- });
+ if (!terms.hasOwnProperty(word)) {
+ Object.keys(terms).forEach((term) => {
+ if (term.match(escapedWord))
+ arr.push({ files: terms[term], score: Scorer.partialTerm });
+ });
+ }
+ if (!titleTerms.hasOwnProperty(word)) {
+ Object.keys(titleTerms).forEach((term) => {
+ if (term.match(escapedWord))
+ arr.push({ files: titleTerms[term], score: Scorer.partialTitle });
+ });
+ }
}
// no match but word was a required one
@@ -496,9 +542,8 @@ const Search = {
// create the mapping
files.forEach((file) => {
- if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1)
- fileMap.get(file).push(word);
- else fileMap.set(file, [word]);
+ if (!fileMap.has(file)) fileMap.set(file, [word]);
+ else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word);
});
});
@@ -549,8 +594,8 @@ const Search = {
* search summary for a given text. keywords is a list
* of stemmed words.
*/
- makeSearchSummary: (htmlText, keywords) => {
- const text = Search.htmlToText(htmlText);
+ makeSearchSummary: (htmlText, keywords, anchor) => {
+ const text = Search.htmlToText(htmlText, anchor);
if (text === "") return null;
const textLower = text.toLowerCase();
diff --git a/sphinx/themes/basic/theme.conf b/sphinx/themes/basic/theme.conf
deleted file mode 100644
index f8e7b26..0000000
--- a/sphinx/themes/basic/theme.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-[theme]
-inherit = none
-stylesheet = basic.css
-pygments_style = none
-sidebars = localtoc.html, relations.html, sourcelink.html, searchbox.html
-
-[options]
-nosidebar = false
-sidebarwidth = 230
-body_min_width = 360
-body_max_width = 800
-navigation_with_keys = False
-enable_search_shortcuts = True
-globaltoc_collapse = true
-globaltoc_includehidden = false
-globaltoc_maxdepth =
diff --git a/sphinx/themes/basic/theme.toml b/sphinx/themes/basic/theme.toml
new file mode 100644
index 0000000..f380be0
--- /dev/null
+++ b/sphinx/themes/basic/theme.toml
@@ -0,0 +1,23 @@
+[theme]
+inherit = "none"
+stylesheets = [
+ "basic.css",
+]
+sidebars = [
+ "localtoc.html",
+ "relations.html",
+ "sourcelink.html",
+ "searchbox.html",
+]
+pygments_style = { default = "none" }
+
+[options]
+nosidebar = "false"
+sidebarwidth = "230"
+body_min_width = "360"
+body_max_width = "800"
+navigation_with_keys = "False"
+enable_search_shortcuts = "True"
+globaltoc_collapse = "true"
+globaltoc_includehidden = "false"
+globaltoc_maxdepth = ""
diff --git a/sphinx/themes/bizstyle/layout.html b/sphinx/themes/bizstyle/layout.html
index 6fd1e18..226c787 100644
--- a/sphinx/themes/bizstyle/layout.html
+++ b/sphinx/themes/bizstyle/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the bizstyle theme.
- :copyright: Copyright 2007-2023 by Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{% extends "basic/layout.html" %}
@@ -14,11 +14,6 @@
<script src="{{ pathto('_static/bizstyle.js', 1) }}"></script>
{%- endblock %}
-{# doctype override #}
-{%- block doctype %}
-<!doctype html>
-{%- endblock %}
-
{%- block extrahead %}
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<!--[if lt IE 9]>
diff --git a/sphinx/themes/bizstyle/static/bizstyle.css_t b/sphinx/themes/bizstyle/static/bizstyle.css_t
index 3cf7832..9630fbc 100644
--- a/sphinx/themes/bizstyle/static/bizstyle.css_t
+++ b/sphinx/themes/bizstyle/static/bizstyle.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- business style theme.
*
- * :copyright: Copyright 2007-2023 by Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/bizstyle/static/bizstyle.js_t b/sphinx/themes/bizstyle/static/bizstyle.js_t
index fd0865e..1373b22 100644
--- a/sphinx/themes/bizstyle/static/bizstyle.js_t
+++ b/sphinx/themes/bizstyle/static/bizstyle.js_t
@@ -6,7 +6,7 @@
//
// This theme was created by referring to 'sphinxdoc'
//
-// :copyright: Copyright 2007-2023 by Sphinx team, see AUTHORS.
+// :copyright: Copyright 2007-2024 by Sphinx team, see AUTHORS.
// :license: BSD, see LICENSE for details.
//
const initialiseBizStyle = () => {
diff --git a/sphinx/themes/bizstyle/static/css3-mediaqueries_src.js b/sphinx/themes/bizstyle/static/css3-mediaqueries_src.js
index 7878620..8aedaab 100644
--- a/sphinx/themes/bizstyle/static/css3-mediaqueries_src.js
+++ b/sphinx/themes/bizstyle/static/css3-mediaqueries_src.js
@@ -4,15 +4,15 @@ css3-mediaqueries.js - CSS Helper and CSS3 Media Queries Enabler
author: Wouter van der Graaf <wouter at dynora nl>
version: 1.0 (20110330)
license: MIT
-website: http://code.google.com/p/css3-mediaqueries-js/
+website: https://code.google.com/p/css3-mediaqueries-js/
-W3C spec: http://www.w3.org/TR/css3-mediaqueries/
+W3C spec: https://www.w3.org/TR/css3-mediaqueries/
Note: use of embedded <style> is not recommended when using media queries, because IE has no way of returning the raw literal css text from a <style> element.
*/
-// true prototypal inheritance (http://javascript.crockford.com/prototypal.html)
+// true prototypal inheritance (https://javascript.crockford.com/prototypal.html)
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
diff --git a/sphinx/themes/bizstyle/theme.conf b/sphinx/themes/bizstyle/theme.conf
deleted file mode 100644
index 3c21b0f..0000000
--- a/sphinx/themes/bizstyle/theme.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = bizstyle.css
-pygments_style = friendly
-
-[options]
-rightsidebar = false
-sidebarwidth = 210
-
-maincolor = #336699
diff --git a/sphinx/themes/bizstyle/theme.toml b/sphinx/themes/bizstyle/theme.toml
new file mode 100644
index 0000000..f7de8c2
--- /dev/null
+++ b/sphinx/themes/bizstyle/theme.toml
@@ -0,0 +1,12 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "bizstyle.css",
+]
+pygments_style = { default = "friendly" }
+
+[options]
+rightsidebar = "false"
+sidebarwidth = "210"
+
+maincolor = "#336699"
diff --git a/sphinx/themes/classic/layout.html b/sphinx/themes/classic/layout.html
index e6a5c43..99a101c 100644
--- a/sphinx/themes/classic/layout.html
+++ b/sphinx/themes/classic/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the classic theme.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/classic/static/classic.css_t b/sphinx/themes/classic/static/classic.css_t
index 8a903e8..78429fc 100644
--- a/sphinx/themes/classic/static/classic.css_t
+++ b/sphinx/themes/classic/static/classic.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- classic theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/classic/static/sidebar.js_t b/sphinx/themes/classic/static/sidebar.js_t
index 32ae506..205e1dc 100644
--- a/sphinx/themes/classic/static/sidebar.js_t
+++ b/sphinx/themes/classic/static/sidebar.js_t
@@ -16,7 +16,7 @@
* Once the browser is closed the cookie is deleted and the position
* reset to the default (expanded).
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/classic/theme.conf b/sphinx/themes/classic/theme.conf
deleted file mode 100644
index 5963d04..0000000
--- a/sphinx/themes/classic/theme.conf
+++ /dev/null
@@ -1,32 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = classic.css
-pygments_style = sphinx
-
-[options]
-rightsidebar = false
-stickysidebar = false
-collapsiblesidebar = false
-externalrefs = false
-
-footerbgcolor = #11303d
-footertextcolor = #ffffff
-sidebarbgcolor = #1c4e63
-sidebarbtncolor = #3c6e83
-sidebartextcolor = #ffffff
-sidebarlinkcolor = #98dbcc
-relbarbgcolor = #133f52
-relbartextcolor = #ffffff
-relbarlinkcolor = #ffffff
-bgcolor = #ffffff
-textcolor = #000000
-headbgcolor = #f2f2f2
-headtextcolor = #20435c
-headlinkcolor = #c60f0f
-linkcolor = #355f7c
-visitedlinkcolor = #551a8b
-codebgcolor = unset
-codetextcolor = unset
-
-bodyfont = sans-serif
-headfont = 'Trebuchet MS', sans-serif
diff --git a/sphinx/themes/classic/theme.toml b/sphinx/themes/classic/theme.toml
new file mode 100644
index 0000000..fbb2fed
--- /dev/null
+++ b/sphinx/themes/classic/theme.toml
@@ -0,0 +1,34 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "classic.css",
+]
+pygments_style = { default = "sphinx" }
+
+[options]
+rightsidebar = "false"
+stickysidebar = "false"
+collapsiblesidebar = "false"
+externalrefs = "false"
+
+footerbgcolor = "#11303d"
+footertextcolor = "#ffffff"
+sidebarbgcolor = "#1c4e63"
+sidebarbtncolor = "#3c6e83"
+sidebartextcolor = "#ffffff"
+sidebarlinkcolor = "#98dbcc"
+relbarbgcolor = "#133f52"
+relbartextcolor = "#ffffff"
+relbarlinkcolor = "#ffffff"
+bgcolor = "#ffffff"
+textcolor = "#000000"
+headbgcolor = "#f2f2f2"
+headtextcolor = "#20435c"
+headlinkcolor = "#c60f0f"
+linkcolor = "#355f7c"
+visitedlinkcolor = "#551a8b"
+codebgcolor = "unset"
+codetextcolor = "unset"
+
+bodyfont = "sans-serif"
+headfont = "'Trebuchet MS', sans-serif"
diff --git a/sphinx/themes/default/theme.conf b/sphinx/themes/default/theme.conf
deleted file mode 100644
index 0d8403f..0000000
--- a/sphinx/themes/default/theme.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[theme]
-inherit = classic
diff --git a/sphinx/themes/default/theme.toml b/sphinx/themes/default/theme.toml
new file mode 100644
index 0000000..207c717
--- /dev/null
+++ b/sphinx/themes/default/theme.toml
@@ -0,0 +1,2 @@
+[theme]
+inherit = "classic"
diff --git a/sphinx/themes/epub/epub-cover.html b/sphinx/themes/epub/epub-cover.html
index bb348bb..15d4616 100644
--- a/sphinx/themes/epub/epub-cover.html
+++ b/sphinx/themes/epub/epub-cover.html
@@ -4,7 +4,7 @@
Sample template for the html cover page.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "layout.html" %}
diff --git a/sphinx/themes/epub/layout.html b/sphinx/themes/epub/layout.html
index f4bcf97..c7b63cd 100644
--- a/sphinx/themes/epub/layout.html
+++ b/sphinx/themes/epub/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the epub theme.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/epub/static/epub.css_t b/sphinx/themes/epub/static/epub.css_t
index 1afb150..75b45df 100644
--- a/sphinx/themes/epub/static/epub.css_t
+++ b/sphinx/themes/epub/static/epub.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- epub theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/epub/theme.conf b/sphinx/themes/epub/theme.conf
deleted file mode 100644
index 11f098e..0000000
--- a/sphinx/themes/epub/theme.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = epub.css
-pygments_style = none
-
-[options]
-relbar1 = true
-footer = true
diff --git a/sphinx/themes/epub/theme.toml b/sphinx/themes/epub/theme.toml
new file mode 100644
index 0000000..8fcf9d9
--- /dev/null
+++ b/sphinx/themes/epub/theme.toml
@@ -0,0 +1,10 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "epub.css",
+]
+pygments_style = { default = "none" }
+
+[options]
+relbar1 = "true"
+footer = "true"
diff --git a/sphinx/themes/haiku/layout.html b/sphinx/themes/haiku/layout.html
index 4e14826..c0c1904 100644
--- a/sphinx/themes/haiku/layout.html
+++ b/sphinx/themes/haiku/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the haiku theme.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
@@ -35,14 +35,14 @@
<div class="header" role="banner">
{%- block haikuheader %}
{%- if theme_full_logo != "false" %}
- <a href="{{ pathto('index') }}">
+ <a href="{{ pathto(root_doc)|e }}">
<img class="logo" src="{{ logo_url|e }}" alt="Logo"/>
</a>
{%- else %}
{%- if logo -%}
<img class="rightlogo" src="{{ logo_url|e }}" alt="Logo"/>
{%- endif -%}
- <h1 class="heading"><a href="{{ pathto('index') }}">
+ <h1 class="heading"><a href="{{ pathto(root_doc)|e }}">
<span>{{ shorttitle|e }}</span></a></h1>
<h2 class="heading"><span>{{ title|striptags|e }}</span></h2>
{%- endif %}
diff --git a/sphinx/themes/haiku/static/haiku.css_t b/sphinx/themes/haiku/static/haiku.css_t
index bccc3ea..ce449b5 100644
--- a/sphinx/themes/haiku/static/haiku.css_t
+++ b/sphinx/themes/haiku/static/haiku.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- haiku theme.
*
- * Adapted from http://haiku-os.org/docs/Haiku-doc.css.
+ * Adapted from https://haiku-os.org/docs/Haiku-doc.css.
* Original copyright message:
*
* Copyright 2008-2009, Haiku. All rights reserved.
@@ -16,7 +16,7 @@
* Braden Ewing <brewin@gmail.com>
* Humdinger <humdingerb@gmail.com>
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/haiku/theme.conf b/sphinx/themes/haiku/theme.conf
deleted file mode 100644
index 77dd7c7..0000000
--- a/sphinx/themes/haiku/theme.conf
+++ /dev/null
@@ -1,14 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = haiku.css
-pygments_style = autumn
-
-[options]
-full_logo = false
-body_min_width = 59em
-body_max_width = 70em
-textcolor = #333333
-headingcolor = #0c3762
-linkcolor = #dc3c01
-visitedlinkcolor = #551a8b
-hoverlinkcolor = #ff4500
diff --git a/sphinx/themes/haiku/theme.toml b/sphinx/themes/haiku/theme.toml
new file mode 100644
index 0000000..149b89d
--- /dev/null
+++ b/sphinx/themes/haiku/theme.toml
@@ -0,0 +1,16 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "haiku.css",
+]
+pygments_style = { default = "autumn" }
+
+[options]
+full_logo = "false"
+body_min_width = "59em"
+body_max_width = "70em"
+textcolor = "#333333"
+headingcolor = "#0c3762"
+linkcolor = "#dc3c01"
+visitedlinkcolor = "#551a8b"
+hoverlinkcolor = "#ff4500"
diff --git a/sphinx/themes/nature/static/nature.css_t b/sphinx/themes/nature/static/nature.css_t
index fe95c35..e2a9606 100644
--- a/sphinx/themes/nature/static/nature.css_t
+++ b/sphinx/themes/nature/static/nature.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- nature theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/nature/theme.conf b/sphinx/themes/nature/theme.conf
deleted file mode 100644
index 1cc4004..0000000
--- a/sphinx/themes/nature/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = nature.css
-pygments_style = tango
diff --git a/sphinx/themes/nature/theme.toml b/sphinx/themes/nature/theme.toml
new file mode 100644
index 0000000..0322e5d
--- /dev/null
+++ b/sphinx/themes/nature/theme.toml
@@ -0,0 +1,6 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "nature.css",
+]
+pygments_style = { default = "tango" }
diff --git a/sphinx/themes/nonav/layout.html b/sphinx/themes/nonav/layout.html
index 06607f4..ba5f7b7 100644
--- a/sphinx/themes/nonav/layout.html
+++ b/sphinx/themes/nonav/layout.html
@@ -4,7 +4,7 @@
Sphinx layout template for the any help system theme.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
diff --git a/sphinx/themes/nonav/static/nonav.css_t b/sphinx/themes/nonav/static/nonav.css_t
index b4d26cc..5e76c0e 100644
--- a/sphinx/themes/nonav/static/nonav.css_t
+++ b/sphinx/themes/nonav/static/nonav.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- nonav theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/nonav/theme.conf b/sphinx/themes/nonav/theme.conf
deleted file mode 100644
index d4799c7..0000000
--- a/sphinx/themes/nonav/theme.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = nonav.css
-pygments_style = none
-
-[options]
-relbar1 = true
-footer = true
diff --git a/sphinx/themes/nonav/theme.toml b/sphinx/themes/nonav/theme.toml
new file mode 100644
index 0000000..4202049
--- /dev/null
+++ b/sphinx/themes/nonav/theme.toml
@@ -0,0 +1,10 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "nonav.css",
+]
+pygments_style = { default = "none" }
+
+[options]
+relbar1 = "true"
+footer = "true"
diff --git a/sphinx/themes/pyramid/static/epub.css_t b/sphinx/themes/pyramid/static/epub.css_t
index 798054b..43f82cd 100644
--- a/sphinx/themes/pyramid/static/epub.css_t
+++ b/sphinx/themes/pyramid/static/epub.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- default theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/pyramid/static/pyramid.css_t b/sphinx/themes/pyramid/static/pyramid.css_t
index 560093c..5283e94 100644
--- a/sphinx/themes/pyramid/static/pyramid.css_t
+++ b/sphinx/themes/pyramid/static/pyramid.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- pylons theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/pyramid/theme.conf b/sphinx/themes/pyramid/theme.conf
deleted file mode 100644
index 409579f..0000000
--- a/sphinx/themes/pyramid/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = pyramid.css
-pygments_style = sphinx.pygments_styles.PyramidStyle
diff --git a/sphinx/themes/pyramid/theme.toml b/sphinx/themes/pyramid/theme.toml
new file mode 100644
index 0000000..0e0c487
--- /dev/null
+++ b/sphinx/themes/pyramid/theme.toml
@@ -0,0 +1,6 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "pyramid.css",
+]
+pygments_style = { default = "sphinx.pygments_styles.PyramidStyle" }
diff --git a/sphinx/themes/scrolls/artwork/logo.svg b/sphinx/themes/scrolls/artwork/logo.svg
index 0907a4e..b281baf 100644
--- a/sphinx/themes/scrolls/artwork/logo.svg
+++ b/sphinx/themes/scrolls/artwork/logo.svg
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<!-- Created with Inkscape (https://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
diff --git a/sphinx/themes/scrolls/layout.html b/sphinx/themes/scrolls/layout.html
index da91ee9..4bec473 100644
--- a/sphinx/themes/scrolls/layout.html
+++ b/sphinx/themes/scrolls/layout.html
@@ -5,7 +5,7 @@
Sphinx layout template for the scrolls theme, originally written
by Armin Ronacher.
- :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{%- extends "basic/layout.html" %}
@@ -23,7 +23,7 @@
{% block content %}
<div id="content">
<div class="header">
- <h1 class="heading"><a href="{{ pathto('index') }}"
+ <h1 class="heading"><a href="{{ pathto(root_doc)|e }}"
title="back to the documentation overview"><span>{{ title|striptags|e }}</span></a></h1>
</div>
<div class="relnav" role="navigation" aria-label="related navigation">
diff --git a/sphinx/themes/scrolls/static/scrolls.css_t b/sphinx/themes/scrolls/static/scrolls.css_t
index ae6eb0a..a159689 100644
--- a/sphinx/themes/scrolls/static/scrolls.css_t
+++ b/sphinx/themes/scrolls/static/scrolls.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- scrolls theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/scrolls/theme.conf b/sphinx/themes/scrolls/theme.conf
deleted file mode 100644
index 7e83de1..0000000
--- a/sphinx/themes/scrolls/theme.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = scrolls.css
-pygments_style = tango
-
-[options]
-body_min_width = 0
-body_max_width = 680
-headerbordercolor = #1752b4
-subheadlinecolor = #0d306b
-linkcolor = #1752b4
-visitedlinkcolor = #551a8b
-admonitioncolor = #28437f
diff --git a/sphinx/themes/scrolls/theme.toml b/sphinx/themes/scrolls/theme.toml
new file mode 100644
index 0000000..92b1bfa
--- /dev/null
+++ b/sphinx/themes/scrolls/theme.toml
@@ -0,0 +1,15 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "scrolls.css",
+]
+pygments_style = { default = "tango" }
+
+[options]
+body_min_width = "0"
+body_max_width = "680"
+headerbordercolor = "#1752b4"
+subheadlinecolor = "#0d306b"
+linkcolor = "#1752b4"
+visitedlinkcolor = "#551a8b"
+admonitioncolor = "#28437f"
diff --git a/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t b/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t
index bf4d254..3cfd310 100644
--- a/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t
+++ b/sphinx/themes/sphinxdoc/static/sphinxdoc.css_t
@@ -5,7 +5,7 @@
* Sphinx stylesheet -- sphinxdoc theme. Originally created by
* Armin Ronacher for Werkzeug.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/sphinxdoc/theme.conf b/sphinx/themes/sphinxdoc/theme.conf
deleted file mode 100644
index 9a22fef..0000000
--- a/sphinx/themes/sphinxdoc/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = sphinxdoc.css
-pygments_style = friendly
diff --git a/sphinx/themes/sphinxdoc/theme.toml b/sphinx/themes/sphinxdoc/theme.toml
new file mode 100644
index 0000000..472da10
--- /dev/null
+++ b/sphinx/themes/sphinxdoc/theme.toml
@@ -0,0 +1,6 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "sphinxdoc.css",
+]
+pygments_style = { default = "friendly" }
diff --git a/sphinx/themes/traditional/static/traditional.css_t b/sphinx/themes/traditional/static/traditional.css_t
index 085c98a..9ddac53 100644
--- a/sphinx/themes/traditional/static/traditional.css_t
+++ b/sphinx/themes/traditional/static/traditional.css_t
@@ -4,7 +4,7 @@
*
* Sphinx stylesheet -- traditional docs.python.org theme.
*
- * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS.
+ * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
diff --git a/sphinx/themes/traditional/theme.conf b/sphinx/themes/traditional/theme.conf
deleted file mode 100644
index acc6bc7..0000000
--- a/sphinx/themes/traditional/theme.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = traditional.css
-
-[options]
-body_min_width = 0
-body_max_width = none
diff --git a/sphinx/themes/traditional/theme.toml b/sphinx/themes/traditional/theme.toml
new file mode 100644
index 0000000..173be97
--- /dev/null
+++ b/sphinx/themes/traditional/theme.toml
@@ -0,0 +1,9 @@
+[theme]
+inherit = "basic"
+stylesheets = [
+ "traditional.css",
+]
+
+[options]
+body_min_width = "0"
+body_max_width = "none"
diff --git a/sphinx/theming.py b/sphinx/theming.py
index a8a3f83..097efa4 100644
--- a/sphinx/theming.py
+++ b/sphinx/theming.py
@@ -2,7 +2,10 @@
from __future__ import annotations
+__all__ = ('Theme', 'HTMLThemeFactory')
+
import configparser
+import contextlib
import os
import shutil
import sys
@@ -11,117 +14,138 @@ from os import path
from typing import TYPE_CHECKING, Any
from zipfile import ZipFile
-if sys.version_info >= (3, 10):
- from importlib.metadata import entry_points
-else:
- from importlib_metadata import entry_points
-
-import contextlib
-
from sphinx import package_dir
+from sphinx.config import check_confval_types as _config_post_init
from sphinx.errors import ThemeError
from sphinx.locale import __
from sphinx.util import logging
from sphinx.util.osutil import ensuredir
+if sys.version_info >= (3, 11):
+ import tomllib
+else:
+ import tomli as tomllib
+
+if sys.version_info >= (3, 10):
+ from importlib.metadata import entry_points
+else:
+ from importlib_metadata import entry_points
+
if TYPE_CHECKING:
+ from collections.abc import Callable
+ from typing import TypedDict
+
+ from typing_extensions import Required
+
from sphinx.application import Sphinx
+ class _ThemeToml(TypedDict, total=False):
+ theme: Required[_ThemeTomlTheme]
+ options: dict[str, str]
-logger = logging.getLogger(__name__)
+ class _ThemeTomlTheme(TypedDict, total=False):
+ inherit: Required[str]
+ stylesheets: list[str]
+ sidebars: list[str]
+ pygments_style: _ThemeTomlThemePygments
-NODEFAULT = object()
-THEMECONF = 'theme.conf'
+ class _ThemeTomlThemePygments(TypedDict, total=False):
+ default: str
+ dark: str
-def extract_zip(filename: str, targetdir: str) -> None:
- """Extract zip file to target directory."""
- ensuredir(targetdir)
+logger = logging.getLogger(__name__)
- with ZipFile(filename) as archive:
- for name in archive.namelist():
- if name.endswith('/'):
- continue
- entry = path.join(targetdir, name)
- ensuredir(path.dirname(entry))
- with open(path.join(entry), 'wb') as fp:
- fp.write(archive.read(name))
+_NO_DEFAULT = object()
+_THEME_TOML = 'theme.toml'
+_THEME_CONF = 'theme.conf'
class Theme:
"""A Theme is a set of HTML templates and configurations.
- This class supports both theme directory and theme archive (zipped theme)."""
-
- def __init__(self, name: str, theme_path: str, factory: HTMLThemeFactory) -> None:
+ This class supports both theme directory and theme archive (zipped theme).
+ """
+
+ def __init__(
+ self,
+ name: str,
+ *,
+ configs: dict[str, _ConfigFile],
+ paths: list[str],
+ tmp_dirs: list[str],
+ ) -> None:
self.name = name
- self.base = None
- self.rootdir = None
-
- if path.isdir(theme_path):
- # already a directory, do nothing
- self.rootdir = None
- self.themedir = theme_path
- else:
- # extract the theme to a temp directory
- self.rootdir = tempfile.mkdtemp('sxt')
- self.themedir = path.join(self.rootdir, name)
- extract_zip(theme_path, self.themedir)
-
- self.config = configparser.RawConfigParser()
- self.config.read(path.join(self.themedir, THEMECONF), encoding='utf-8')
-
- try:
- inherit = self.config.get('theme', 'inherit')
- except configparser.NoSectionError as exc:
- raise ThemeError(__('theme %r doesn\'t have "theme" setting') % name) from exc
- except configparser.NoOptionError as exc:
- raise ThemeError(__('theme %r doesn\'t have "inherit" setting') % name) from exc
-
- if inherit != 'none':
- try:
- self.base = factory.create(inherit)
- except ThemeError as exc:
- raise ThemeError(__('no theme named %r found, inherited by %r') %
- (inherit, name)) from exc
+ self._dirs = tuple(paths)
+ self._tmp_dirs = tmp_dirs
+
+ options: dict[str, Any] = {}
+ self.stylesheets: tuple[str, ...] = ()
+ self.sidebar_templates: tuple[str, ...] = ()
+ self.pygments_style_default: str | None = None
+ self.pygments_style_dark: str | None = None
+ for config in reversed(configs.values()):
+ options |= config.options
+ if config.stylesheets is not None:
+ self.stylesheets = config.stylesheets
+ if config.sidebar_templates is not None:
+ self.sidebar_templates = config.sidebar_templates
+ if config.pygments_style_default is not None:
+ self.pygments_style_default = config.pygments_style_default
+ if config.pygments_style_dark is not None:
+ self.pygments_style_dark = config.pygments_style_dark
+
+ self._options = options
def get_theme_dirs(self) -> list[str]:
"""Return a list of theme directories, beginning with this theme's,
then the base theme's, then that one's base theme's, etc.
"""
- if self.base is None:
- return [self.themedir]
- else:
- return [self.themedir] + self.base.get_theme_dirs()
+ return list(self._dirs)
- def get_config(self, section: str, name: str, default: Any = NODEFAULT) -> Any:
+ def get_config(self, section: str, name: str, default: Any = _NO_DEFAULT) -> Any:
"""Return the value for a theme configuration setting, searching the
base theme chain.
"""
- try:
- return self.config.get(section, name)
- except (configparser.NoOptionError, configparser.NoSectionError) as exc:
- if self.base:
- return self.base.get_config(section, name, default)
-
- if default is NODEFAULT:
- raise ThemeError(__('setting %s.%s occurs in none of the '
- 'searched theme configs') % (section, name)) from exc
- return default
+ if section == 'theme':
+ if name == 'stylesheet':
+ value = ', '.join(self.stylesheets) or default
+ elif name == 'sidebars':
+ value = ', '.join(self.sidebar_templates) or default
+ elif name == 'pygments_style':
+ value = self.pygments_style_default or default
+ elif name == 'pygments_dark_style':
+ value = self.pygments_style_dark or default
+ else:
+ value = default
+ elif section == 'options':
+ value = self._options.get(name, default)
+ else:
+ # https://github.com/sphinx-doc/sphinx/issues/12305
+ # For backwards compatibility when attempting to read a value
+ # from an unsupported configuration section.
+ # xref: RemovedInSphinx80Warning
+ msg = __(
+ 'Theme configuration sections other than [theme] and [options] '
+ 'are not supported, returning the default value instead '
+ '(tried to get a value from %r)'
+ )
+ logger.info(msg % section)
+ value = default
+ if value is _NO_DEFAULT:
+ msg = __('setting %s.%s occurs in none of the searched theme configs') % (
+ section,
+ name,
+ )
+ raise ThemeError(msg)
+ return value
def get_options(self, overrides: dict[str, Any] | None = None) -> dict[str, Any]:
"""Return a dictionary of theme options and their values."""
if overrides is None:
overrides = {}
- if self.base:
- options = self.base.get_options()
- else:
- options = {}
-
- with contextlib.suppress(configparser.NoSectionError):
- options.update(self.config.items('options'))
-
+ options = self._options.copy()
for option, value in overrides.items():
if option not in options:
logger.warning(__('unsupported theme option %r given') % option)
@@ -130,77 +154,60 @@ class Theme:
return options
- def cleanup(self) -> None:
+ def _cleanup(self) -> None:
"""Remove temporary directories."""
- if self.rootdir:
+ for tmp_dir in self._tmp_dirs:
with contextlib.suppress(Exception):
- shutil.rmtree(self.rootdir)
-
- if self.base:
- self.base.cleanup()
-
-
-def is_archived_theme(filename: str) -> bool:
- """Check whether the specified file is an archived theme file or not."""
- try:
- with ZipFile(filename) as f:
- return THEMECONF in f.namelist()
- except Exception:
- return False
+ shutil.rmtree(tmp_dir)
class HTMLThemeFactory:
"""A factory class for HTML Themes."""
def __init__(self, app: Sphinx) -> None:
- self.app = app
- self.themes = app.registry.html_themes
- self.load_builtin_themes()
+ self._app = app
+ self._themes = app.registry.html_themes
+ self._entry_point_themes: dict[str, Callable[[], None]] = {}
+ self._load_builtin_themes()
if getattr(app.config, 'html_theme_path', None):
- self.load_additional_themes(app.config.html_theme_path)
+ self._load_additional_themes(app.config.html_theme_path)
+ self._load_entry_point_themes()
- def load_builtin_themes(self) -> None:
+ def _load_builtin_themes(self) -> None:
"""Load built-in themes."""
- themes = self.find_themes(path.join(package_dir, 'themes'))
+ themes = self._find_themes(path.join(package_dir, 'themes'))
for name, theme in themes.items():
- self.themes[name] = theme
+ self._themes[name] = theme
- def load_additional_themes(self, theme_paths: str) -> None:
+ def _load_additional_themes(self, theme_paths: str) -> None:
"""Load additional themes placed at specified directories."""
for theme_path in theme_paths:
- abs_theme_path = path.abspath(path.join(self.app.confdir, theme_path))
- themes = self.find_themes(abs_theme_path)
+ abs_theme_path = path.abspath(path.join(self._app.confdir, theme_path))
+ themes = self._find_themes(abs_theme_path)
for name, theme in themes.items():
- self.themes[name] = theme
-
- def load_extra_theme(self, name: str) -> None:
- """Try to load a theme with the specified name."""
- if name == 'alabaster':
- self.load_alabaster_theme()
- else:
- self.load_external_theme(name)
-
- def load_alabaster_theme(self) -> None:
- """Load alabaster theme."""
- import alabaster
- self.themes['alabaster'] = path.join(alabaster.get_path(), 'alabaster')
+ self._themes[name] = theme
- def load_external_theme(self, name: str) -> None:
- """Try to load a theme using entry_points.
+ def _load_entry_point_themes(self) -> None:
+ """Try to load a theme with the specified name.
- Sphinx refers to ``sphinx_themes`` entry_points.
+ This uses the ``sphinx.html_themes`` entry point from package metadata.
"""
- # look up for new styled entry_points at first
- theme_entry_points = entry_points(group='sphinx.html_themes')
- try:
- entry_point = theme_entry_points[name]
- self.app.registry.load_extension(self.app, entry_point.module)
- self.app.config.post_init_values()
- return
- except KeyError:
- pass
-
- def find_themes(self, theme_path: str) -> dict[str, str]:
+ for entry_point in entry_points(group='sphinx.html_themes'):
+ if entry_point.name in self._themes:
+ continue # don't overwrite loaded themes
+
+ def _load_theme_closure(
+ # bind variables in the function definition
+ app: Sphinx = self._app,
+ theme_module: str = entry_point.module,
+ ) -> None:
+ app.setup_extension(theme_module)
+ _config_post_init(app, app.config)
+
+ self._entry_point_themes[entry_point.name] = _load_theme_closure
+
+ @staticmethod
+ def _find_themes(theme_path: str) -> dict[str, str]:
"""Search themes from specified directory."""
themes: dict[str, str] = {}
if not path.isdir(theme_path):
@@ -209,24 +216,343 @@ class HTMLThemeFactory:
for entry in os.listdir(theme_path):
pathname = path.join(theme_path, entry)
if path.isfile(pathname) and entry.lower().endswith('.zip'):
- if is_archived_theme(pathname):
+ if _is_archived_theme(pathname):
name = entry[:-4]
themes[name] = pathname
else:
- logger.warning(__('file %r on theme path is not a valid '
- 'zipfile or contains no theme'), entry)
+ logger.warning(
+ __(
+ 'file %r on theme path is not a valid '
+ 'zipfile or contains no theme'
+ ),
+ entry,
+ )
else:
- if path.isfile(path.join(pathname, THEMECONF)):
+ toml_path = path.join(pathname, _THEME_TOML)
+ conf_path = path.join(pathname, _THEME_CONF)
+ if path.isfile(toml_path) or path.isfile(conf_path):
themes[entry] = pathname
return themes
def create(self, name: str) -> Theme:
"""Create an instance of theme."""
- if name not in self.themes:
- self.load_extra_theme(name)
+ if name in self._entry_point_themes:
+ # Load a deferred theme from an entry point
+ entry_point_loader = self._entry_point_themes[name]
+ entry_point_loader()
+ if name not in self._themes:
+ raise ThemeError(__('no theme named %r found (missing theme.toml?)') % name)
+
+ themes, theme_dirs, tmp_dirs = _load_theme_with_ancestors(
+ name,
+ self._themes,
+ self._entry_point_themes,
+ )
+ return Theme(name, configs=themes, paths=theme_dirs, tmp_dirs=tmp_dirs)
+
+
+def _is_archived_theme(filename: str, /) -> bool:
+ """Check whether the specified file is an archived theme file or not."""
+ try:
+ with ZipFile(filename) as f:
+ namelist = frozenset(f.namelist())
+ return _THEME_TOML in namelist or _THEME_CONF in namelist
+ except Exception:
+ return False
+
+
+def _load_theme_with_ancestors(
+ name: str,
+ theme_paths: dict[str, str],
+ entry_point_themes: dict[str, Callable[[], None]],
+ /,
+) -> tuple[dict[str, _ConfigFile], list[str], list[str]]:
+ themes: dict[str, _ConfigFile] = {}
+ theme_dirs: list[str] = []
+ tmp_dirs: list[str] = []
+
+ # having 10+ theme ancestors is ludicrous
+ for _ in range(10):
+ inherit, theme_dir, tmp_dir, config = _load_theme(name, theme_paths[name])
+ theme_dirs.append(theme_dir)
+ if tmp_dir is not None:
+ tmp_dirs.append(tmp_dir)
+ themes[name] = config
+ if inherit == 'none':
+ break
+ if inherit in themes:
+ msg = __('The %r theme has circular inheritance') % name
+ raise ThemeError(msg)
+ if inherit in entry_point_themes and inherit not in theme_paths:
+ # Load a deferred theme from an entry point
+ entry_point_loader = entry_point_themes[inherit]
+ entry_point_loader()
+ if inherit not in theme_paths:
+ msg = __(
+ 'The %r theme inherits from %r, which is not a loaded theme. '
+ 'Loaded themes are: %s'
+ ) % (name, inherit, ', '.join(sorted(theme_paths)))
+ raise ThemeError(msg)
+ name = inherit
+ else:
+ msg = __('The %r theme has too many ancestors') % name
+ raise ThemeError(msg)
+
+ return themes, theme_dirs, tmp_dirs
+
+
+def _load_theme(name: str, theme_path: str, /) -> tuple[str, str, str | None, _ConfigFile]:
+ if path.isdir(theme_path):
+ # already a directory, do nothing
+ tmp_dir = None
+ theme_dir = theme_path
+ else:
+ # extract the theme to a temp directory
+ tmp_dir = tempfile.mkdtemp('sxt')
+ theme_dir = path.join(tmp_dir, name)
+ _extract_zip(theme_path, theme_dir)
+
+ if path.isfile(toml_path := path.join(theme_dir, _THEME_TOML)):
+ _cfg_table = _load_theme_toml(toml_path)
+ inherit = _validate_theme_toml(_cfg_table, name)
+ config = _convert_theme_toml(_cfg_table)
+ elif path.isfile(conf_path := path.join(theme_dir, _THEME_CONF)):
+ _cfg_parser = _load_theme_conf(conf_path)
+ inherit = _validate_theme_conf(_cfg_parser, name)
+ config = _convert_theme_conf(_cfg_parser)
+ else:
+ raise ThemeError(__('no theme configuration file found in %r') % theme_dir)
+
+ return inherit, theme_dir, tmp_dir, config
+
+
+def _extract_zip(filename: str, target_dir: str, /) -> None:
+ """Extract zip file to target directory."""
+ ensuredir(target_dir)
+
+ with ZipFile(filename) as archive:
+ for name in archive.namelist():
+ if name.endswith('/'):
+ continue
+ entry = path.join(target_dir, name)
+ ensuredir(path.dirname(entry))
+ with open(path.join(entry), 'wb') as fp:
+ fp.write(archive.read(name))
- if name not in self.themes:
- raise ThemeError(__('no theme named %r found (missing theme.conf?)') % name)
- return Theme(name, self.themes[name], factory=self)
+def _load_theme_toml(config_file_path: str, /) -> _ThemeToml:
+ with open(config_file_path, encoding='utf-8') as f:
+ config_text = f.read()
+ c = tomllib.loads(config_text)
+ return {s: c[s] for s in ('theme', 'options') if s in c} # type: ignore[return-value]
+
+
+def _validate_theme_toml(cfg: _ThemeToml, name: str) -> str:
+ if 'theme' not in cfg:
+ msg = __('theme %r doesn\'t have the "theme" table') % name
+ raise ThemeError(msg)
+ theme = cfg['theme']
+ if not isinstance(theme, dict):
+ msg = __('The %r theme "[theme]" table is not a table') % name
+ raise ThemeError(msg)
+ inherit = theme.get('inherit', '')
+ if not inherit:
+ msg = __('The %r theme must define the "theme.inherit" setting') % name
+ raise ThemeError(msg)
+ if 'options' in cfg:
+ if not isinstance(cfg['options'], dict):
+ msg = __('The %r theme "[options]" table is not a table') % name
+ raise ThemeError(msg)
+ return inherit
+
+
+def _convert_theme_toml(cfg: _ThemeToml, /) -> _ConfigFile:
+ theme = cfg['theme']
+ if 'stylesheets' in theme:
+ stylesheets: tuple[str, ...] | None = tuple(theme['stylesheets'])
+ else:
+ stylesheets = None
+ if 'sidebars' in theme:
+ sidebar_templates: tuple[str, ...] | None = tuple(theme['sidebars'])
+ else:
+ sidebar_templates = None
+ pygments_table = theme.get('pygments_style', {})
+ if isinstance(pygments_table, str):
+ hint = f'pygments_style = {{ default = "{pygments_table}" }}'
+ msg = __('The "theme.pygments_style" setting must be a table. Hint: "%s"') % hint
+ raise ThemeError(msg)
+ pygments_style_default: str | None = pygments_table.get('default')
+ pygments_style_dark: str | None = pygments_table.get('dark')
+ return _ConfigFile(
+ stylesheets=stylesheets,
+ sidebar_templates=sidebar_templates,
+ pygments_style_default=pygments_style_default,
+ pygments_style_dark=pygments_style_dark,
+ options=cfg.get('options', {}),
+ )
+
+
+def _load_theme_conf(config_file_path: str, /) -> configparser.RawConfigParser:
+ c = configparser.RawConfigParser()
+ c.read(config_file_path, encoding='utf-8')
+ return c
+
+
+def _validate_theme_conf(cfg: configparser.RawConfigParser, name: str) -> str:
+ if not cfg.has_section('theme'):
+ raise ThemeError(__('theme %r doesn\'t have the "theme" table') % name)
+ if inherit := cfg.get('theme', 'inherit', fallback=None):
+ return inherit
+ msg = __('The %r theme must define the "theme.inherit" setting') % name
+ raise ThemeError(msg)
+
+
+def _convert_theme_conf(cfg: configparser.RawConfigParser, /) -> _ConfigFile:
+ if stylesheet := cfg.get('theme', 'stylesheet', fallback=''):
+ stylesheets: tuple[str, ...] | None = tuple(map(str.strip, stylesheet.split(',')))
+ else:
+ stylesheets = None
+ if sidebar := cfg.get('theme', 'sidebars', fallback=''):
+ sidebar_templates: tuple[str, ...] | None = tuple(map(str.strip, sidebar.split(',')))
+ else:
+ sidebar_templates = None
+ pygments_style_default: str | None = cfg.get('theme', 'pygments_style', fallback=None)
+ pygments_style_dark: str | None = cfg.get('theme', 'pygments_dark_style', fallback=None)
+ options = dict(cfg.items('options')) if cfg.has_section('options') else {}
+ return _ConfigFile(
+ stylesheets=stylesheets,
+ sidebar_templates=sidebar_templates,
+ pygments_style_default=pygments_style_default,
+ pygments_style_dark=pygments_style_dark,
+ options=options,
+ )
+
+
+class _ConfigFile:
+ __slots__ = (
+ 'stylesheets',
+ 'sidebar_templates',
+ 'pygments_style_default',
+ 'pygments_style_dark',
+ 'options',
+ )
+
+ def __init__(
+ self,
+ stylesheets: tuple[str, ...] | None,
+ sidebar_templates: tuple[str, ...] | None,
+ pygments_style_default: str | None,
+ pygments_style_dark: str | None,
+ options: dict[str, str],
+ ) -> None:
+ self.stylesheets: tuple[str, ...] | None = stylesheets
+ self.sidebar_templates: tuple[str, ...] | None = sidebar_templates
+ self.pygments_style_default: str | None = pygments_style_default
+ self.pygments_style_dark: str | None = pygments_style_dark
+ self.options: dict[str, str] = options.copy()
+
+ def __repr__(self) -> str:
+ return (
+ f'{self.__class__.__qualname__}('
+ f'stylesheets={self.stylesheets!r}, '
+ f'sidebar_templates={self.sidebar_templates!r}, '
+ f'pygments_style_default={self.pygments_style_default!r}, '
+ f'pygments_style_dark={self.pygments_style_dark!r}, '
+ f'options={self.options!r})'
+ )
+
+ def __eq__(self, other: object) -> bool:
+ if isinstance(other, _ConfigFile):
+ return (
+ self.stylesheets == other.stylesheets
+ and self.sidebar_templates == other.sidebar_templates
+ and self.pygments_style_default == other.pygments_style_default
+ and self.pygments_style_dark == other.pygments_style_dark
+ and self.options == other.options
+ )
+ return NotImplemented
+
+ def __hash__(self) -> int:
+ return hash((
+ self.__class__.__qualname__,
+ self.stylesheets,
+ self.sidebar_templates,
+ self.pygments_style_default,
+ self.pygments_style_dark,
+ self.options,
+ ))
+
+
+def _migrate_conf_to_toml(argv: list[str]) -> int:
+ if argv[:1] != ['conf_to_toml']:
+ raise SystemExit(0)
+ argv = argv[1:]
+ if len(argv) != 1:
+ print('Usage: python -m sphinx.theming conf_to_toml <theme path>') # NoQA: T201
+ raise SystemExit(1)
+ theme_dir = path.realpath(argv[0])
+ conf_path = path.join(theme_dir, _THEME_CONF)
+ if not path.isdir(theme_dir) or not path.isfile(conf_path):
+ print( # NoQA: T201
+ f'{theme_dir!r} must be a path to a theme directory containing a "theme.conf" file'
+ )
+ return 1
+ _cfg_parser = _load_theme_conf(conf_path)
+ if not _cfg_parser.has_section('theme'):
+ print('The "theme" table is missing.') # NoQA: T201
+ return 1
+ inherit = _cfg_parser.get('theme', 'inherit', fallback=None)
+ if not inherit:
+ print('The "theme.inherit" setting is missing.') # NoQA: T201
+ return 1
+
+ toml_lines = [
+ '[theme]',
+ f'inherit = "{inherit}"',
+ ]
+
+ stylesheet = _cfg_parser.get('theme', 'stylesheet', fallback=...)
+ if stylesheet == '':
+ toml_lines.append('stylesheets = []')
+ elif stylesheet is not ...:
+ toml_lines.append('stylesheets = [')
+ toml_lines.extend(f' "{s}",' for s in map(str.strip, stylesheet.split(',')))
+ toml_lines.append(']')
+
+ sidebar = _cfg_parser.get('theme', 'sidebars', fallback=...)
+ if sidebar == '':
+ toml_lines.append('sidebars = []')
+ elif sidebar is not ...:
+ toml_lines.append('sidebars = [')
+ toml_lines += [f' "{s}",' for s in map(str.strip, sidebar.split(','))]
+ toml_lines.append(']')
+
+ styles = []
+ default = _cfg_parser.get('theme', 'pygments_style', fallback=...)
+ if default is not ...:
+ styles.append(f'default = "{default}"')
+ dark = _cfg_parser.get('theme', 'pygments_dark_style', fallback=...)
+ if dark is not ...:
+ styles.append(f'dark = "{dark}"')
+ if styles:
+ toml_lines.append('pygments_style = { ' + ', '.join(styles) + ' }')
+
+ if _cfg_parser.has_section('options'):
+ toml_lines.append('')
+ toml_lines.append('[options]')
+ toml_lines += [
+ f'{key} = "{d}"'
+ for key, default in _cfg_parser.items('options')
+ if (d := default.replace('"', r'\"')) or True
+ ]
+
+ toml_path = path.join(theme_dir, _THEME_TOML)
+ with open(toml_path, 'w', encoding='utf-8') as f:
+ f.write('\n'.join(toml_lines) + '\n')
+ print(f'Written converted settings to {toml_path!r}') # NoQA: T201
+ return 0
+
+
+if __name__ == '__main__':
+ raise SystemExit(_migrate_conf_to_toml(sys.argv[1:]))
diff --git a/sphinx/transforms/__init__.py b/sphinx/transforms/__init__.py
index 8a806cd..d6582f4 100644
--- a/sphinx/transforms/__init__.py
+++ b/sphinx/transforms/__init__.py
@@ -21,7 +21,7 @@ from sphinx.util.i18n import format_date
from sphinx.util.nodes import apply_source_workaround, is_smartquotable
if TYPE_CHECKING:
- from collections.abc import Generator
+ from collections.abc import Iterator
from docutils.nodes import Node, Text
@@ -29,6 +29,7 @@ if TYPE_CHECKING:
from sphinx.config import Config
from sphinx.domains.std import StandardDomain
from sphinx.environment import BuildEnvironment
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -80,7 +81,7 @@ class SphinxTransformer(Transformer):
if not hasattr(self.document.settings, 'env') and self.env:
self.document.settings.env = self.env
- super().apply_transforms()
+ super().apply_transforms() # type: ignore[misc]
else:
# wrap the target node by document node during transforming
try:
@@ -98,6 +99,7 @@ class DefaultSubstitutions(SphinxTransform):
"""
Replace some substitutions if they aren't defined in the document.
"""
+
# run before the default Substitutions
default_priority = 210
@@ -139,6 +141,7 @@ class MoveModuleTargets(SphinxTransform):
XXX Python specific
"""
+
default_priority = 210
def apply(self, **kwargs: Any) -> None:
@@ -161,6 +164,7 @@ class HandleCodeBlocks(SphinxTransform):
"""
Several code block related transformations.
"""
+
default_priority = 210
def apply(self, **kwargs: Any) -> None:
@@ -185,6 +189,7 @@ class AutoNumbering(SphinxTransform):
"""
Register IDs of tables, figures and literal_blocks to assign numbers.
"""
+
default_priority = 210
def apply(self, **kwargs: Any) -> None:
@@ -201,6 +206,7 @@ class SortIds(SphinxTransform):
"""
Sort section IDs so that the "id[0-9]+" one comes last.
"""
+
default_priority = 261
def apply(self, **kwargs: Any) -> None:
@@ -222,6 +228,7 @@ class ApplySourceWorkaround(SphinxTransform):
"""
Update source and rawsource attributes
"""
+
default_priority = 10
def apply(self, **kwargs: Any) -> None:
@@ -234,6 +241,7 @@ class AutoIndexUpgrader(SphinxTransform):
"""
Detect old style (4 column based indices) and automatically upgrade to new style.
"""
+
default_priority = 210
def apply(self, **kwargs: Any) -> None:
@@ -244,13 +252,14 @@ class AutoIndexUpgrader(SphinxTransform):
logger.warning(msg, location=node)
for i, entry in enumerate(node['entries']):
if len(entry) == 4:
- node['entries'][i] = entry + (None,)
+ node['entries'][i] = (*entry, None)
class ExtraTranslatableNodes(SphinxTransform):
"""
Make nodes translatable
"""
+
default_priority = 10
def apply(self, **kwargs: Any) -> None:
@@ -270,6 +279,7 @@ class UnreferencedFootnotesDetector(SphinxTransform):
"""
Detect unreferenced footnotes and emit warnings
"""
+
default_priority = 200
def apply(self, **kwargs: Any) -> None:
@@ -291,6 +301,7 @@ class UnreferencedFootnotesDetector(SphinxTransform):
class DoctestTransform(SphinxTransform):
"""Set "doctest" style to each doctest_block node"""
+
default_priority = 500
def apply(self, **kwargs: Any) -> None:
@@ -300,6 +311,7 @@ class DoctestTransform(SphinxTransform):
class FilterSystemMessages(SphinxTransform):
"""Filter system messages from a doctree."""
+
default_priority = 999
def apply(self, **kwargs: Any) -> None:
@@ -315,6 +327,7 @@ class SphinxContentsFilter(ContentsFilter):
Used with BuildEnvironment.add_toc_from() to discard cross-file links
within table-of-contents link nodes.
"""
+
visit_pending_xref = ContentsFilter.ignore_node_but_process_children
def visit_image(self, node: nodes.image) -> None:
@@ -327,6 +340,7 @@ class SphinxSmartQuotes(SmartQuotes, SphinxTransform):
refs: sphinx.parsers.RSTParser
"""
+
default_priority = 750
def apply(self, **kwargs: Any) -> None:
@@ -362,7 +376,7 @@ class SphinxSmartQuotes(SmartQuotes, SphinxTransform):
for tag in normalize_language_tag(language)
)
- def get_tokens(self, txtnodes: list[Text]) -> Generator[tuple[str, str], None, None]:
+ def get_tokens(self, txtnodes: list[Text]) -> Iterator[tuple[str, str]]:
# A generator that yields ``(texttype, nodetext)`` tuples for a list
# of "Text" nodes (interface to ``smartquotes.educate_tokens()``).
for txtnode in txtnodes:
@@ -377,32 +391,16 @@ class SphinxSmartQuotes(SmartQuotes, SphinxTransform):
class DoctreeReadEvent(SphinxTransform):
"""Emit :event:`doctree-read` event."""
+
default_priority = 880
def apply(self, **kwargs: Any) -> None:
self.app.emit('doctree-read', self.document)
-class ManpageLink(SphinxTransform):
- """Find manpage section numbers and names"""
- default_priority = 999
-
- def apply(self, **kwargs: Any) -> None:
- for node in self.document.findall(addnodes.manpage):
- manpage = ' '.join([str(x) for x in node.children
- if isinstance(x, nodes.Text)])
- pattern = r'^(?P<path>(?P<page>.+)[\(\.](?P<section>[1-9]\w*)?\)?)$'
- info = {'path': manpage,
- 'page': manpage,
- 'section': ''}
- r = re.match(pattern, manpage)
- if r:
- info = r.groupdict()
- node.attributes.update(info)
-
-
class GlossarySorter(SphinxTransform):
"""Sort glossaries that have the ``sorted`` flag."""
+
# This must be done after i18n, therefore not right
# away in the glossary directive.
default_priority = 500
@@ -491,7 +489,7 @@ def _sort_key(node: nodes.Node) -> int:
raise ValueError(msg)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_transform(ApplySourceWorkaround)
app.add_transform(ExtraTranslatableNodes)
app.add_transform(DefaultSubstitutions)
@@ -505,7 +503,6 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_transform(UnreferencedFootnotesDetector)
app.add_transform(SphinxSmartQuotes)
app.add_transform(DoctreeReadEvent)
- app.add_transform(ManpageLink)
app.add_transform(GlossarySorter)
app.add_transform(ReorderConsecutiveTargetAndIndexNodes)
diff --git a/sphinx/transforms/compact_bullet_list.py b/sphinx/transforms/compact_bullet_list.py
index 149b5e0..acd8634 100644
--- a/sphinx/transforms/compact_bullet_list.py
+++ b/sphinx/transforms/compact_bullet_list.py
@@ -13,6 +13,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
class RefOnlyListChecker(nodes.GenericNodeVisitor):
@@ -29,10 +30,8 @@ class RefOnlyListChecker(nodes.GenericNodeVisitor):
pass
def visit_list_item(self, node: nodes.list_item) -> None:
- children: list[Node] = []
- for child in node.children:
- if not isinstance(child, nodes.Invisible):
- children.append(child)
+ children: list[Node] = [child for child in node.children
+ if not isinstance(child, nodes.Invisible)]
if len(children) != 1:
raise nodes.NodeFound
if not isinstance(children[0], nodes.paragraph):
@@ -55,6 +54,7 @@ class RefOnlyBulletListTransform(SphinxTransform):
Specifically implemented for 'Indices and Tables' section, which looks
odd when html_compact_lists is false.
"""
+
default_priority = 100
def apply(self, **kwargs: Any) -> None:
@@ -81,7 +81,7 @@ class RefOnlyBulletListTransform(SphinxTransform):
item.replace(para, compact_para)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_transform(RefOnlyBulletListTransform)
return {
diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py
index d26c279..4f8c353 100644
--- a/sphinx/transforms/i18n.py
+++ b/sphinx/transforms/i18n.py
@@ -33,6 +33,7 @@ if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.config import Config
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -77,7 +78,7 @@ def publish_msgstr(app: Sphinx, source: str, source_path: str, source_line: int,
settings=settings,
)
with contextlib.suppress(IndexError): # empty node
- return doc[0] # type: ignore[return-value]
+ return doc[0]
return doc
finally:
config.rst_prolog = rst_prolog # type: ignore[attr-defined]
@@ -95,6 +96,7 @@ class PreserveTranslatableMessages(SphinxTransform):
"""
Preserve original translatable messages before translation
"""
+
default_priority = 10 # this MUST be invoked before Locale transform
def apply(self, **kwargs: Any) -> None:
@@ -136,7 +138,7 @@ class _NodeUpdater:
if old_name != new_name:
# if name would be changed, replace node names and
# document nameids mapping with new name.
- names = section_node.setdefault('names', [])
+ names: list[str] = section_node.setdefault('names', [])
names.append(new_name)
# Original section name (reference target name) should be kept to refer
# from other nodes which is still not translated or uses explicit target
@@ -181,7 +183,7 @@ class _NodeUpdater:
# replace target's refname to new target name
matcher = NodeMatcher(nodes.target, refname=old_name)
- for old_target in self.document.findall(matcher): # type: nodes.target
+ for old_target in matcher.findall(self.document):
old_target['refname'] = new_name
processed = True
@@ -197,10 +199,8 @@ class _NodeUpdater:
lst.append(new)
is_autofootnote_ref = NodeMatcher(nodes.footnote_reference, auto=Any)
- old_foot_refs: list[nodes.footnote_reference] = [
- *self.node.findall(is_autofootnote_ref)]
- new_foot_refs: list[nodes.footnote_reference] = [
- *self.patch.findall(is_autofootnote_ref)]
+ old_foot_refs = list(is_autofootnote_ref.findall(self.node))
+ new_foot_refs = list(is_autofootnote_ref.findall(self.patch))
self.compare_references(old_foot_refs, new_foot_refs,
__('inconsistent footnote references in translated message.' +
' original: {0}, translated: {1}'))
@@ -239,8 +239,8 @@ class _NodeUpdater:
# * use translated refname for section refname.
# * inline reference "`Python <...>`_" has no 'refname'.
is_refnamed_ref = NodeMatcher(nodes.reference, refname=Any)
- old_refs: list[nodes.reference] = [*self.node.findall(is_refnamed_ref)]
- new_refs: list[nodes.reference] = [*self.patch.findall(is_refnamed_ref)]
+ old_refs = list(is_refnamed_ref.findall(self.node))
+ new_refs = list(is_refnamed_ref.findall(self.patch))
self.compare_references(old_refs, new_refs,
__('inconsistent references in translated message.' +
' original: {0}, translated: {1}'))
@@ -263,10 +263,8 @@ class _NodeUpdater:
def update_refnamed_footnote_references(self) -> None:
# refnamed footnote should use original 'ids'.
is_refnamed_footnote_ref = NodeMatcher(nodes.footnote_reference, refname=Any)
- old_foot_refs: list[nodes.footnote_reference] = [*self.node.findall(
- is_refnamed_footnote_ref)]
- new_foot_refs: list[nodes.footnote_reference] = [*self.patch.findall(
- is_refnamed_footnote_ref)]
+ old_foot_refs = list(is_refnamed_footnote_ref.findall(self.node))
+ new_foot_refs = list(is_refnamed_footnote_ref.findall(self.patch))
refname_ids_map: dict[str, list[str]] = {}
self.compare_references(old_foot_refs, new_foot_refs,
__('inconsistent footnote references in translated message.' +
@@ -281,8 +279,8 @@ class _NodeUpdater:
def update_citation_references(self) -> None:
# citation should use original 'ids'.
is_citation_ref = NodeMatcher(nodes.citation_reference, refname=Any)
- old_cite_refs: list[nodes.citation_reference] = [*self.node.findall(is_citation_ref)]
- new_cite_refs: list[nodes.citation_reference] = [*self.patch.findall(is_citation_ref)]
+ old_cite_refs = list(is_citation_ref.findall(self.node))
+ new_cite_refs = list(is_citation_ref.findall(self.patch))
self.compare_references(old_cite_refs, new_cite_refs,
__('inconsistent citation references in translated message.' +
' original: {0}, translated: {1}'))
@@ -339,6 +337,7 @@ class Locale(SphinxTransform):
"""
Replace translatable nodes with their translated doctree.
"""
+
default_priority = 20
def apply(self, **kwargs: Any) -> None:
@@ -395,7 +394,7 @@ class Locale(SphinxTransform):
msgstr = '::\n\n' + indent(msgstr, ' ' * 3)
patch = publish_msgstr(self.app, msgstr, source,
- node.line, self.config, settings)
+ node.line, self.config, settings) # type: ignore[arg-type]
# FIXME: no warnings about inconsistent references in this part
# XXX doctest and other block markup
if not isinstance(patch, nodes.paragraph):
@@ -409,10 +408,10 @@ class Locale(SphinxTransform):
for _id in node['ids']:
parts = split_term_classifiers(msgstr)
patch = publish_msgstr(
- self.app, parts[0] or '', source, node.line, self.config, settings,
+ self.app, parts[0] or '', source, node.line, self.config, settings, # type: ignore[arg-type]
)
updater.patch = make_glossary_term(
- self.env, patch, parts[1] or '', source, node.line, _id, self.document,
+ self.env, patch, parts[1] or '', source, node.line, _id, self.document, # type: ignore[arg-type]
)
processed = True
@@ -441,11 +440,11 @@ class Locale(SphinxTransform):
# update translatable nodes
if isinstance(node, addnodes.translatable):
- node.apply_translated_message(msg, msgstr) # type: ignore[attr-defined]
+ node.apply_translated_message(msg, msgstr)
continue
# update meta nodes
- if isinstance(node, nodes.meta): # type: ignore[attr-defined]
+ if isinstance(node, nodes.meta):
node['content'] = msgstr
node['translated'] = True
continue
@@ -475,11 +474,11 @@ class Locale(SphinxTransform):
msgstr = msgstr + '\n' + '=' * len(msgstr) * 2
patch = publish_msgstr(self.app, msgstr, source,
- node.line, self.config, settings)
+ node.line, self.config, settings) # type: ignore[arg-type]
# Structural Subelements phase2
if isinstance(node, nodes.title):
# get <title> node that placed as a first child
- patch = patch.next_node()
+ patch = patch.next_node() # type: ignore[assignment]
# ignore unexpected markups in translation message
unexpected: tuple[type[nodes.Element], ...] = (
@@ -538,6 +537,7 @@ class TranslationProgressTotaliser(SphinxTransform):
"""
Calculate the number of translated and untranslated nodes.
"""
+
default_priority = 25 # MUST happen after Locale
def apply(self, **kwargs: Any) -> None:
@@ -546,7 +546,7 @@ class TranslationProgressTotaliser(SphinxTransform):
return
total = translated = 0
- for node in self.document.findall(NodeMatcher(translated=Any)): # type: nodes.Element
+ for node in NodeMatcher(nodes.Element, translated=Any).findall(self.document):
total += 1
if node['translated']:
translated += 1
@@ -561,6 +561,7 @@ class AddTranslationClasses(SphinxTransform):
"""
Add ``translated`` or ``untranslated`` classes to indicate translation status.
"""
+
default_priority = 950
def apply(self, **kwargs: Any) -> None:
@@ -584,19 +585,20 @@ class AddTranslationClasses(SphinxTransform):
'True, False, "translated" or "untranslated"')
raise ConfigError(msg)
- for node in self.document.findall(NodeMatcher(translated=Any)): # type: nodes.Element
+ for node in NodeMatcher(nodes.Element, translated=Any).findall(self.document):
if node['translated']:
if add_translated:
- node.setdefault('classes', []).append('translated')
+ node.setdefault('classes', []).append('translated') # type: ignore[arg-type]
else:
if add_untranslated:
- node.setdefault('classes', []).append('untranslated')
+ node.setdefault('classes', []).append('untranslated') # type: ignore[arg-type]
class RemoveTranslatableInline(SphinxTransform):
"""
Remove inline nodes used for translation as placeholders.
"""
+
default_priority = 999
def apply(self, **kwargs: Any) -> None:
@@ -605,12 +607,12 @@ class RemoveTranslatableInline(SphinxTransform):
return
matcher = NodeMatcher(nodes.inline, translatable=Any)
- for inline in list(self.document.findall(matcher)): # type: nodes.inline
+ for inline in matcher.findall(self.document):
inline.parent.remove(inline)
inline.parent += inline.children
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_transform(PreserveTranslatableMessages)
app.add_transform(Locale)
app.add_transform(TranslationProgressTotaliser)
diff --git a/sphinx/transforms/post_transforms/__init__.py b/sphinx/transforms/post_transforms/__init__.py
index 485f1f1..50b1b53 100644
--- a/sphinx/transforms/post_transforms/__init__.py
+++ b/sphinx/transforms/post_transforms/__init__.py
@@ -3,6 +3,7 @@
from __future__ import annotations
import re
+from itertools import starmap
from typing import TYPE_CHECKING, Any, cast
from docutils import nodes
@@ -22,6 +23,7 @@ if TYPE_CHECKING:
from sphinx.addnodes import pending_xref
from sphinx.application import Sphinx
from sphinx.domains import Domain
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -33,6 +35,7 @@ class SphinxPostTransform(SphinxTransform):
They resolve references, convert images, do special transformation for each output
formats and so on. This class helps to implement these post transforms.
"""
+
builders: tuple[str, ...] = ()
formats: tuple[str, ...] = ()
@@ -44,10 +47,7 @@ class SphinxPostTransform(SphinxTransform):
"""Check this transform working for current builder."""
if self.builders and self.app.builder.name not in self.builders:
return False
- if self.formats and self.app.builder.format not in self.formats:
- return False
-
- return True
+ return not self.formats or self.app.builder.format in self.formats
def run(self, **kwargs: Any) -> None:
"""Main method of post transforms.
@@ -81,7 +81,7 @@ class ReferencesResolver(SphinxPostTransform):
domain = None
try:
- if 'refdomain' in node and node['refdomain']:
+ if node.get('refdomain', False):
# let the domain try to resolve the reference
try:
domain = self.env.domains[node['refdomain']]
@@ -154,7 +154,7 @@ class ReferencesResolver(SphinxPostTransform):
def stringify(name: str, node: Element) -> str:
reftitle = node.get('reftitle', node.astext())
return f':{name}:`{reftitle}`'
- candidates = ' or '.join(stringify(name, role) for name, role in results)
+ candidates = ' or '.join(starmap(stringify, results))
logger.warning(__("more than one target found for 'any' cross-"
'reference %r: could be %s'), target, candidates,
location=node)
@@ -234,6 +234,7 @@ class OnlyNodeTransform(SphinxPostTransform):
class SigElementFallbackTransform(SphinxPostTransform):
"""Fallback various desc_* nodes to inline if translator does not support them."""
+
default_priority = 200
def run(self, **kwargs: Any) -> None:
@@ -276,6 +277,7 @@ class SigElementFallbackTransform(SphinxPostTransform):
class PropagateDescDomain(SphinxPostTransform):
"""Add the domain name of the parent node as a class in each desc_signature node."""
+
default_priority = 200
def run(self, **kwargs: Any) -> None:
@@ -284,7 +286,7 @@ class PropagateDescDomain(SphinxPostTransform):
node['classes'].append(node.parent['domain'])
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_post_transform(ReferencesResolver)
app.add_post_transform(OnlyNodeTransform)
app.add_post_transform(SigElementFallbackTransform)
diff --git a/sphinx/transforms/post_transforms/code.py b/sphinx/transforms/post_transforms/code.py
index cd8abcc..4375b4d 100644
--- a/sphinx/transforms/post_transforms/code.py
+++ b/sphinx/transforms/post_transforms/code.py
@@ -16,6 +16,7 @@ if TYPE_CHECKING:
from docutils.nodes import Node, TextElement
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
class HighlightSetting(NamedTuple):
@@ -32,6 +33,7 @@ class HighlightLanguageTransform(SphinxTransform):
:rst:dir:`highlight` directive. After processing, this transform
removes ``highlightlang`` node from doctree.
"""
+
default_priority = 400
def apply(self, **kwargs: Any) -> None:
@@ -88,6 +90,7 @@ class TrimDoctestFlagsTransform(SphinxTransform):
see :confval:`trim_doctest_flags` for more information.
"""
+
default_priority = HighlightLanguageTransform.default_priority + 1
def apply(self, **kwargs: Any) -> None:
@@ -128,7 +131,7 @@ class TrimDoctestFlagsTransform(SphinxTransform):
return False
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_post_transform(HighlightLanguageTransform)
app.add_post_transform(TrimDoctestFlagsTransform)
diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py
index e220df0..18ad51d 100644
--- a/sphinx/transforms/post_transforms/images.py
+++ b/sphinx/transforms/post_transforms/images.py
@@ -19,6 +19,7 @@ from sphinx.util.osutil import ensuredir
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
logger = logging.getLogger(__name__)
@@ -47,7 +48,7 @@ class ImageDownloader(BaseImageConverter):
default_priority = 100
def match(self, node: nodes.image) -> bool:
- if self.app.builder.supported_image_types == []:
+ if not self.app.builder.supported_image_types:
return False
if self.app.builder.supported_remote_images:
return False
@@ -61,21 +62,23 @@ class ImageDownloader(BaseImageConverter):
if basename == '' or len(basename) > MAX_FILENAME_LEN:
filename, ext = os.path.splitext(node['uri'])
basename = sha1(filename.encode(), usedforsecurity=False).hexdigest() + ext
- basename = re.sub(CRITICAL_PATH_CHAR_RE, "_", basename)
+ basename = CRITICAL_PATH_CHAR_RE.sub("_", basename)
- dirname = node['uri'].replace('://', '/').translate({ord("?"): "/",
- ord("&"): "/"})
- if len(dirname) > MAX_FILENAME_LEN:
- dirname = sha1(dirname.encode(), usedforsecurity=False).hexdigest()
- ensuredir(os.path.join(self.imagedir, dirname))
- path = os.path.join(self.imagedir, dirname, basename)
+ uri_hash = sha1(node['uri'].encode(), usedforsecurity=False).hexdigest()
+ ensuredir(os.path.join(self.imagedir, uri_hash))
+ path = os.path.join(self.imagedir, uri_hash, basename)
headers = {}
if os.path.exists(path):
timestamp: float = ceil(os.stat(path).st_mtime)
headers['If-Modified-Since'] = epoch_to_rfc1123(timestamp)
- r = requests.get(node['uri'], headers=headers)
+ config = self.app.config
+ r = requests.get(
+ node['uri'], headers=headers,
+ _user_agent=config.user_agent,
+ _tls_info=(config.tls_verify, config.tls_cacerts),
+ )
if r.status_code >= 400:
logger.warning(__('Could not fetch remote image: %s [%d]') %
(node['uri'], r.status_code))
@@ -95,7 +98,7 @@ class ImageDownloader(BaseImageConverter):
if mimetype != '*' and os.path.splitext(basename)[1] == '':
# append a suffix if URI does not contain suffix
ext = get_image_extension(mimetype)
- newpath = os.path.join(self.imagedir, dirname, basename + ext)
+ newpath = os.path.join(self.imagedir, uri_hash, basename + ext)
os.replace(path, newpath)
self.app.env.original_image_uri.pop(path)
self.app.env.original_image_uri[newpath] = node['uri']
@@ -112,7 +115,7 @@ class DataURIExtractor(BaseImageConverter):
default_priority = 150
def match(self, node: nodes.image) -> bool:
- if self.app.builder.supported_remote_images == []:
+ if not self.app.builder.supported_remote_images:
return False
if self.app.builder.supported_data_uri_images is True:
return False
@@ -143,7 +146,7 @@ class DataURIExtractor(BaseImageConverter):
def get_filename_for(filename: str, mimetype: str) -> str:
basename = os.path.basename(filename)
- basename = re.sub(CRITICAL_PATH_CHAR_RE, "_", basename)
+ basename = CRITICAL_PATH_CHAR_RE.sub("_", basename)
return os.path.splitext(basename)[0] + (get_image_extension(mimetype) or '')
@@ -168,6 +171,7 @@ class ImageConverter(BaseImageConverter):
3. Register your image converter to Sphinx using
:py:meth:`.Sphinx.add_post_transform`
"""
+
default_priority = 200
#: The converter is available or not. Will be filled at the first call of
@@ -269,7 +273,7 @@ class ImageConverter(BaseImageConverter):
raise NotImplementedError
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_post_transform(ImageDownloader)
app.add_post_transform(DataURIExtractor)
diff --git a/sphinx/transforms/references.py b/sphinx/transforms/references.py
index 5de3a95..e0dfeb1 100644
--- a/sphinx/transforms/references.py
+++ b/sphinx/transforms/references.py
@@ -10,6 +10,7 @@ from sphinx.transforms import SphinxTransform
if TYPE_CHECKING:
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
class SphinxDanglingReferences(DanglingReferences):
@@ -29,6 +30,7 @@ class SphinxDanglingReferences(DanglingReferences):
class SphinxDomains(SphinxTransform):
"""Collect objects to Sphinx domains for cross references."""
+
default_priority = 850
def apply(self, **kwargs: Any) -> None:
@@ -36,7 +38,7 @@ class SphinxDomains(SphinxTransform):
domain.process_doc(self.env, self.env.docname, self.document)
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_transform(SphinxDanglingReferences)
app.add_transform(SphinxDomains)
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index 69b2848..54ddc7e 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -20,8 +20,8 @@ from sphinx.util import index_entries as _index_entries
from sphinx.util import logging
from sphinx.util import osutil as _osutil
from sphinx.util.console import strip_colors # NoQA: F401
-from sphinx.util.matching import patfilter # noqa: F401
-from sphinx.util.nodes import ( # noqa: F401
+from sphinx.util.matching import patfilter # NoQA: F401
+from sphinx.util.nodes import ( # NoQA: F401
caption_ref_re,
explicit_title_re,
nested_parse_with_titles,
@@ -30,7 +30,7 @@ from sphinx.util.nodes import ( # noqa: F401
# import other utilities; partly for backwards compatibility, so don't
# prune unused ones indiscriminately
-from sphinx.util.osutil import ( # noqa: F401
+from sphinx.util.osutil import ( # NoQA: F401
SEP,
copyfile,
copytimes,
@@ -68,6 +68,7 @@ class FilenameUniqDict(dict):
interpreted as filenames, and keeps track of a set of docnames they
appear in. Used for images and downloadable files in the environment.
"""
+
def __init__(self) -> None:
self._existing: set[str] = set()
@@ -104,7 +105,7 @@ class FilenameUniqDict(dict):
self._existing = state
-def _md5(data=b'', **_kw):
+def _md5(data: bytes = b'', **_kw: Any) -> hashlib._Hash:
"""Deprecated wrapper around hashlib.md5
To be removed in Sphinx 9.0
@@ -112,7 +113,7 @@ def _md5(data=b'', **_kw):
return hashlib.md5(data, usedforsecurity=False)
-def _sha1(data=b'', **_kw):
+def _sha1(data: bytes = b'', **_kw: Any) -> hashlib._Hash:
"""Deprecated wrapper around hashlib.sha1
To be removed in Sphinx 9.0
@@ -178,6 +179,7 @@ class Tee:
"""
File-like object writing to two streams.
"""
+
def __init__(self, stream1: IO, stream2: IO) -> None:
self.stream1 = stream1
self.stream2 = stream2
@@ -202,7 +204,7 @@ def parselinenos(spec: str, total: int) -> list[int]:
for part in parts:
try:
begend = part.strip().split('-')
- if ['', ''] == begend:
+ if begend == ['', '']:
raise ValueError
if len(begend) == 1:
items.append(int(begend[0]) - 1)
@@ -256,7 +258,7 @@ def isurl(url: str) -> bool:
return bool(url) and '://' in url
-def _xml_name_checker():
+def _xml_name_checker() -> re.Pattern[str]:
# to prevent import cycles
from sphinx.builders.epub3 import _XML_NAME_PATTERN
@@ -264,7 +266,7 @@ def _xml_name_checker():
# deprecated name -> (object to return, canonical path or empty string)
-_DEPRECATED_OBJECTS = {
+_DEPRECATED_OBJECTS: dict[str, tuple[Any, str] | tuple[Any, str, tuple[int, int]]] = {
'path_stabilize': (_osutil.path_stabilize, 'sphinx.util.osutil.path_stabilize'),
'display_chunk': (_display.display_chunk, 'sphinx.util.display.display_chunk'),
'status_iterator': (_display.status_iterator, 'sphinx.util.display.status_iterator'),
@@ -285,13 +287,15 @@ _DEPRECATED_OBJECTS = {
}
-def __getattr__(name):
+def __getattr__(name: str) -> Any:
if name not in _DEPRECATED_OBJECTS:
msg = f'module {__name__!r} has no attribute {name!r}'
raise AttributeError(msg)
from sphinx.deprecation import _deprecation_warning
- deprecated_object, canonical_name = _DEPRECATED_OBJECTS[name]
- _deprecation_warning(__name__, name, canonical_name, remove=(8, 0))
+ info = _DEPRECATED_OBJECTS[name]
+ deprecated_object, canonical_name = info[:2]
+ remove = info[2] if len(info) == 3 else (8, 0)
+ _deprecation_warning(__name__, name, canonical_name, remove=remove)
return deprecated_object
diff --git a/sphinx/util/_io.py b/sphinx/util/_io.py
new file mode 100644
index 0000000..3689d9e
--- /dev/null
+++ b/sphinx/util/_io.py
@@ -0,0 +1,34 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+from sphinx.util.console import strip_escape_sequences
+
+if TYPE_CHECKING:
+ from typing import Protocol
+
+ class SupportsWrite(Protocol):
+ def write(self, text: str, /) -> int | None:
+ ...
+
+
+class TeeStripANSI:
+ """File-like object writing to two streams."""
+
+ def __init__(
+ self,
+ stream_term: SupportsWrite,
+ stream_file: SupportsWrite,
+ ) -> None:
+ self.stream_term = stream_term
+ self.stream_file = stream_file
+
+ def write(self, text: str, /) -> None:
+ self.stream_term.write(text)
+ self.stream_file.write(strip_escape_sequences(text))
+
+ def flush(self) -> None:
+ if hasattr(self.stream_term, 'flush'):
+ self.stream_term.flush()
+ if hasattr(self.stream_file, 'flush'):
+ self.stream_file.flush()
diff --git a/sphinx/util/_pathlib.py b/sphinx/util/_pathlib.py
index 59980e9..8bb1f31 100644
--- a/sphinx/util/_pathlib.py
+++ b/sphinx/util/_pathlib.py
@@ -5,6 +5,7 @@ from __future__ import annotations
import sys
import warnings
from pathlib import Path, PosixPath, PurePath, WindowsPath
+from typing import Any
from sphinx.deprecation import RemovedInSphinx80Warning
@@ -21,34 +22,36 @@ _MSG = (
if sys.platform == 'win32':
class _StrPath(WindowsPath):
- def replace(self, old, new, count=-1, /):
+ def replace( # type: ignore[override]
+ self, old: str, new: str, count: int = -1, /,
+ ) -> str:
# replace exists in both Path and str;
# in Path it makes filesystem changes, so we use the safer str version
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return self.__str__().replace(old, new, count)
- def __getattr__(self, item):
+ def __getattr__(self, item: str) -> Any:
if item in _STR_METHODS:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return getattr(self.__str__(), item)
msg = f'{_PATH_NAME!r} has no attribute {item!r}'
raise AttributeError(msg)
- def __add__(self, other):
+ def __add__(self, other: str) -> str:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return self.__str__() + other
- def __bool__(self):
+ def __bool__(self) -> bool:
if not self.__str__():
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return False
return True
- def __contains__(self, item):
+ def __contains__(self, item: str) -> bool:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return item in self.__str__()
- def __eq__(self, other):
+ def __eq__(self, other: object) -> bool:
if isinstance(other, PurePath):
return super().__eq__(other)
if isinstance(other, str):
@@ -56,46 +59,48 @@ if sys.platform == 'win32':
return self.__str__() == other
return NotImplemented
- def __hash__(self):
+ def __hash__(self) -> int:
return super().__hash__()
- def __getitem__(self, item):
+ def __getitem__(self, item: int | slice) -> str:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return self.__str__()[item]
- def __len__(self):
+ def __len__(self) -> int:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return len(self.__str__())
else:
class _StrPath(PosixPath):
- def replace(self, old, new, count=-1, /):
+ def replace( # type: ignore[override]
+ self, old: str, new: str, count: int = -1, /,
+ ) -> str:
# replace exists in both Path and str;
# in Path it makes filesystem changes, so we use the safer str version
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return self.__str__().replace(old, new, count)
- def __getattr__(self, item):
+ def __getattr__(self, item: str) -> Any:
if item in _STR_METHODS:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return getattr(self.__str__(), item)
msg = f'{_PATH_NAME!r} has no attribute {item!r}'
raise AttributeError(msg)
- def __add__(self, other):
+ def __add__(self, other: str) -> str:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return self.__str__() + other
- def __bool__(self):
+ def __bool__(self) -> bool:
if not self.__str__():
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return False
return True
- def __contains__(self, item):
+ def __contains__(self, item: str) -> bool:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return item in self.__str__()
- def __eq__(self, other):
+ def __eq__(self, other: object) -> bool:
if isinstance(other, PurePath):
return super().__eq__(other)
if isinstance(other, str):
@@ -103,13 +108,13 @@ else:
return self.__str__() == other
return NotImplemented
- def __hash__(self):
+ def __hash__(self) -> int:
return super().__hash__()
- def __getitem__(self, item):
+ def __getitem__(self, item: int | slice) -> str:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return self.__str__()[item]
- def __len__(self):
+ def __len__(self) -> int:
warnings.warn(_MSG, RemovedInSphinx80Warning, stacklevel=2)
return len(self.__str__())
diff --git a/sphinx/util/build_phase.py b/sphinx/util/build_phase.py
index 7f80aa5..76e94a9 100644
--- a/sphinx/util/build_phase.py
+++ b/sphinx/util/build_phase.py
@@ -5,6 +5,7 @@ from enum import IntEnum
class BuildPhase(IntEnum):
"""Build phase of Sphinx application."""
+
INITIALIZATION = 1
READING = 2
CONSISTENCY_CHECK = 3
diff --git a/sphinx/util/cfamily.py b/sphinx/util/cfamily.py
index a3fdbe3..c887983 100644
--- a/sphinx/util/cfamily.py
+++ b/sphinx/util/cfamily.py
@@ -12,6 +12,8 @@ from sphinx import addnodes
from sphinx.util import logging
if TYPE_CHECKING:
+ from collections.abc import Sequence
+
from docutils.nodes import TextElement
from sphinx.config import Config
@@ -86,7 +88,7 @@ class NoOldIdError(Exception):
class ASTBaseBase:
- def __eq__(self, other: Any) -> bool:
+ def __eq__(self, other: object) -> bool:
if type(self) is not type(other):
return False
try:
@@ -107,7 +109,7 @@ class ASTBaseBase:
raise NotImplementedError(repr(self))
def __str__(self) -> str:
- return self._stringify(lambda ast: str(ast))
+ return self._stringify(str)
def get_display_string(self) -> str:
return self._stringify(lambda ast: ast.get_display_string())
@@ -143,6 +145,11 @@ class ASTGnuAttribute(ASTBaseBase):
self.name = name
self.args = args
+ def __eq__(self, other: object) -> bool:
+ if type(other) is not ASTGnuAttribute:
+ return NotImplemented
+ return self.name == other.name and self.args == other.args
+
def _stringify(self, transform: StringifyTransform) -> str:
res = [self.name]
if self.args:
@@ -202,6 +209,11 @@ class ASTAttributeList(ASTBaseBase):
def __init__(self, attrs: list[ASTAttribute]) -> None:
self.attrs = attrs
+ def __eq__(self, other: object) -> bool:
+ if type(other) is not ASTAttributeList:
+ return NotImplemented
+ return self.attrs == other.attrs
+
def __len__(self) -> int:
return len(self.attrs)
@@ -265,14 +277,11 @@ class BaseParser:
for e in errors:
if len(e[1]) > 0:
indent = ' '
- result.append(e[1])
- result.append(':\n')
+ result.extend((e[1], ':\n'))
for line in str(e[0]).split('\n'):
if len(line) == 0:
continue
- result.append(indent)
- result.append(line)
- result.append('\n')
+ result.extend((indent, line, '\n'))
else:
result.append(str(e[0]))
return DefinitionError(''.join(result))
@@ -293,8 +302,7 @@ class BaseParser:
'Invalid %s declaration: %s [error at %d]\n %s\n %s' %
(self.language, msg, self.pos, self.definition, indicator))
errors.append((exMain, "Main error"))
- for err in self.otherErrors:
- errors.append((err, "Potential other error"))
+ errors.extend((err, "Potential other error") for err in self.otherErrors)
self.otherErrors = []
raise self._make_multi_error(errors, '')
@@ -369,11 +377,11 @@ class BaseParser:
################################################################################
@property
- def id_attributes(self):
+ def id_attributes(self) -> Sequence[str]:
raise NotImplementedError
@property
- def paren_attributes(self):
+ def paren_attributes(self) -> Sequence[str]:
raise NotImplementedError
def _parse_balanced_token_seq(self, end: list[str]) -> str:
diff --git a/sphinx/util/console.py b/sphinx/util/console.py
index 0fc9450..4257056 100644
--- a/sphinx/util/console.py
+++ b/sphinx/util/console.py
@@ -6,6 +6,37 @@ import os
import re
import shutil
import sys
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from typing import Final
+
+ # fmt: off
+ def reset(text: str) -> str: ... # NoQA: E704
+ def bold(text: str) -> str: ... # NoQA: E704
+ def faint(text: str) -> str: ... # NoQA: E704
+ def standout(text: str) -> str: ... # NoQA: E704
+ def underline(text: str) -> str: ... # NoQA: E704
+ def blink(text: str) -> str: ... # NoQA: E704
+
+ def black(text: str) -> str: ... # NoQA: E704
+ def white(text: str) -> str: ... # NoQA: E704
+ def red(text: str) -> str: ... # NoQA: E704
+ def green(text: str) -> str: ... # NoQA: E704
+ def yellow(text: str) -> str: ... # NoQA: E704
+ def blue(text: str) -> str: ... # NoQA: E704
+ def fuchsia(text: str) -> str: ... # NoQA: E704
+ def teal(text: str) -> str: ... # NoQA: E704
+
+ def darkgray(text: str) -> str: ... # NoQA: E704
+ def lightgray(text: str) -> str: ... # NoQA: E704
+ def darkred(text: str) -> str: ... # NoQA: E704
+ def darkgreen(text: str) -> str: ... # NoQA: E704
+ def brown(text: str) -> str: ... # NoQA: E704
+ def darkblue(text: str) -> str: ... # NoQA: E704
+ def purple(text: str) -> str: ... # NoQA: E704
+ def turquoise(text: str) -> str: ... # NoQA: E704
+ # fmt: on
try:
# check if colorama is installed to support color on Windows
@@ -13,8 +44,26 @@ try:
except ImportError:
colorama = None
+_CSI: Final[str] = re.escape('\x1b[') # 'ESC [': Control Sequence Introducer
+
+# Pattern matching ANSI control sequences containing colors.
+_ansi_color_re: Final[re.Pattern[str]] = re.compile(r'\x1b\[(?:\d+;){0,2}\d*m')
+
+_ansi_re: Final[re.Pattern[str]] = re.compile(
+ _CSI
+ + r"""
+ (?:
+ (?:\d+;){0,2}\d*m # ANSI color code ('m' is equivalent to '0m')
+ |
+ [012]?K # ANSI Erase in Line ('K' is equivalent to '0K')
+ )""",
+ re.VERBOSE | re.ASCII,
+)
+"""Pattern matching ANSI CSI colors (SGR) and erase line (EL) sequences.
+
+See :func:`strip_escape_sequences` for details.
+"""
-_ansi_re: re.Pattern[str] = re.compile('\x1b\\[(\\d\\d;){0,2}\\d\\dm')
codes: dict[str, str] = {}
@@ -37,7 +86,7 @@ def term_width_line(text: str) -> str:
return text + '\n'
else:
# codes are not displayed, this must be taken into account
- return text.ljust(_tw + len(text) - len(_ansi_re.sub('', text))) + '\r'
+ return text.ljust(_tw + len(text) - len(strip_escape_sequences(text))) + '\r'
def color_terminal() -> bool:
@@ -55,9 +104,7 @@ def color_terminal() -> bool:
if 'COLORTERM' in os.environ:
return True
term = os.environ.get('TERM', 'dumb').lower()
- if term in ('xterm', 'linux') or 'color' in term:
- return True
- return False
+ return term in ('xterm', 'linux') or 'color' in term
def nocolor() -> None:
@@ -87,41 +134,74 @@ def colorize(name: str, text: str, input_mode: bool = False) -> str:
def strip_colors(s: str) -> str:
- return re.compile('\x1b.*?m').sub('', s)
+ """Remove the ANSI color codes in a string *s*.
+
+ .. caution::
+
+ This function is not meant to be used in production and should only
+ be used for testing Sphinx's output messages.
+
+ .. seealso:: :func:`strip_escape_sequences`
+ """
+ return _ansi_color_re.sub('', s)
+
+
+def strip_escape_sequences(text: str, /) -> str:
+ r"""Remove the ANSI CSI colors and "erase in line" sequences.
+
+ Other `escape sequences `__ (e.g., VT100-specific functions) are not
+ supported and only control sequences *natively* known to Sphinx (i.e.,
+ colors declared in this module and "erase entire line" (``'\x1b[2K'``))
+ are eliminated by this function.
+
+ .. caution::
+
+ This function is not meant to be used in production and should only
+ be used for testing Sphinx's output messages that were not tempered
+ with by third-party extensions.
+
+ .. versionadded:: 7.3
+
+ This function is added as an *experimental* feature.
+
+ __ https://en.wikipedia.org/wiki/ANSI_escape_code
+ """
+ return _ansi_re.sub('', text)
def create_color_func(name: str) -> None:
def inner(text: str) -> str:
return colorize(name, text)
+
globals()[name] = inner
_attrs = {
- 'reset': '39;49;00m',
- 'bold': '01m',
- 'faint': '02m',
- 'standout': '03m',
+ 'reset': '39;49;00m',
+ 'bold': '01m',
+ 'faint': '02m',
+ 'standout': '03m',
'underline': '04m',
- 'blink': '05m',
+ 'blink': '05m',
}
-for _name, _value in _attrs.items():
- codes[_name] = '\x1b[' + _value
+for __name, __value in _attrs.items():
+ codes[__name] = '\x1b[' + __value
_colors = [
- ('black', 'darkgray'),
- ('darkred', 'red'),
+ ('black', 'darkgray'),
+ ('darkred', 'red'),
('darkgreen', 'green'),
- ('brown', 'yellow'),
- ('darkblue', 'blue'),
- ('purple', 'fuchsia'),
+ ('brown', 'yellow'),
+ ('darkblue', 'blue'),
+ ('purple', 'fuchsia'),
('turquoise', 'teal'),
('lightgray', 'white'),
]
-for i, (dark, light) in enumerate(_colors, 30):
- codes[dark] = '\x1b[%im' % i
- codes[light] = '\x1b[%im' % (i + 60)
+for __i, (__dark, __light) in enumerate(_colors, 30):
+ codes[__dark] = '\x1b[%im' % __i
+ codes[__light] = '\x1b[%im' % (__i + 60)
_orig_codes = codes.copy()
diff --git a/sphinx/util/display.py b/sphinx/util/display.py
index 199119c..3cb8d97 100644
--- a/sphinx/util/display.py
+++ b/sphinx/util/display.py
@@ -5,7 +5,7 @@ from typing import Any, Callable, TypeVar
from sphinx.locale import __
from sphinx.util import logging
-from sphinx.util.console import bold # type: ignore[attr-defined]
+from sphinx.util.console import bold, color_terminal
if False:
from collections.abc import Iterable, Iterator
@@ -33,7 +33,8 @@ def status_iterator(
verbosity: int = 0,
stringify_func: Callable[[Any], str] = display_chunk,
) -> Iterator[T]:
- single_line = verbosity < 1
+ # printing on a single line requires ANSI control sequences
+ single_line = verbosity < 1 and color_terminal()
bold_summary = bold(summary)
if length == 0:
logger.info(bold_summary, nonl=True)
diff --git a/sphinx/util/docfields.py b/sphinx/util/docfields.py
index c48c3be..c277a59 100644
--- a/sphinx/util/docfields.py
+++ b/sphinx/util/docfields.py
@@ -34,9 +34,7 @@ def _is_single_paragraph(node: nodes.field_body) -> bool:
for subnode in node[1:]: # type: Node
if not isinstance(subnode, nodes.system_message):
return False
- if isinstance(node[0], nodes.paragraph):
- return True
- return False
+ return isinstance(node[0], nodes.paragraph)
class Field:
@@ -52,6 +50,7 @@ class Field:
:returns: description of the return value
:rtype: description of the return type
"""
+
is_grouped = False
is_typed = False
@@ -79,7 +78,7 @@ class Field:
assert env is not None
assert (inliner is None) == (location is None), (inliner, location)
if not rolename:
- return contnode or innernode(target, target)
+ return contnode or innernode(target, target) # type: ignore[call-arg]
# The domain is passed from DocFieldTransformer. So it surely exists.
# So we don't need to take care the env.get_domain() raises an exception.
role = env.get_domain(domain).role(rolename)
@@ -90,7 +89,7 @@ class Field:
logger.warning(__(msg), domain, rolename, location=location)
refnode = addnodes.pending_xref('', refdomain=domain, refexplicit=False,
reftype=rolename, reftarget=target)
- refnode += contnode or innernode(target, target)
+ refnode += contnode or innernode(target, target) # type: ignore[call-arg]
env.get_domain(domain).process_field_xref(refnode)
return refnode
lineno = -1
@@ -152,6 +151,7 @@ class GroupedField(Field):
:raises ErrorClass: description when it is raised
"""
+
is_grouped = True
list_type = nodes.bullet_list
@@ -208,6 +208,7 @@ class TypedField(GroupedField):
:param SomeClass foo: description of parameter foo
"""
+
is_typed = True
def __init__(
@@ -233,7 +234,7 @@ class TypedField(GroupedField):
inliner: Inliner | None = None,
location: Element | None = None,
) -> nodes.field:
- def handle_item(fieldarg: str, content: str) -> nodes.paragraph:
+ def handle_item(fieldarg: str, content: list[Node]) -> nodes.paragraph:
par = nodes.paragraph()
par.extend(self.make_xrefs(self.rolename, domain, fieldarg,
addnodes.literal_strong, env=env))
@@ -251,8 +252,10 @@ class TypedField(GroupedField):
else:
par += fieldtype
par += nodes.Text(')')
- par += nodes.Text(' -- ')
- par += content
+ has_content = any(c.astext().strip() for c in content)
+ if has_content:
+ par += nodes.Text(' -- ')
+ par += content
return par
fieldname = nodes.field_name('', self.label)
@@ -272,6 +275,7 @@ class DocFieldTransformer:
Transforms field lists in "doc field" syntax into better-looking
equivalents, using the field type definitions given on a domain.
"""
+
typemap: dict[str, tuple[Field, bool]]
def __init__(self, directive: ObjectDescription) -> None:
diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py
index a862417..6a24d2e 100644
--- a/sphinx/util/docutils.py
+++ b/sphinx/util/docutils.py
@@ -27,7 +27,7 @@ logger = logging.getLogger(__name__)
report_re = re.compile('^(.+?:(?:\\d+)?): \\((DEBUG|INFO|WARNING|ERROR|SEVERE)/(\\d+)?\\) ')
if TYPE_CHECKING:
- from collections.abc import Generator
+ from collections.abc import Iterator
from types import ModuleType
from docutils.frontend import Values
@@ -38,29 +38,12 @@ if TYPE_CHECKING:
from sphinx.environment import BuildEnvironment
from sphinx.util.typing import RoleFunction
-# deprecated name -> (object to return, canonical path or empty string)
-_DEPRECATED_OBJECTS = {
- '__version_info__': (docutils.__version_info__, 'docutils.__version_info__'),
-}
-
-
-def __getattr__(name):
- if name not in _DEPRECATED_OBJECTS:
- msg = f'module {__name__!r} has no attribute {name!r}'
- raise AttributeError(msg)
-
- from sphinx.deprecation import _deprecation_warning
-
- deprecated_object, canonical_name = _DEPRECATED_OBJECTS[name]
- _deprecation_warning(__name__, name, canonical_name, remove=(7, 0))
- return deprecated_object
-
additional_nodes: set[type[Element]] = set()
@contextmanager
-def docutils_namespace() -> Generator[None, None, None]:
+def docutils_namespace() -> Iterator[None]:
"""Create namespace for reST parsers."""
try:
_directives = copy(directives._directives) # type: ignore[attr-defined]
@@ -101,7 +84,7 @@ def register_role(name: str, role: RoleFunction) -> None:
This modifies global state of docutils. So it is better to use this
inside ``docutils_namespace()`` to prevent side-effects.
"""
- roles.register_local_role(name, role)
+ roles.register_local_role(name, role) # type: ignore[arg-type]
def unregister_role(name: str) -> None:
@@ -138,7 +121,7 @@ def unregister_node(node: type[Element]) -> None:
@contextmanager
-def patched_get_language() -> Generator[None, None, None]:
+def patched_get_language() -> Iterator[None]:
"""Patch docutils.languages.get_language() temporarily.
This ignores the second argument ``reporter`` to suppress warnings.
@@ -150,7 +133,7 @@ def patched_get_language() -> Generator[None, None, None]:
return get_language(language_code)
try:
- docutils.languages.get_language = patched_get_language
+ docutils.languages.get_language = patched_get_language # type: ignore[assignment]
yield
finally:
# restore original implementations
@@ -158,7 +141,7 @@ def patched_get_language() -> Generator[None, None, None]:
@contextmanager
-def patched_rst_get_language() -> Generator[None, None, None]:
+def patched_rst_get_language() -> Iterator[None]:
"""Patch docutils.parsers.rst.languages.get_language().
Starting from docutils 0.17, get_language() in ``rst.languages``
also has a reporter, which needs to be disabled temporarily.
@@ -174,7 +157,7 @@ def patched_rst_get_language() -> Generator[None, None, None]:
return get_language(language_code)
try:
- docutils.parsers.rst.languages.get_language = patched_get_language
+ docutils.parsers.rst.languages.get_language = patched_get_language # type: ignore[assignment]
yield
finally:
# restore original implementations
@@ -182,7 +165,7 @@ def patched_rst_get_language() -> Generator[None, None, None]:
@contextmanager
-def using_user_docutils_conf(confdir: str | None) -> Generator[None, None, None]:
+def using_user_docutils_conf(confdir: str | None) -> Iterator[None]:
"""Let docutils know the location of ``docutils.conf`` for Sphinx."""
try:
docutilsconfig = os.environ.get('DOCUTILSCONFIG', None)
@@ -198,8 +181,8 @@ def using_user_docutils_conf(confdir: str | None) -> Generator[None, None, None]
@contextmanager
-def du19_footnotes() -> Generator[None, None, None]:
- def visit_footnote(self, node):
+def du19_footnotes() -> Iterator[None]:
+ def visit_footnote(self: HTMLTranslator, node: Element) -> None:
label_style = self.settings.footnote_references
if not isinstance(node.previous_sibling(), type(node)):
self.body.append(f'<aside class="footnote-list {label_style}">\n')
@@ -207,7 +190,7 @@ def du19_footnotes() -> Generator[None, None, None]:
classes=[node.tagname, label_style],
role="note"))
- def depart_footnote(self, node):
+ def depart_footnote(self: HTMLTranslator, node: Element) -> None:
self.body.append('</aside>\n')
if not isinstance(node.next_node(descend=False, siblings=True),
type(node)):
@@ -231,7 +214,7 @@ def du19_footnotes() -> Generator[None, None, None]:
@contextmanager
-def patch_docutils(confdir: str | None = None) -> Generator[None, None, None]:
+def patch_docutils(confdir: str | None = None) -> Iterator[None]:
"""Patch to docutils temporarily."""
with patched_get_language(), \
patched_rst_get_language(), \
@@ -263,8 +246,8 @@ class CustomReSTDispatcher:
self.directive_func = directives.directive
self.role_func = roles.role
- directives.directive = self.directive
- roles.role = self.role
+ directives.directive = self.directive # type: ignore[assignment]
+ roles.role = self.role # type: ignore[assignment]
def disable(self) -> None:
directives.directive = self.directive_func
@@ -290,6 +273,7 @@ class sphinx_domains(CustomReSTDispatcher):
"""Monkey-patch directive and role dispatch, so that domain-specific
markup takes precedence.
"""
+
def __init__(self, env: BuildEnvironment) -> None:
self.env = env
super().__init__()
@@ -354,7 +338,7 @@ class WarningStream:
class LoggingReporter(Reporter):
@classmethod
- def from_reporter(cls, reporter: Reporter) -> LoggingReporter:
+ def from_reporter(cls: type[LoggingReporter], reporter: Reporter) -> LoggingReporter:
"""Create an instance of LoggingReporter from other reporter object."""
return cls(reporter.source, reporter.report_level, reporter.halt_level,
reporter.debug_flag, reporter.error_handler)
@@ -375,16 +359,16 @@ class NullReporter(Reporter):
@contextmanager
-def switch_source_input(state: State, content: StringList) -> Generator[None, None, None]:
+def switch_source_input(state: State, content: StringList) -> Iterator[None]:
"""Switch current source input of state temporarily."""
try:
# remember the original ``get_source_and_line()`` method
gsal = state.memo.reporter.get_source_and_line # type: ignore[attr-defined]
# replace it by new one
- state_machine = StateMachine([], None) # type: ignore[arg-type]
+ state_machine: StateMachine[None] = StateMachine([], None) # type: ignore[arg-type]
state_machine.input_lines = content
- state.memo.reporter.get_source_and_line = state_machine.get_source_and_line # type: ignore[attr-defined] # noqa: E501
+ state.memo.reporter.get_source_and_line = state_machine.get_source_and_line # type: ignore[attr-defined] # NoQA: E501
yield
finally:
@@ -451,6 +435,7 @@ class SphinxRole:
.. note:: The subclasses of this class might not work with docutils.
This class is strongly coupled with Sphinx.
"""
+
name: str #: The role name actually used in the document.
rawtext: str #: A string containing the entire interpreted text input.
text: str #: The interpreted text content.
@@ -519,6 +504,7 @@ class ReferenceRole(SphinxRole):
the role. The parsed result; link title and target will be stored to
``self.title`` and ``self.target``.
"""
+
has_explicit_title: bool #: A boolean indicates the role has explicit title or not.
disabled: bool #: A boolean indicates the reference is disabled.
title: str #: The link title for the interpreted text.
diff --git a/sphinx/util/exceptions.py b/sphinx/util/exceptions.py
index 9e25695..577ec73 100644
--- a/sphinx/util/exceptions.py
+++ b/sphinx/util/exceptions.py
@@ -6,7 +6,7 @@ from tempfile import NamedTemporaryFile
from typing import TYPE_CHECKING
from sphinx.errors import SphinxParallelError
-from sphinx.util.console import strip_colors
+from sphinx.util.console import strip_escape_sequences
if TYPE_CHECKING:
from sphinx.application import Sphinx
@@ -31,7 +31,8 @@ def save_traceback(app: Sphinx | None, exc: BaseException) -> str:
last_msgs = exts_list = ''
else:
extensions = app.extensions.values()
- last_msgs = '\n'.join(f'# {strip_colors(s).strip()}' for s in app.messagelog)
+ last_msgs = '\n'.join(f'# {strip_escape_sequences(s).strip()}'
+ for s in app.messagelog)
exts_list = '\n'.join(f'# {ext.name} ({ext.version})' for ext in extensions
if ext.version != 'builtin')
diff --git a/sphinx/util/fileutil.py b/sphinx/util/fileutil.py
index 316ec39..e621f55 100644
--- a/sphinx/util/fileutil.py
+++ b/sphinx/util/fileutil.py
@@ -4,7 +4,7 @@ from __future__ import annotations
import os
import posixpath
-from typing import TYPE_CHECKING, Callable
+from typing import TYPE_CHECKING, Any, Callable
from docutils.utils import relative_path
@@ -16,7 +16,7 @@ if TYPE_CHECKING:
def copy_asset_file(source: str | os.PathLike[str], destination: str | os.PathLike[str],
- context: dict | None = None,
+ context: dict[str, Any] | None = None,
renderer: BaseRenderer | None = None) -> None:
"""Copy an asset file to destination.
@@ -53,7 +53,7 @@ def copy_asset_file(source: str | os.PathLike[str], destination: str | os.PathLi
def copy_asset(source: str | os.PathLike[str], destination: str | os.PathLike[str],
excluded: PathMatcher = lambda path: False,
- context: dict | None = None, renderer: BaseRenderer | None = None,
+ context: dict[str, Any] | None = None, renderer: BaseRenderer | None = None,
onerror: Callable[[str, Exception], None] | None = None) -> None:
"""Copy asset files to destination recursively.
@@ -80,8 +80,8 @@ def copy_asset(source: str | os.PathLike[str], destination: str | os.PathLike[st
return
for root, dirs, files in os.walk(source, followlinks=True):
- reldir = relative_path(source, root) # type: ignore[arg-type]
- for dir in dirs[:]:
+ reldir = relative_path(source, root)
+ for dir in dirs.copy():
if excluded(posixpath.join(reldir, dir)):
dirs.remove(dir)
else:
diff --git a/sphinx/util/http_date.py b/sphinx/util/http_date.py
index 8e245cb..4908101 100644
--- a/sphinx/util/http_date.py
+++ b/sphinx/util/http_date.py
@@ -5,16 +5,23 @@ Reference: https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1
import time
import warnings
-from email.utils import formatdate, parsedate_tz
+from email.utils import parsedate_tz
from sphinx.deprecation import RemovedInSphinx90Warning
+_WEEKDAY_NAME = ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')
+_MONTH_NAME = ('', # Placeholder for indexing purposes
+ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')
_GMT_OFFSET = float(time.localtime().tm_gmtoff)
def epoch_to_rfc1123(epoch: float) -> str:
"""Return HTTP-date string from epoch offset."""
- return formatdate(epoch, usegmt=True)
+ yr, mn, dd, hh, mm, ss, wd, _yd, _tz = time.gmtime(epoch)
+ weekday_name = _WEEKDAY_NAME[wd]
+ month = _MONTH_NAME[mn]
+ return f'{weekday_name}, {dd:02} {month} {yr:04} {hh:02}:{mm:02}:{ss:02} GMT'
def rfc1123_to_epoch(rfc1123: str) -> float:
diff --git a/sphinx/util/i18n.py b/sphinx/util/i18n.py
index b820884..c14e3f0 100644
--- a/sphinx/util/i18n.py
+++ b/sphinx/util/i18n.py
@@ -6,7 +6,7 @@ import os
import re
from datetime import datetime, timezone
from os import path
-from typing import TYPE_CHECKING, Callable, NamedTuple
+from typing import TYPE_CHECKING, NamedTuple
import babel.dates
from babel.messages.mofile import write_mo
@@ -18,10 +18,41 @@ from sphinx.util import logging
from sphinx.util.osutil import SEP, canon_path, relpath
if TYPE_CHECKING:
- from collections.abc import Generator
+ import datetime as dt
+ from collections.abc import Iterator
+ from typing import Protocol, Union
+
+ from babel.core import Locale
from sphinx.environment import BuildEnvironment
+ class DateFormatter(Protocol):
+ def __call__( # NoQA: E704
+ self,
+ date: dt.date | None = ...,
+ format: str = ...,
+ locale: str | Locale | None = ...,
+ ) -> str: ...
+
+ class TimeFormatter(Protocol):
+ def __call__( # NoQA: E704
+ self,
+ time: dt.time | dt.datetime | float | None = ...,
+ format: str = ...,
+ tzinfo: dt.tzinfo | None = ...,
+ locale: str | Locale | None = ...,
+ ) -> str: ...
+
+ class DatetimeFormatter(Protocol):
+ def __call__( # NoQA: E704
+ self,
+ datetime: dt.date | dt.time | float | None = ...,
+ format: str = ...,
+ tzinfo: dt.tzinfo | None = ...,
+ locale: str | Locale | None = ...,
+ ) -> str: ...
+
+ Formatter = Union[DateFormatter, TimeFormatter, DatetimeFormatter]
logger = logging.getLogger(__name__)
@@ -81,7 +112,7 @@ class CatalogRepository:
self.encoding = encoding
@property
- def locale_dirs(self) -> Generator[str, None, None]:
+ def locale_dirs(self) -> Iterator[str]:
if not self.language:
return
@@ -94,14 +125,13 @@ class CatalogRepository:
logger.verbose(__('locale_dir %s does not exist'), locale_path)
@property
- def pofiles(self) -> Generator[tuple[str, str], None, None]:
+ def pofiles(self) -> Iterator[tuple[str, str]]:
for locale_dir in self.locale_dirs:
basedir = path.join(locale_dir, self.language, 'LC_MESSAGES')
for root, dirnames, filenames in os.walk(basedir):
# skip dot-directories
- for dirname in dirnames:
- if dirname.startswith('.'):
- dirnames.remove(dirname)
+ for dirname in [d for d in dirnames if d.startswith('.')]:
+ dirnames.remove(dirname)
for filename in filenames:
if filename.endswith('.po'):
@@ -109,7 +139,7 @@ class CatalogRepository:
yield basedir, relpath(fullpath, basedir)
@property
- def catalogs(self) -> Generator[CatalogInfo, None, None]:
+ def catalogs(self) -> Iterator[CatalogInfo]:
for basedir, filename in self.pofiles:
domain = canon_path(path.splitext(filename)[0])
yield CatalogInfo(basedir, domain, self.encoding)
@@ -170,7 +200,7 @@ date_format_re = re.compile('(%s)' % '|'.join(date_format_mappings))
def babel_format_date(date: datetime, format: str, locale: str,
- formatter: Callable = babel.dates.format_date) -> str:
+ formatter: Formatter = babel.dates.format_date) -> str:
# Check if we have the tzinfo attribute. If not we cannot do any time
# related formats.
if not hasattr(date, 'tzinfo'):
@@ -208,6 +238,7 @@ def format_date(
# Check if we have to use a different babel formatter then
# format_datetime, because we only want to format a date
# or a time.
+ function: Formatter
if token == '%x':
function = babel.dates.format_date
elif token == '%X':
diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
index 7d7fbb8..6b13b29 100644
--- a/sphinx/util/inspect.py
+++ b/sphinx/util/inspect.py
@@ -11,41 +11,45 @@ import re
import sys
import types
import typing
-from collections.abc import Mapping, Sequence
+from collections.abc import Mapping
from functools import cached_property, partial, partialmethod, singledispatchmethod
from importlib import import_module
-from inspect import ( # noqa: F401
- Parameter,
- isasyncgenfunction,
- isclass,
- ismethod,
- ismethoddescriptor,
- ismodule,
-)
+from inspect import Parameter, Signature
from io import StringIO
-from types import (
- ClassMethodDescriptorType,
- MethodDescriptorType,
- MethodType,
- ModuleType,
- WrapperDescriptorType,
-)
-from typing import Any, Callable, cast
+from types import ClassMethodDescriptorType, MethodDescriptorType, WrapperDescriptorType
+from typing import TYPE_CHECKING, Any
from sphinx.pycode.ast import unparse as ast_unparse
from sphinx.util import logging
from sphinx.util.typing import ForwardRef, stringify_annotation
+if TYPE_CHECKING:
+ from collections.abc import Callable, Sequence
+ from inspect import _ParameterKind
+ from types import MethodType, ModuleType
+ from typing import Final
+
logger = logging.getLogger(__name__)
memory_address_re = re.compile(r' at 0x[0-9a-f]{8,16}(?=>)', re.IGNORECASE)
+# re-export as is
+isasyncgenfunction = inspect.isasyncgenfunction
+ismethod = inspect.ismethod
+ismethoddescriptor = inspect.ismethoddescriptor
+isclass = inspect.isclass
+ismodule = inspect.ismodule
+
def unwrap(obj: Any) -> Any:
- """Get an original object from wrapped object (wrapped functions)."""
+ """Get an original object from wrapped object (wrapped functions).
+
+ Mocked objects are returned as is.
+ """
if hasattr(obj, '__sphinx_mock__'):
# Skip unwrapping mock object to avoid RecursionError
return obj
+
try:
return inspect.unwrap(obj)
except ValueError:
@@ -53,14 +57,28 @@ def unwrap(obj: Any) -> Any:
return obj
-def unwrap_all(obj: Any, *, stop: Callable | None = None) -> Any:
- """
- Get an original object from wrapped object (unwrapping partials, wrapped
- functions, and other decorators).
+def unwrap_all(obj: Any, *, stop: Callable[[Any], bool] | None = None) -> Any:
+ """Get an original object from wrapped object.
+
+ Unlike :func:`unwrap`, this unwraps partial functions, wrapped functions,
+ class methods and static methods.
+
+ When specified, *stop* is a predicate indicating whether an object should
+ be unwrapped or not.
"""
+ if callable(stop):
+ while not stop(obj):
+ if ispartial(obj):
+ obj = obj.func
+ elif inspect.isroutine(obj) and hasattr(obj, '__wrapped__'):
+ obj = obj.__wrapped__
+ elif isclassmethod(obj) or isstaticmethod(obj):
+ obj = obj.__func__
+ else:
+ return obj
+ return obj # in case the while loop never starts
+
while True:
- if stop and stop(obj):
- return obj
if ispartial(obj):
obj = obj.func
elif inspect.isroutine(obj) and hasattr(obj, '__wrapped__'):
@@ -72,10 +90,11 @@ def unwrap_all(obj: Any, *, stop: Callable | None = None) -> Any:
def getall(obj: Any) -> Sequence[str] | None:
- """Get __all__ attribute of the module as dict.
+ """Get the ``__all__`` attribute of an object as sequence.
- Return None if given *obj* does not have __all__.
- Raises ValueError if given *obj* have invalid __all__.
+ This returns ``None`` if the given ``obj.__all__`` does not exist and
+ raises :exc:`ValueError` if ``obj.__all__`` is not a list or tuple of
+ strings.
"""
__all__ = safe_getattr(obj, '__all__', None)
if __all__ is None:
@@ -86,35 +105,42 @@ def getall(obj: Any) -> Sequence[str] | None:
def getannotations(obj: Any) -> Mapping[str, Any]:
- """Get __annotations__ from given *obj* safely."""
- __annotations__ = safe_getattr(obj, '__annotations__', None)
+ """Safely get the ``__annotations__`` attribute of an object."""
+ if sys.version_info >= (3, 10, 0) or not isinstance(obj, type):
+ __annotations__ = safe_getattr(obj, '__annotations__', None)
+ else:
+ # Workaround for bugfix not available until python 3.10 as recommended by docs
+ # https://docs.python.org/3.10/howto/annotations.html#accessing-the-annotations-dict-of-an-object-in-python-3-9-and-older
+ __dict__ = safe_getattr(obj, '__dict__', {})
+ __annotations__ = __dict__.get('__annotations__', None)
if isinstance(__annotations__, Mapping):
return __annotations__
- else:
- return {}
+ return {}
def getglobals(obj: Any) -> Mapping[str, Any]:
- """Get __globals__ from given *obj* safely."""
+ """Safely get :attr:`obj.__globals__ <function.__globals__>`."""
__globals__ = safe_getattr(obj, '__globals__', None)
if isinstance(__globals__, Mapping):
return __globals__
- else:
- return {}
+ return {}
def getmro(obj: Any) -> tuple[type, ...]:
- """Get __mro__ from given *obj* safely."""
+ """Safely get :attr:`obj.__mro__ <class.__mro__>`."""
__mro__ = safe_getattr(obj, '__mro__', None)
if isinstance(__mro__, tuple):
return __mro__
- else:
- return ()
+ return ()
def getorigbases(obj: Any) -> tuple[Any, ...] | None:
- """Get __orig_bases__ from *obj* safely."""
- if not inspect.isclass(obj):
+ """Safely get ``obj.__orig_bases__``.
+
+ This returns ``None`` if the object is not a class or if ``__orig_bases__``
+ is not well-defined (e.g., a non-tuple object or an empty sequence).
+ """
+ if not isclass(obj):
return None
# Get __orig_bases__ from obj.__dict__ to avoid accessing the parent's __orig_bases__.
@@ -123,18 +149,17 @@ def getorigbases(obj: Any) -> tuple[Any, ...] | None:
__orig_bases__ = __dict__.get('__orig_bases__')
if isinstance(__orig_bases__, tuple) and len(__orig_bases__) > 0:
return __orig_bases__
- else:
- return None
+ return None
-def getslots(obj: Any) -> dict[str, Any] | None:
- """Get __slots__ attribute of the class as dict.
+def getslots(obj: Any) -> dict[str, Any] | dict[str, None] | None:
+ """Safely get :term:`obj.__slots__ <__slots__>` as a dictionary if any.
- Return None if gienv *obj* does not have __slots__.
- Raises TypeError if given *obj* is not a class.
- Raises ValueError if given *obj* have invalid __slots__.
+ - This returns ``None`` if ``obj.__slots__`` does not exist.
+ - This raises a :exc:`TypeError` if *obj* is not a class.
+ - This raises a :exc:`ValueError` if ``obj.__slots__`` is invalid.
"""
- if not inspect.isclass(obj):
+ if not isclass(obj):
raise TypeError
__slots__ = safe_getattr(obj, '__slots__', None)
@@ -151,7 +176,7 @@ def getslots(obj: Any) -> dict[str, Any] | None:
def isNewType(obj: Any) -> bool:
- """Check the if object is a kind of NewType."""
+ """Check the if object is a kind of :class:`~typing.NewType`."""
if sys.version_info[:2] >= (3, 10):
return isinstance(obj, typing.NewType)
__module__ = safe_getattr(obj, '__module__', None)
@@ -160,72 +185,71 @@ def isNewType(obj: Any) -> bool:
def isenumclass(x: Any) -> bool:
- """Check if the object is subclass of enum."""
- return inspect.isclass(x) and issubclass(x, enum.Enum)
+ """Check if the object is an :class:`enumeration class <enum.Enum>`."""
+ return isclass(x) and issubclass(x, enum.Enum)
def isenumattribute(x: Any) -> bool:
- """Check if the object is attribute of enum."""
+ """Check if the object is an enumeration attribute."""
return isinstance(x, enum.Enum)
def unpartial(obj: Any) -> Any:
- """Get an original object from partial object.
+ """Get an original object from a partial-like object.
- This returns given object itself if not partial.
+ If *obj* is not a partial object, it is returned as is.
+
+ .. seealso:: :func:`ispartial`
"""
while ispartial(obj):
obj = obj.func
-
return obj
def ispartial(obj: Any) -> bool:
- """Check if the object is partial."""
+ """Check if the object is a partial function or method."""
return isinstance(obj, (partial, partialmethod))
def isclassmethod(obj: Any, cls: Any = None, name: str | None = None) -> bool:
- """Check if the object is classmethod."""
+ """Check if the object is a :class:`classmethod`."""
if isinstance(obj, classmethod):
return True
- if inspect.ismethod(obj) and obj.__self__ is not None and isclass(obj.__self__):
+ if ismethod(obj) and obj.__self__ is not None and isclass(obj.__self__):
return True
if cls and name:
- placeholder = object()
+ # trace __mro__ if the method is defined in parent class
+ sentinel = object()
for basecls in getmro(cls):
- meth = basecls.__dict__.get(name, placeholder)
- if meth is not placeholder:
+ meth = basecls.__dict__.get(name, sentinel)
+ if meth is not sentinel:
return isclassmethod(meth)
-
return False
def isstaticmethod(obj: Any, cls: Any = None, name: str | None = None) -> bool:
- """Check if the object is staticmethod."""
+ """Check if the object is a :class:`staticmethod`."""
if isinstance(obj, staticmethod):
return True
if cls and name:
# trace __mro__ if the method is defined in parent class
- #
- # .. note:: This only works well with new style classes.
+ sentinel = object()
for basecls in getattr(cls, '__mro__', [cls]):
- meth = basecls.__dict__.get(name)
- if meth:
+ meth = basecls.__dict__.get(name, sentinel)
+ if meth is not sentinel:
return isinstance(meth, staticmethod)
return False
def isdescriptor(x: Any) -> bool:
- """Check if the object is some kind of descriptor."""
+ """Check if the object is a :external+python:term:`descriptor`."""
return any(
- callable(safe_getattr(x, item, None))
- for item in ['__get__', '__set__', '__delete__']
+ callable(safe_getattr(x, item, None)) for item in ('__get__', '__set__', '__delete__')
)
def isabstractmethod(obj: Any) -> bool:
- """Check if the object is an abstractmethod."""
+ """Check if the object is an :func:`abstractmethod`."""
return safe_getattr(obj, '__isabstractmethod__', False) is True
@@ -242,86 +266,106 @@ def is_cython_function_or_method(obj: Any) -> bool:
return False
+_DESCRIPTOR_LIKE: Final[tuple[type, ...]] = (
+ ClassMethodDescriptorType,
+ MethodDescriptorType,
+ WrapperDescriptorType,
+)
+
+
def isattributedescriptor(obj: Any) -> bool:
- """Check if the object is an attribute like descriptor."""
+ """Check if the object is an attribute-like descriptor."""
if inspect.isdatadescriptor(obj):
# data descriptor is kind of attribute
return True
if isdescriptor(obj):
# non data descriptor
unwrapped = unwrap(obj)
- if isfunction(unwrapped) or isbuiltin(unwrapped) or inspect.ismethod(unwrapped):
+ if isfunction(unwrapped) or isbuiltin(unwrapped) or ismethod(unwrapped):
# attribute must not be either function, builtin and method
return False
if is_cython_function_or_method(unwrapped):
# attribute must not be either function and method (for cython)
return False
- if inspect.isclass(unwrapped):
+ if isclass(unwrapped):
# attribute must not be a class
return False
- if isinstance(unwrapped, (ClassMethodDescriptorType,
- MethodDescriptorType,
- WrapperDescriptorType)):
+ if isinstance(unwrapped, _DESCRIPTOR_LIKE):
# attribute must not be a method descriptor
return False
- if type(unwrapped).__name__ == "instancemethod":
- # attribute must not be an instancemethod (C-API)
- return False
- return True
+ # attribute must not be an instancemethod (C-API)
+ return type(unwrapped).__name__ != 'instancemethod'
return False
def is_singledispatch_function(obj: Any) -> bool:
- """Check if the object is singledispatch function."""
- return (inspect.isfunction(obj) and
- hasattr(obj, 'dispatch') and
- hasattr(obj, 'register') and
- obj.dispatch.__module__ == 'functools')
+ """Check if the object is a :func:`~functools.singledispatch` function."""
+ return (
+ inspect.isfunction(obj)
+ and hasattr(obj, 'dispatch')
+ and hasattr(obj, 'register')
+ and obj.dispatch.__module__ == 'functools'
+ )
def is_singledispatch_method(obj: Any) -> bool:
- """Check if the object is singledispatch method."""
+ """Check if the object is a :class:`~functools.singledispatchmethod`."""
return isinstance(obj, singledispatchmethod)
def isfunction(obj: Any) -> bool:
- """Check if the object is function."""
+ """Check if the object is a user-defined function.
+
+ Partial objects are unwrapped before checking them.
+
+ .. seealso:: :external+python:func:`inspect.isfunction`
+ """
return inspect.isfunction(unpartial(obj))
def isbuiltin(obj: Any) -> bool:
- """Check if the object is function."""
+ """Check if the object is a built-in function or method.
+
+ Partial objects are unwrapped before checking them.
+
+ .. seealso:: :external+python:func:`inspect.isbuiltin`
+ """
return inspect.isbuiltin(unpartial(obj))
def isroutine(obj: Any) -> bool:
- """Check is any kind of function or method."""
+ """Check if the object is a kind of function or method.
+
+ Partial objects are unwrapped before checking them.
+
+ .. seealso:: :external+python:func:`inspect.isroutine`
+ """
return inspect.isroutine(unpartial(obj))
def iscoroutinefunction(obj: Any) -> bool:
- """Check if the object is coroutine-function."""
- def iswrappedcoroutine(obj: Any) -> bool:
- """Check if the object is wrapped coroutine-function."""
- if isstaticmethod(obj) or isclassmethod(obj) or ispartial(obj):
- # staticmethod, classmethod and partial method are not a wrapped coroutine-function
- # Note: Since 3.10, staticmethod and classmethod becomes a kind of wrappers
- return False
- return hasattr(obj, '__wrapped__')
-
- obj = unwrap_all(obj, stop=iswrappedcoroutine)
+ """Check if the object is a :external+python:term:`coroutine` function."""
+ obj = unwrap_all(obj, stop=_is_wrapped_coroutine)
return inspect.iscoroutinefunction(obj)
+def _is_wrapped_coroutine(obj: Any) -> bool:
+ """Check if the object is wrapped coroutine-function."""
+ if isstaticmethod(obj) or isclassmethod(obj) or ispartial(obj):
+ # staticmethod, classmethod and partial method are not a wrapped coroutine-function
+ # Note: Since 3.10, staticmethod and classmethod becomes a kind of wrappers
+ return False
+ return hasattr(obj, '__wrapped__')
+
+
def isproperty(obj: Any) -> bool:
- """Check if the object is property."""
+ """Check if the object is property (possibly cached)."""
return isinstance(obj, (property, cached_property))
def isgenericalias(obj: Any) -> bool:
- """Check if the object is GenericAlias."""
- return isinstance(
- obj, (types.GenericAlias, typing._BaseGenericAlias)) # type: ignore[attr-defined]
+ """Check if the object is a generic alias."""
+ return isinstance(obj, (types.GenericAlias, typing._BaseGenericAlias)) # type: ignore[attr-defined]
def safe_getattr(obj: Any, name: str, *defargs: Any) -> Any:
@@ -346,7 +390,7 @@ def safe_getattr(obj: Any, name: str, *defargs: Any) -> Any:
raise AttributeError(name) from exc
-def object_description(obj: Any, *, _seen: frozenset = frozenset()) -> str:
+def object_description(obj: Any, *, _seen: frozenset[int] = frozenset()) -> str:
"""A repr() implementation that returns text safe to use in reST context.
Maintains a set of 'seen' object IDs to detect and avoid infinite recursion.
@@ -362,8 +406,10 @@ def object_description(obj: Any, *, _seen: frozenset = frozenset()) -> str:
# Cannot sort dict keys, fall back to using descriptions as a sort key
sorted_keys = sorted(obj, key=lambda k: object_description(k, _seen=seen))
- items = ((object_description(key, _seen=seen),
- object_description(obj[key], _seen=seen)) for key in sorted_keys)
+ items = (
+ (object_description(key, _seen=seen), object_description(obj[key], _seen=seen))
+ for key in sorted_keys
+ )
return '{%s}' % ', '.join(f'{key}: {value}' for (key, value) in items)
elif isinstance(obj, set):
if id(obj) in seen:
@@ -384,15 +430,18 @@ def object_description(obj: Any, *, _seen: frozenset = frozenset()) -> str:
except TypeError:
# Cannot sort frozenset values, fall back to using descriptions as a sort key
sorted_values = sorted(obj, key=lambda x: object_description(x, _seen=seen))
- return 'frozenset({%s})' % ', '.join(object_description(x, _seen=seen)
- for x in sorted_values)
+ return 'frozenset({%s})' % ', '.join(
+ object_description(x, _seen=seen) for x in sorted_values
+ )
elif isinstance(obj, enum.Enum):
+ if obj.__repr__.__func__ is not enum.Enum.__repr__: # type: ignore[attr-defined]
+ return repr(obj)
return f'{obj.__class__.__name__}.{obj.name}'
elif isinstance(obj, tuple):
if id(obj) in seen:
return 'tuple(...)'
seen |= frozenset([id(obj)])
- return '(%s%s)' % (
+ return '({}{})'.format(
', '.join(object_description(x, _seen=seen) for x in obj),
',' * (len(obj) == 1),
)
@@ -413,16 +462,18 @@ def object_description(obj: Any, *, _seen: frozenset = frozenset()) -> str:
def is_builtin_class_method(obj: Any, attr_name: str) -> bool:
- """If attr_name is implemented at builtin class, return True.
+ """Check whether *attr_name* is implemented on a builtin class.
>>> is_builtin_class_method(int, '__init__')
True
- Why this function needed? CPython implements int.__init__ by Descriptor
- but PyPy implements it by pure Python code.
+
+ This function is needed since CPython implements ``int.__init__`` via
+ descriptors, but PyPy implementation is written in pure Python code.
"""
+ mro = getmro(obj)
+
try:
- mro = getmro(obj)
cls = next(c for c in mro if attr_name in safe_getattr(c, '__dict__', {}))
except StopIteration:
return False
@@ -449,10 +500,11 @@ class DefaultValue:
class TypeAliasForwardRef:
- """Pseudo typing class for autodoc_type_aliases.
+ """Pseudo typing class for :confval:`autodoc_type_aliases`.
- This avoids the error on evaluating the type inside `get_type_hints()`.
+ This avoids the error on evaluating the type inside :func:`typing.get_type_hints()`.
"""
+
def __init__(self, name: str) -> None:
self.name = name
@@ -471,9 +523,9 @@ class TypeAliasForwardRef:
class TypeAliasModule:
- """Pseudo module class for autodoc_type_aliases."""
+ """Pseudo module class for :confval:`autodoc_type_aliases`."""
- def __init__(self, modname: str, mapping: dict[str, str]) -> None:
+ def __init__(self, modname: str, mapping: Mapping[str, str]) -> None:
self.__modname = modname
self.__mapping = mapping
@@ -504,12 +556,13 @@ class TypeAliasModule:
class TypeAliasNamespace(dict[str, Any]):
- """Pseudo namespace class for autodoc_type_aliases.
+ """Pseudo namespace class for :confval:`autodoc_type_aliases`.
- This enables to look up nested modules and classes like `mod1.mod2.Class`.
+ Useful for looking up nested objects via ``namespace.foo.bar.Class``.
"""
- def __init__(self, mapping: dict[str, str]) -> None:
+ def __init__(self, mapping: Mapping[str, str]) -> None:
+ super().__init__()
self.__mapping = mapping
def __getitem__(self, key: str) -> Any:
@@ -526,19 +579,21 @@ class TypeAliasNamespace(dict[str, Any]):
raise KeyError
-def _should_unwrap(subject: Callable) -> bool:
+def _should_unwrap(subject: Callable[..., Any]) -> bool:
"""Check the function should be unwrapped on getting signature."""
__globals__ = getglobals(subject)
- if (__globals__.get('__name__') == 'contextlib' and
- __globals__.get('__file__') == contextlib.__file__):
- # contextmanger should be unwrapped
- return True
-
- return False
+ # contextmanger should be unwrapped
+ return (
+ __globals__.get('__name__') == 'contextlib'
+ and __globals__.get('__file__') == contextlib.__file__
+ )
-def signature(subject: Callable, bound_method: bool = False, type_aliases: dict | None = None,
- ) -> inspect.Signature:
+def signature(
+ subject: Callable[..., Any],
+ bound_method: bool = False,
+ type_aliases: Mapping[str, str] | None = None,
+) -> Signature:
"""Return a Signature object for the given *subject*.
:param bound_method: Specify *subject* is a bound method or not
@@ -591,37 +646,17 @@ def signature(subject: Callable, bound_method: bool = False, type_aliases: dict
#
# For example, this helps a function having a default value `inspect._empty`.
# refs: https://github.com/sphinx-doc/sphinx/issues/7935
- return inspect.Signature(parameters, return_annotation=return_annotation,
- __validate_parameters__=False)
+ return Signature(
+ parameters, return_annotation=return_annotation, __validate_parameters__=False
+ )
-def evaluate_signature(sig: inspect.Signature, globalns: dict | None = None,
- localns: dict | None = None,
- ) -> inspect.Signature:
+def evaluate_signature(
+ sig: Signature,
+ globalns: dict[str, Any] | None = None,
+ localns: dict[str, Any] | None = None,
+) -> Signature:
"""Evaluate unresolved type annotations in a signature object."""
- def evaluate_forwardref(ref: ForwardRef, globalns: dict, localns: dict) -> Any:
- """Evaluate a forward reference."""
- return ref._evaluate(globalns, localns, frozenset())
-
- def evaluate(annotation: Any, globalns: dict, localns: dict) -> Any:
- """Evaluate unresolved type annotation."""
- try:
- if isinstance(annotation, str):
- ref = ForwardRef(annotation, True)
- annotation = evaluate_forwardref(ref, globalns, localns)
-
- if isinstance(annotation, ForwardRef):
- annotation = evaluate_forwardref(ref, globalns, localns)
- elif isinstance(annotation, str):
- # might be a ForwardRef'ed annotation in overloaded functions
- ref = ForwardRef(annotation, True)
- annotation = evaluate_forwardref(ref, globalns, localns)
- except (NameError, TypeError):
- # failed to evaluate type. skipped.
- pass
-
- return annotation
-
if globalns is None:
globalns = {}
if localns is None:
@@ -630,20 +665,56 @@ def evaluate_signature(sig: inspect.Signature, globalns: dict | None = None,
parameters = list(sig.parameters.values())
for i, param in enumerate(parameters):
if param.annotation:
- annotation = evaluate(param.annotation, globalns, localns)
+ annotation = _evaluate(param.annotation, globalns, localns)
parameters[i] = param.replace(annotation=annotation)
return_annotation = sig.return_annotation
if return_annotation:
- return_annotation = evaluate(return_annotation, globalns, localns)
+ return_annotation = _evaluate(return_annotation, globalns, localns)
return sig.replace(parameters=parameters, return_annotation=return_annotation)
-def stringify_signature(sig: inspect.Signature, show_annotation: bool = True,
- show_return_annotation: bool = True,
- unqualified_typehints: bool = False) -> str:
- """Stringify a Signature object.
+def _evaluate_forwardref(
+ ref: ForwardRef,
+ globalns: dict[str, Any] | None,
+ localns: dict[str, Any] | None,
+) -> Any:
+ """Evaluate a forward reference."""
+ return ref._evaluate(globalns, localns, frozenset())
+
+
+def _evaluate(
+ annotation: Any,
+ globalns: dict[str, Any],
+ localns: dict[str, Any],
+) -> Any:
+ """Evaluate unresolved type annotation."""
+ try:
+ if isinstance(annotation, str):
+ ref = ForwardRef(annotation, True)
+ annotation = _evaluate_forwardref(ref, globalns, localns)
+
+ if isinstance(annotation, ForwardRef):
+ annotation = _evaluate_forwardref(ref, globalns, localns)
+ elif isinstance(annotation, str):
+ # might be a ForwardRef'ed annotation in overloaded functions
+ ref = ForwardRef(annotation, True)
+ annotation = _evaluate_forwardref(ref, globalns, localns)
+ except (NameError, TypeError):
+ # failed to evaluate type. skipped.
+ pass
+
+ return annotation
+
+
+def stringify_signature(
+ sig: Signature,
+ show_annotation: bool = True,
+ show_return_annotation: bool = True,
+ unqualified_typehints: bool = False,
+) -> str:
+ """Stringify a :class:`~inspect.Signature` object.
:param show_annotation: If enabled, show annotations on the signature
:param show_return_annotation: If enabled, show annotation of the return value
@@ -655,31 +726,35 @@ def stringify_signature(sig: inspect.Signature, show_annotation: bool = True,
else:
mode = 'fully-qualified'
+ EMPTY = Parameter.empty
+
args = []
last_kind = None
for param in sig.parameters.values():
- if param.kind != param.POSITIONAL_ONLY and last_kind == param.POSITIONAL_ONLY:
+ if param.kind != Parameter.POSITIONAL_ONLY and last_kind == Parameter.POSITIONAL_ONLY:
# PEP-570: Separator for Positional Only Parameter: /
args.append('/')
- if param.kind == param.KEYWORD_ONLY and last_kind in (param.POSITIONAL_OR_KEYWORD,
- param.POSITIONAL_ONLY,
- None):
+ if param.kind == Parameter.KEYWORD_ONLY and last_kind in (
+ Parameter.POSITIONAL_OR_KEYWORD,
+ Parameter.POSITIONAL_ONLY,
+ None,
+ ):
# PEP-3102: Separator for Keyword Only Parameter: *
args.append('*')
arg = StringIO()
- if param.kind == param.VAR_POSITIONAL:
+ if param.kind is Parameter.VAR_POSITIONAL:
arg.write('*' + param.name)
- elif param.kind == param.VAR_KEYWORD:
+ elif param.kind is Parameter.VAR_KEYWORD:
arg.write('**' + param.name)
else:
arg.write(param.name)
- if show_annotation and param.annotation is not param.empty:
+ if show_annotation and param.annotation is not EMPTY:
arg.write(': ')
arg.write(stringify_annotation(param.annotation, mode))
- if param.default is not param.empty:
- if show_annotation and param.annotation is not param.empty:
+ if param.default is not EMPTY:
+ if show_annotation and param.annotation is not EMPTY:
arg.write(' = ')
else:
arg.write('=')
@@ -688,91 +763,86 @@ def stringify_signature(sig: inspect.Signature, show_annotation: bool = True,
args.append(arg.getvalue())
last_kind = param.kind
- if last_kind == Parameter.POSITIONAL_ONLY:
+ if last_kind is Parameter.POSITIONAL_ONLY:
# PEP-570: Separator for Positional Only Parameter: /
args.append('/')
concatenated_args = ', '.join(args)
- if (sig.return_annotation is Parameter.empty or
- show_annotation is False or
- show_return_annotation is False):
+ if sig.return_annotation is EMPTY or not show_annotation or not show_return_annotation:
return f'({concatenated_args})'
else:
- annotation = stringify_annotation(sig.return_annotation, mode)
- return f'({concatenated_args}) -> {annotation}'
+ retann = stringify_annotation(sig.return_annotation, mode)
+ return f'({concatenated_args}) -> {retann}'
-def signature_from_str(signature: str) -> inspect.Signature:
- """Create a Signature object from string."""
+def signature_from_str(signature: str) -> Signature:
+ """Create a :class:`~inspect.Signature` object from a string."""
code = 'def func' + signature + ': pass'
module = ast.parse(code)
- function = cast(ast.FunctionDef, module.body[0])
+ function = typing.cast(ast.FunctionDef, module.body[0])
return signature_from_ast(function, code)
-def signature_from_ast(node: ast.FunctionDef, code: str = '') -> inspect.Signature:
- """Create a Signature object from AST *node*."""
- args = node.args
- defaults = list(args.defaults)
- params = []
- if hasattr(args, "posonlyargs"):
- posonlyargs = len(args.posonlyargs)
- positionals = posonlyargs + len(args.args)
- else:
- posonlyargs = 0
- positionals = len(args.args)
-
- for _ in range(len(defaults), positionals):
- defaults.insert(0, Parameter.empty) # type: ignore[arg-type]
-
- if hasattr(args, "posonlyargs"):
- for i, arg in enumerate(args.posonlyargs):
- if defaults[i] is Parameter.empty:
- default = Parameter.empty
- else:
- default = DefaultValue(
- ast_unparse(defaults[i], code)) # type: ignore[assignment]
-
- annotation = ast_unparse(arg.annotation, code) or Parameter.empty
- params.append(Parameter(arg.arg, Parameter.POSITIONAL_ONLY,
- default=default, annotation=annotation))
-
- for i, arg in enumerate(args.args):
- if defaults[i + posonlyargs] is Parameter.empty:
- default = Parameter.empty
- else:
- default = DefaultValue(
- ast_unparse(defaults[i + posonlyargs], code), # type: ignore[assignment]
- )
-
- annotation = ast_unparse(arg.annotation, code) or Parameter.empty
- params.append(Parameter(arg.arg, Parameter.POSITIONAL_OR_KEYWORD,
- default=default, annotation=annotation))
+def signature_from_ast(node: ast.FunctionDef, code: str = '') -> Signature:
+ """Create a :class:`~inspect.Signature` object from an AST node."""
+ EMPTY = Parameter.empty
+ args: ast.arguments = node.args
+ defaults: tuple[ast.expr | None, ...] = tuple(args.defaults)
+ pos_only_offset = len(args.posonlyargs)
+ defaults_offset = pos_only_offset + len(args.args) - len(defaults)
+ # The sequence ``D = args.defaults`` contains non-None AST expressions,
+ # so we can use ``None`` as a sentinel value for that to indicate that
+ # there is no default value for a specific parameter.
+ #
+ # Let *p* be the number of positional-only and positional-or-keyword
+ # arguments. Note that ``0 <= len(D) <= p`` and ``D[0]`` is the default
+ # value corresponding to a positional-only *or* a positional-or-keyword
+ # argument. Since a non-default argument cannot follow a default argument,
+ # the sequence *D* can be completed on the left by adding None sentinels
+ # so that ``len(D) == p`` and ``D[i]`` is the *i*-th default argument.
+ defaults = (None,) * defaults_offset + defaults
+
+ # construct the parameter list
+ params: list[Parameter] = []
+
+ # positional-only arguments (introduced in Python 3.8)
+ for arg, defexpr in zip(args.posonlyargs, defaults):
+ params.append(_define(Parameter.POSITIONAL_ONLY, arg, code, defexpr=defexpr))
+
+ # normal arguments
+ for arg, defexpr in zip(args.args, defaults[pos_only_offset:]):
+ params.append(_define(Parameter.POSITIONAL_OR_KEYWORD, arg, code, defexpr=defexpr))
+
+ # variadic positional argument (no possible default expression)
if args.vararg:
- annotation = ast_unparse(args.vararg.annotation, code) or Parameter.empty
- params.append(Parameter(args.vararg.arg, Parameter.VAR_POSITIONAL,
- annotation=annotation))
+ params.append(_define(Parameter.VAR_POSITIONAL, args.vararg, code, defexpr=None))
- for i, arg in enumerate(args.kwonlyargs):
- if args.kw_defaults[i] is None:
- default = Parameter.empty
- else:
- default = DefaultValue(
- ast_unparse(args.kw_defaults[i], code)) # type: ignore[arg-type,assignment]
- annotation = ast_unparse(arg.annotation, code) or Parameter.empty
- params.append(Parameter(arg.arg, Parameter.KEYWORD_ONLY, default=default,
- annotation=annotation))
+ # keyword-only arguments
+ for arg, defexpr in zip(args.kwonlyargs, args.kw_defaults):
+ params.append(_define(Parameter.KEYWORD_ONLY, arg, code, defexpr=defexpr))
+ # variadic keyword argument (no possible default expression)
if args.kwarg:
- annotation = ast_unparse(args.kwarg.annotation, code) or Parameter.empty
- params.append(Parameter(args.kwarg.arg, Parameter.VAR_KEYWORD,
- annotation=annotation))
+ params.append(_define(Parameter.VAR_KEYWORD, args.kwarg, code, defexpr=None))
+
+ return_annotation = ast_unparse(node.returns, code) or EMPTY
+ return Signature(params, return_annotation=return_annotation)
+
- return_annotation = ast_unparse(node.returns, code) or Parameter.empty
+def _define(
+ kind: _ParameterKind,
+ arg: ast.arg,
+ code: str,
+ *,
+ defexpr: ast.expr | None,
+) -> Parameter:
+ EMPTY = Parameter.empty
- return inspect.Signature(params, return_annotation=return_annotation)
+ default = EMPTY if defexpr is None else DefaultValue(ast_unparse(defexpr, code))
+ annotation = ast_unparse(arg.annotation, code) or EMPTY
+ return Parameter(arg.arg, kind, default=default, annotation=annotation)
def getdoc(
@@ -790,13 +860,6 @@ def getdoc(
* inherited docstring
* inherited decorated methods
"""
- def getdoc_internal(obj: Any, attrgetter: Callable = safe_getattr) -> str | None:
- doc = attrgetter(obj, '__doc__', None)
- if isinstance(doc, str):
- return doc
- else:
- return None
-
if cls and name and isclassmethod(obj, cls, name):
for basecls in getmro(cls):
meth = basecls.__dict__.get(name)
@@ -805,7 +868,7 @@ def getdoc(
if doc is not None or not allow_inherited:
return doc
- doc = getdoc_internal(obj)
+ doc = _getdoc_internal(obj)
if ispartial(obj) and doc == obj.__class__.__doc__:
return getdoc(obj.func)
elif doc is None and allow_inherited:
@@ -814,7 +877,7 @@ def getdoc(
for basecls in getmro(cls):
meth = safe_getattr(basecls, name, None)
if meth is not None:
- doc = getdoc_internal(meth)
+ doc = _getdoc_internal(meth)
if doc is not None:
break
@@ -831,3 +894,12 @@ def getdoc(
doc = inspect.getdoc(obj)
return doc
+
+
+def _getdoc_internal(
+ obj: Any, attrgetter: Callable[[Any, str, Any], Any] = safe_getattr
+) -> str | None:
+ doc = attrgetter(obj, '__doc__', None)
+ if isinstance(doc, str):
+ return doc
+ return None
diff --git a/sphinx/util/inventory.py b/sphinx/util/inventory.py
index 89f0070..a43fd03 100644
--- a/sphinx/util/inventory.py
+++ b/sphinx/util/inventory.py
@@ -25,7 +25,7 @@ class InventoryFileReader:
This reader supports mixture of texts and compressed texts.
"""
- def __init__(self, stream: IO) -> None:
+ def __init__(self, stream: IO[bytes]) -> None:
self.stream = stream
self.buffer = b''
self.eof = False
@@ -77,7 +77,12 @@ class InventoryFileReader:
class InventoryFile:
@classmethod
- def load(cls, stream: IO, uri: str, joinfunc: Callable) -> Inventory:
+ def load(
+ cls: type[InventoryFile],
+ stream: IO[bytes],
+ uri: str,
+ joinfunc: Callable[[str, str], str],
+ ) -> Inventory:
reader = InventoryFileReader(stream)
line = reader.readline().rstrip()
if line == '# Sphinx inventory version 1':
@@ -88,7 +93,12 @@ class InventoryFile:
raise ValueError('invalid inventory header: %s' % line)
@classmethod
- def load_v1(cls, stream: InventoryFileReader, uri: str, join: Callable) -> Inventory:
+ def load_v1(
+ cls: type[InventoryFile],
+ stream: InventoryFileReader,
+ uri: str,
+ join: Callable[[str, str], str],
+ ) -> Inventory:
invdata: Inventory = {}
projname = stream.readline().rstrip()[11:]
version = stream.readline().rstrip()[11:]
@@ -106,7 +116,12 @@ class InventoryFile:
return invdata
@classmethod
- def load_v2(cls, stream: InventoryFileReader, uri: str, join: Callable) -> Inventory:
+ def load_v2(
+ cls: type[InventoryFile],
+ stream: InventoryFileReader,
+ uri: str,
+ join: Callable[[str, str], str],
+ ) -> Inventory:
invdata: Inventory = {}
projname = stream.readline().rstrip()[11:]
version = stream.readline().rstrip()[11:]
@@ -140,7 +155,9 @@ class InventoryFile:
return invdata
@classmethod
- def dump(cls, filename: str, env: BuildEnvironment, builder: Builder) -> None:
+ def dump(
+ cls: type[InventoryFile], filename: str, env: BuildEnvironment, builder: Builder,
+ ) -> None:
def escape(string: str) -> str:
return re.sub("\\s+", " ", string)
diff --git a/sphinx/util/logging.py b/sphinx/util/logging.py
index 429018a..e107a56 100644
--- a/sphinx/util/logging.py
+++ b/sphinx/util/logging.py
@@ -16,7 +16,7 @@ from sphinx.util.console import colorize
from sphinx.util.osutil import abspath
if TYPE_CHECKING:
- from collections.abc import Generator
+ from collections.abc import Iterator
from docutils.nodes import Node
@@ -85,6 +85,7 @@ def convert_serializable(records: list[logging.LogRecord]) -> None:
class SphinxLogRecord(logging.LogRecord):
"""Log record class supporting location"""
+
prefix = ''
location: Any = None
@@ -101,11 +102,13 @@ class SphinxLogRecord(logging.LogRecord):
class SphinxInfoLogRecord(SphinxLogRecord):
"""Info log record class supporting location"""
+
prefix = '' # do not show any prefix for INFO messages
class SphinxWarningLogRecord(SphinxLogRecord):
"""Warning log record class supporting location"""
+
@property
def prefix(self) -> str: # type: ignore[override]
if self.levelno >= logging.CRITICAL:
@@ -118,6 +121,7 @@ class SphinxWarningLogRecord(SphinxLogRecord):
class SphinxLoggerAdapter(logging.LoggerAdapter):
"""LoggerAdapter allowing ``type`` and ``subtype`` keywords."""
+
KEYWORDS = ['type', 'subtype', 'location', 'nonl', 'color', 'once']
def log( # type: ignore[override]
@@ -143,9 +147,56 @@ class SphinxLoggerAdapter(logging.LoggerAdapter):
def handle(self, record: logging.LogRecord) -> None:
self.logger.handle(record)
+ def warning( # type: ignore[override]
+ self,
+ msg: object,
+ *args: object,
+ type: None | str = None,
+ subtype: None | str = None,
+ location: None | str | tuple[str | None, int | None] | Node = None,
+ nonl: bool = True,
+ color: str | None = None,
+ once: bool = False,
+ **kwargs: Any,
+ ) -> None:
+ """Log a sphinx warning.
+
+ It is recommended to include a ``type`` and ``subtype`` for warnings as
+ these can be displayed to the user using :confval:`show_warning_types`
+ and used in :confval:`suppress_warnings` to suppress specific warnings.
+
+ It is also recommended to specify a ``location`` whenever possible
+ to help users in correcting the warning.
+
+ :param msg: The message, which may contain placeholders for ``args``.
+ :param args: The arguments to substitute into ``msg``.
+ :param type: The type of the warning.
+ :param subtype: The subtype of the warning.
+ :param location: The source location of the warning's origin,
+ which can be a string (the ``docname`` or ``docname:lineno``),
+ a tuple of ``(docname, lineno)``,
+ or the docutils node object.
+ :param nonl: Whether to append a new line terminator to the message.
+ :param color: A color code for the message.
+ :param once: Do not log this warning,
+ if a previous warning already has same ``msg``, ``args`` and ``once=True``.
+ """
+ return super().warning(
+ msg,
+ *args,
+ type=type,
+ subtype=subtype,
+ location=location,
+ nonl=nonl,
+ color=color,
+ once=once,
+ **kwargs,
+ )
+
class WarningStreamHandler(logging.StreamHandler):
"""StreamHandler for warnings."""
+
pass
@@ -195,7 +246,7 @@ class MemoryHandler(logging.handlers.BufferingHandler):
@contextmanager
-def pending_warnings() -> Generator[logging.Handler, None, None]:
+def pending_warnings() -> Iterator[logging.Handler]:
"""Context manager to postpone logging warnings temporarily.
Similar to :func:`pending_logging`.
@@ -223,7 +274,7 @@ def pending_warnings() -> Generator[logging.Handler, None, None]:
@contextmanager
-def suppress_logging() -> Generator[MemoryHandler, None, None]:
+def suppress_logging() -> Iterator[MemoryHandler]:
"""Context manager to suppress logging all logs temporarily.
For example::
@@ -252,7 +303,7 @@ def suppress_logging() -> Generator[MemoryHandler, None, None]:
@contextmanager
-def pending_logging() -> Generator[MemoryHandler, None, None]:
+def pending_logging() -> Iterator[MemoryHandler]:
"""Context manager to postpone logging all logs temporarily.
For example::
@@ -272,7 +323,7 @@ def pending_logging() -> Generator[MemoryHandler, None, None]:
@contextmanager
-def skip_warningiserror(skip: bool = True) -> Generator[None, None, None]:
+def skip_warningiserror(skip: bool = True) -> Iterator[None]:
"""Context manager to skip WarningIsErrorFilter temporarily."""
logger = logging.getLogger(NAMESPACE)
@@ -292,7 +343,7 @@ def skip_warningiserror(skip: bool = True) -> Generator[None, None, None]:
@contextmanager
-def prefixed_warnings(prefix: str) -> Generator[None, None, None]:
+def prefixed_warnings(prefix: str) -> Iterator[None]:
"""Context manager to prepend prefix to all warning log records temporarily.
For example::
@@ -342,7 +393,7 @@ class LogCollector:
self.logs: list[logging.LogRecord] = []
@contextmanager
- def collect(self) -> Generator[None, None, None]:
+ def collect(self) -> Iterator[None]:
with pending_logging() as memhandler:
yield
@@ -475,7 +526,9 @@ class SphinxLogRecordTranslator(logging.Filter):
* Make a instance of SphinxLogRecord
* docname to path if location given
+ * append warning type/subtype to message if :confval:`show_warning_types` is ``True``
"""
+
LogRecordClass: type[logging.LogRecord]
def __init__(self, app: Sphinx) -> None:
@@ -507,13 +560,32 @@ class SphinxLogRecordTranslator(logging.Filter):
class InfoLogRecordTranslator(SphinxLogRecordTranslator):
"""LogRecordTranslator for INFO level log records."""
+
LogRecordClass = SphinxInfoLogRecord
class WarningLogRecordTranslator(SphinxLogRecordTranslator):
"""LogRecordTranslator for WARNING level log records."""
+
LogRecordClass = SphinxWarningLogRecord
+ def filter(self, record: SphinxWarningLogRecord) -> bool: # type: ignore[override]
+ ret = super().filter(record)
+
+ try:
+ show_warning_types = self.app.config.show_warning_types
+ except AttributeError:
+ # config is not initialized yet (ex. in conf.py)
+ show_warning_types = False
+ if show_warning_types:
+ if log_type := getattr(record, 'type', ''):
+ if log_subtype := getattr(record, 'subtype', ''):
+ record.msg += f' [{log_type}.{log_subtype}]'
+ else:
+ record.msg += f' [{log_type}]'
+
+ return ret
+
def get_node_location(node: Node) -> str | None:
source, line = get_source_line(node)
@@ -543,6 +615,7 @@ class ColorizeFormatter(logging.Formatter):
class SafeEncodingWriter:
"""Stream writer which ignores UnicodeEncodeError silently"""
+
def __init__(self, stream: IO) -> None:
self.stream = stream
self.encoding = getattr(stream, 'encoding', 'ascii') or 'ascii'
@@ -562,6 +635,7 @@ class SafeEncodingWriter:
class LastMessagesWriter:
"""Stream writer storing last 10 messages in memory to save trackback"""
+
def __init__(self, app: Sphinx, stream: IO) -> None:
self.app = app
diff --git a/sphinx/util/matching.py b/sphinx/util/matching.py
index dd91905..481ca12 100644
--- a/sphinx/util/matching.py
+++ b/sphinx/util/matching.py
@@ -91,7 +91,8 @@ _pat_cache: dict[str, re.Pattern[str]] = {}
def patmatch(name: str, pat: str) -> re.Match[str] | None:
"""Return if name matches the regular expression (pattern)
- ``pat```. Adapted from fnmatch module."""
+ ``pat```. Adapted from fnmatch module.
+ """
if pat not in _pat_cache:
_pat_cache[pat] = re.compile(_translate_pattern(pat))
return _pat_cache[pat].match(name)
diff --git a/sphinx/util/math.py b/sphinx/util/math.py
index ef0eb39..97b8440 100644
--- a/sphinx/util/math.py
+++ b/sphinx/util/math.py
@@ -54,8 +54,7 @@ def wrap_displaymath(text: str, label: str | None, numbering: bool) -> str:
else:
begin = r'\begin{align*}%s\!\begin{aligned}' % labeldef
end = r'\end{aligned}\end{align*}'
- for part in parts:
- equations.append('%s\\\\\n' % part.strip())
+ equations.extend('%s\\\\\n' % part.strip() for part in parts)
concatenated_equations = ''.join(equations)
return f'{begin}\n{concatenated_equations}{end}'
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index b68b7fd..bbc1f64 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -5,18 +5,19 @@ from __future__ import annotations
import contextlib
import re
import unicodedata
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING, Any, Callable, Generic, TypeVar, cast
from docutils import nodes
+from docutils.nodes import Node
from sphinx import addnodes
from sphinx.locale import __
from sphinx.util import logging
if TYPE_CHECKING:
- from collections.abc import Iterable
+ from collections.abc import Iterable, Iterator
- from docutils.nodes import Element, Node
+ from docutils.nodes import Element
from docutils.parsers.rst import Directive
from docutils.parsers.rst.states import Inliner
from docutils.statemachine import StringList
@@ -33,7 +34,10 @@ explicit_title_re = re.compile(r'^(.+?)\s*(?<!\x00)<([^<]*?)>$', re.DOTALL)
caption_ref_re = explicit_title_re # b/w compat alias
-class NodeMatcher:
+N = TypeVar("N", bound=Node)
+
+
+class NodeMatcher(Generic[N]):
"""A helper class for Node.findall().
It checks that the given node is an instance of the specified node-classes and
@@ -43,20 +47,18 @@ class NodeMatcher:
and ``reftype`` attributes::
matcher = NodeMatcher(nodes.reference, refdomain='std', reftype='citation')
- doctree.findall(matcher)
+ matcher.findall(doctree)
# => [<reference ...>, <reference ...>, ...]
A special value ``typing.Any`` matches any kind of node-attributes. For example,
following example searches ``reference`` node having ``refdomain`` attributes::
- from __future__ import annotations
-from typing import TYPE_CHECKING, Any
matcher = NodeMatcher(nodes.reference, refdomain=Any)
- doctree.findall(matcher)
+ matcher.findall(doctree)
# => [<reference ...>, <reference ...>, ...]
"""
- def __init__(self, *node_classes: type[Node], **attrs: Any) -> None:
+ def __init__(self, *node_classes: type[N], **attrs: Any) -> None:
self.classes = node_classes
self.attrs = attrs
@@ -85,6 +87,15 @@ from typing import TYPE_CHECKING, Any
def __call__(self, node: Node) -> bool:
return self.match(node)
+ def findall(self, node: Node) -> Iterator[N]:
+ """An alternative to `Node.findall` with improved type safety.
+
+ While the `NodeMatcher` object can be used as an argument to `Node.findall`, doing so
+ confounds type checkers' ability to determine the return type of the iterator.
+ """
+ for found in node.findall(self):
+ yield cast(N, found)
+
def get_full_module_name(node: Node) -> str:
"""
@@ -99,7 +110,7 @@ def get_full_module_name(node: Node) -> str:
def repr_domxml(node: Node, length: int = 80) -> str:
"""
return DOM XML representation of the specified node like:
- '<paragraph translatable="False"><inline classes="versionmodified">New in version...'
+ '<paragraph translatable="False"><inline classes="versionadded">Added in version...'
:param nodes.Node node: target node
:param int length:
@@ -127,7 +138,7 @@ def apply_source_workaround(node: Element) -> None:
get_full_module_name(node), repr_domxml(node))
definition_list_item = node.parent
node.source = definition_list_item.source
- node.line = definition_list_item.line - 1
+ node.line = definition_list_item.line - 1 # type: ignore[operator]
node.rawsource = node.astext() # set 'classifier1' (or 'classifier2')
elif isinstance(node, nodes.classifier) and not node.source:
# docutils-0.15 fills in rawsource attribute, but not in source.
@@ -220,16 +231,13 @@ def is_translatable(node: Node) -> bool:
return False
# <field_name>orphan</field_name>
# XXX ignore all metadata (== docinfo)
- if isinstance(node, nodes.field_name) and node.children[0] == 'orphan':
+ if isinstance(node, nodes.field_name) and (node.children[0] == 'orphan'):
logger.debug('[i18n] SKIP %r because orphan node: %s',
get_full_module_name(node), repr_domxml(node))
return False
return True
- if isinstance(node, nodes.meta): # type: ignore[attr-defined]
- return True
-
- return False
+ return isinstance(node, nodes.meta)
LITERAL_TYPE_NODES = (
@@ -245,10 +253,10 @@ IMAGE_TYPE_NODES = (
def extract_messages(doctree: Element) -> Iterable[tuple[Element, str]]:
"""Extract translatable messages from a document tree."""
- for node in doctree.findall(is_translatable): # type: Element
+ for node in doctree.findall(is_translatable):
if isinstance(node, addnodes.translatable):
for msg in node.extract_original_messages():
- yield node, msg
+ yield node, msg # type: ignore[misc]
continue
if isinstance(node, LITERAL_TYPE_NODES):
msg = node.rawsource
@@ -262,14 +270,14 @@ def extract_messages(doctree: Element) -> Iterable[tuple[Element, str]]:
msg = f'.. image:: {image_uri}'
else:
msg = ''
- elif isinstance(node, nodes.meta): # type: ignore[attr-defined]
+ elif isinstance(node, nodes.meta):
msg = node["content"]
else:
- msg = node.rawsource.replace('\n', ' ').strip()
+ msg = node.rawsource.replace('\n', ' ').strip() # type: ignore[attr-defined]
# XXX nodes rendering empty are likely a bug in sphinx.addnodes
if msg:
- yield node, msg
+ yield node, msg # type: ignore[misc]
def get_node_source(node: Element) -> str:
@@ -308,7 +316,7 @@ def traverse_translatable_index(
) -> Iterable[tuple[Element, list[tuple[str, str, str, str, str | None]]]]:
"""Traverse translatable index node from a document tree."""
matcher = NodeMatcher(addnodes.index, inline=False)
- for node in doctree.findall(matcher): # type: addnodes.index
+ for node in matcher.findall(doctree):
if 'raw_entries' in node:
entries = node['raw_entries']
else:
@@ -402,9 +410,14 @@ def process_index_entry(entry: str, targetid: str,
return indexentries
-def inline_all_toctrees(builder: Builder, docnameset: set[str], docname: str,
- tree: nodes.document, colorfunc: Callable, traversed: list[str],
- ) -> nodes.document:
+def inline_all_toctrees(
+ builder: Builder,
+ docnameset: set[str],
+ docname: str,
+ tree: nodes.document,
+ colorfunc: Callable[[str], str],
+ traversed: list[str],
+) -> nodes.document:
"""Inline all toctrees in the *tree*.
Record all docnames in *docnameset*, and output docnames with *colorfunc*.
@@ -599,10 +612,7 @@ def is_smartquotable(node: Node) -> bool:
if pnode.get('support_smartquotes', None) is False:
return False
- if getattr(node, 'support_smartquotes', None) is False:
- return False
-
- return True
+ return getattr(node, 'support_smartquotes', None) is not False
def process_only_nodes(document: Node, tags: Tags) -> None:
diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py
index c6adbe4..97a298e 100644
--- a/sphinx/util/osutil.py
+++ b/sphinx/util/osutil.py
@@ -11,12 +11,14 @@ import sys
import unicodedata
from io import StringIO
from os import path
-from typing import TYPE_CHECKING, Any
+from typing import TYPE_CHECKING
from sphinx.deprecation import _deprecation_warning
if TYPE_CHECKING:
from collections.abc import Iterator
+ from types import TracebackType
+ from typing import Any
# SEP separates path elements in the canonical file names
#
@@ -36,7 +38,7 @@ def canon_path(native_path: str | os.PathLike[str], /) -> str:
def path_stabilize(filepath: str | os.PathLike[str], /) -> str:
- "Normalize path separator and unicode string"
+ """Normalize path separator and unicode string"""
new_path = canon_path(filepath)
return unicodedata.normalize('NFC', new_path)
@@ -88,7 +90,16 @@ def copytimes(source: str | os.PathLike[str], dest: str | os.PathLike[str]) -> N
def copyfile(source: str | os.PathLike[str], dest: str | os.PathLike[str]) -> None:
"""Copy a file and its modification times, if possible.
- Note: ``copyfile`` skips copying if the file has not been changed"""
+ :param source: An existing source to copy.
+ :param dest: The destination path.
+ :raise FileNotFoundError: The *source* does not exist.
+
+ .. note:: :func:`copyfile` is a no-op if *source* and *dest* are identical.
+ """
+ if not path.exists(source):
+ msg = f'{os.fsdecode(source)} does not exist'
+ raise FileNotFoundError(msg)
+
if not path.exists(dest) or not filecmp.cmp(source, dest):
shutil.copyfile(source, dest)
with contextlib.suppress(OSError):
@@ -131,15 +142,22 @@ abspath = path.abspath
class _chdir:
"""Remove this fall-back once support for Python 3.10 is removed."""
- def __init__(self, target_dir: str, /):
+
+ def __init__(self, target_dir: str, /) -> None:
self.path = target_dir
self._dirs: list[str] = []
- def __enter__(self):
+ def __enter__(self) -> None:
self._dirs.append(os.getcwd())
os.chdir(self.path)
- def __exit__(self, _exc_type, _exc_value, _traceback, /):
+ def __exit__(
+ self,
+ type: type[BaseException] | None,
+ value: BaseException | None,
+ traceback: TracebackType | None,
+ /,
+ ) -> None:
os.chdir(self._dirs.pop())
@@ -163,6 +181,7 @@ class FileAvoidWrite:
Objects can be used as context managers.
"""
+
def __init__(self, path: str) -> None:
self._path = path
self._io: StringIO | None = None
diff --git a/sphinx/util/parallel.py b/sphinx/util/parallel.py
index 0afdff9..10f8c89 100644
--- a/sphinx/util/parallel.py
+++ b/sphinx/util/parallel.py
@@ -94,7 +94,12 @@ class ParallelTasks:
proc = context.Process(target=self._process, args=(psend, task_func, arg))
self._procs[tid] = proc
self._precvsWaiting[tid] = precv
- self._join_one()
+ try:
+ self._join_one()
+ except Exception:
+ # shutdown other child processes on failure
+ # (e.g. OSError: Failed to allocate memory)
+ self.terminate()
def join(self) -> None:
try:
diff --git a/sphinx/util/requests.py b/sphinx/util/requests.py
index ec3d8d2..4afbd37 100644
--- a/sphinx/util/requests.py
+++ b/sphinx/util/requests.py
@@ -30,17 +30,19 @@ def _get_tls_cacert(url: str, certs: str | dict[str, str] | None) -> str | bool:
def get(url: str, **kwargs: Any) -> requests.Response:
- """Sends a GET request like requests.get().
+ """Sends a GET request like ``requests.get()``.
- This sets up User-Agent header and TLS verification automatically."""
+ This sets up User-Agent header and TLS verification automatically.
+ """
with _Session() as session:
return session.get(url, **kwargs)
def head(url: str, **kwargs: Any) -> requests.Response:
- """Sends a HEAD request like requests.head().
+ """Sends a HEAD request like ``requests.head()``.
- This sets up User-Agent header and TLS verification automatically."""
+ This sets up User-Agent header and TLS verification automatically.
+ """
with _Session() as session:
return session.head(url, **kwargs)
@@ -54,7 +56,8 @@ class _Session(requests.Session):
) -> requests.Response:
"""Sends a request with an HTTP verb and url.
- This sets up User-Agent header and TLS verification automatically."""
+ This sets up User-Agent header and TLS verification automatically.
+ """
headers = kwargs.setdefault('headers', {})
headers.setdefault('User-Agent', _user_agent or _USER_AGENT)
if _tls_info:
diff --git a/sphinx/util/rst.py b/sphinx/util/rst.py
index 1e8fd66..4e8fdee 100644
--- a/sphinx/util/rst.py
+++ b/sphinx/util/rst.py
@@ -5,11 +5,11 @@ from __future__ import annotations
import re
from collections import defaultdict
from contextlib import contextmanager
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, cast
from unicodedata import east_asian_width
from docutils.parsers.rst import roles
-from docutils.parsers.rst.languages import en as english
+from docutils.parsers.rst.languages import en as english # type: ignore[attr-defined]
from docutils.parsers.rst.states import Body
from docutils.utils import Reporter
from jinja2 import Environment, pass_environment
@@ -18,7 +18,7 @@ from sphinx.locale import __
from sphinx.util import docutils, logging
if TYPE_CHECKING:
- from collections.abc import Generator
+ from collections.abc import Iterator
from docutils.statemachine import StringList
@@ -54,17 +54,18 @@ def textwidth(text: str, widechars: str = 'WF') -> int:
def heading(env: Environment, text: str, level: int = 1) -> str:
"""Create a heading for *level*."""
assert level <= 3
- width = textwidth(text, WIDECHARS[env.language])
+ # ``env.language`` is injected by ``sphinx.util.template.ReSTRenderer``
+ width = textwidth(text, WIDECHARS[env.language]) # type: ignore[attr-defined]
sectioning_char = SECTIONING_CHARS[level - 1]
return f'{text}\n{sectioning_char * width}'
@contextmanager
-def default_role(docname: str, name: str) -> Generator[None, None, None]:
+def default_role(docname: str, name: str) -> Iterator[None]:
if name:
dummy_reporter = Reporter('', 4, 4)
role_fn, _ = roles.role(name, english, 0, dummy_reporter)
- if role_fn: # type: ignore[truthy-function]
+ if role_fn:
docutils.register_role('', role_fn) # type: ignore[arg-type]
else:
logger.warning(__('default role %s not found'), name, location=docname)
@@ -102,6 +103,7 @@ def append_epilog(content: StringList, epilog: str) -> None:
if epilog:
if len(content) > 0:
source, lineno = content.info(-1)
+ lineno = cast(int, lineno) # lineno will never be None, since len(content) > 0
else:
source = '<generated>'
lineno = 0
diff --git a/sphinx/util/tags.py b/sphinx/util/tags.py
index 73e1a83..5d8d890 100644
--- a/sphinx/util/tags.py
+++ b/sphinx/util/tags.py
@@ -20,8 +20,8 @@ class BooleanParser(Parser):
Only allow condition exprs and/or/not operations.
"""
- def parse_compare(self) -> Node:
- node: Node
+ def parse_compare(self) -> nodes.Expr:
+ node: nodes.Expr
token = self.stream.current
if token.type == 'name':
if token.value in ('true', 'false', 'True', 'False'):
@@ -67,7 +67,7 @@ class Tags:
msg = 'chunk after expression'
raise ValueError(msg)
- def eval_node(node: Node) -> bool:
+ def eval_node(node: Node | None) -> bool:
if isinstance(node, nodes.CondExpr):
if eval_node(node.test):
return eval_node(node.expr1)
diff --git a/sphinx/util/template.py b/sphinx/util/template.py
index a16a7a1..0ddc29e 100644
--- a/sphinx/util/template.py
+++ b/sphinx/util/template.py
@@ -26,7 +26,8 @@ class BaseRenderer:
def __init__(self, loader: BaseLoader | None = None) -> None:
self.env = SandboxedEnvironment(loader=loader, extensions=['jinja2.ext.i18n'])
self.env.filters['repr'] = repr
- self.env.install_gettext_translations(get_translator())
+ # ``install_gettext_translations`` is injected by the ``jinja2.ext.i18n`` extension
+ self.env.install_gettext_translations(get_translator()) # type: ignore[attr-defined]
def render(self, template_name: str, context: dict[str, Any]) -> str:
return self.env.get_template(template_name).render(context)
@@ -47,7 +48,9 @@ class FileRenderer(BaseRenderer):
super().__init__(loader)
@classmethod
- def render_from_file(cls, filename: str, context: dict[str, Any]) -> str:
+ def render_from_file(
+ cls: type[FileRenderer], filename: str, context: dict[str, Any],
+ ) -> str:
dirname = os.path.dirname(filename)
basename = os.path.basename(filename)
return cls(dirname).render(basename, context)
@@ -60,7 +63,9 @@ class SphinxRenderer(FileRenderer):
super().__init__(template_path)
@classmethod
- def render_from_file(cls, filename: str, context: dict[str, Any]) -> str:
+ def render_from_file(
+ cls: type[FileRenderer], filename: str, context: dict[str, Any],
+ ) -> str:
return FileRenderer.render_from_file(filename, context)
diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py
index 171420d..4fbb592 100644
--- a/sphinx/util/typing.py
+++ b/sphinx/util/typing.py
@@ -3,11 +3,12 @@
from __future__ import annotations
import sys
+import types
import typing
from collections.abc import Sequence
+from contextvars import Context, ContextVar, Token
from struct import Struct
-from types import TracebackType
-from typing import TYPE_CHECKING, Any, Callable, ForwardRef, TypeVar, Union
+from typing import TYPE_CHECKING, Any, Callable, ForwardRef, TypedDict, TypeVar, Union
from docutils import nodes
from docutils.parsers.rst.states import Inliner
@@ -15,22 +16,47 @@ from docutils.parsers.rst.states import Inliner
if TYPE_CHECKING:
import enum
-try:
- from types import UnionType # type: ignore[attr-defined] # python 3.10 or above
-except ImportError:
+ from sphinx.application import Sphinx
+
+if sys.version_info >= (3, 10):
+ from types import UnionType
+else:
UnionType = None
-# classes that have incorrect __module__
-INVALID_BUILTIN_CLASSES = {
+# classes that have an incorrect .__module__ attribute
+_INVALID_BUILTIN_CLASSES = {
+ Context: 'contextvars.Context', # Context.__module__ == '_contextvars'
+ ContextVar: 'contextvars.ContextVar', # ContextVar.__module__ == '_contextvars'
+ Token: 'contextvars.Token', # Token.__module__ == '_contextvars'
Struct: 'struct.Struct', # Struct.__module__ == '_struct'
- TracebackType: 'types.TracebackType', # TracebackType.__module__ == 'builtins'
+ # types in 'types' with <type>.__module__ == 'builtins':
+ types.AsyncGeneratorType: 'types.AsyncGeneratorType',
+ types.BuiltinFunctionType: 'types.BuiltinFunctionType',
+ types.BuiltinMethodType: 'types.BuiltinMethodType',
+ types.CellType: 'types.CellType',
+ types.ClassMethodDescriptorType: 'types.ClassMethodDescriptorType',
+ types.CodeType: 'types.CodeType',
+ types.CoroutineType: 'types.CoroutineType',
+ types.FrameType: 'types.FrameType',
+ types.FunctionType: 'types.FunctionType',
+ types.GeneratorType: 'types.GeneratorType',
+ types.GetSetDescriptorType: 'types.GetSetDescriptorType',
+ types.LambdaType: 'types.LambdaType',
+ types.MappingProxyType: 'types.MappingProxyType',
+ types.MemberDescriptorType: 'types.MemberDescriptorType',
+ types.MethodDescriptorType: 'types.MethodDescriptorType',
+ types.MethodType: 'types.MethodType',
+ types.MethodWrapperType: 'types.MethodWrapperType',
+ types.ModuleType: 'types.ModuleType',
+ types.TracebackType: 'types.TracebackType',
+ types.WrapperDescriptorType: 'types.WrapperDescriptorType',
}
def is_invalid_builtin_class(obj: Any) -> bool:
"""Check *obj* is an invalid built-in class."""
try:
- return obj in INVALID_BUILTIN_CLASSES
+ return obj in _INVALID_BUILTIN_CLASSES
except TypeError: # unhashable type
return False
@@ -64,6 +90,30 @@ InventoryItem = tuple[
Inventory = dict[str, dict[str, InventoryItem]]
+class ExtensionMetadata(TypedDict, total=False):
+ """The metadata returned by an extension's ``setup()`` function.
+
+ See :ref:`ext-metadata`.
+ """
+
+ version: str
+ """The extension version (default: ``'unknown version'``)."""
+ env_version: int
+ """An integer that identifies the version of env data added by the extension."""
+ parallel_read_safe: bool
+ """Indicate whether parallel reading of source files is supported
+ by the extension.
+ """
+ parallel_write_safe: bool
+ """Indicate whether parallel writing of output files is supported
+ by the extension (default: ``True``).
+ """
+
+
+if TYPE_CHECKING:
+ _ExtensionSetupFunc = Callable[[Sphinx], ExtensionMetadata]
+
+
def get_type_hints(
obj: Any, globalns: dict[str, Any] | None = None, localns: dict[str, Any] | None = None,
) -> dict[str, Any]:
@@ -128,19 +178,15 @@ def restify(cls: type | None, mode: str = 'fully-qualified-except-typing') -> st
elif ismock(cls):
return f':py:class:`{modprefix}{cls.__module__}.{cls.__name__}`'
elif is_invalid_builtin_class(cls):
- return f':py:class:`{modprefix}{INVALID_BUILTIN_CLASSES[cls]}`'
+ return f':py:class:`{modprefix}{_INVALID_BUILTIN_CLASSES[cls]}`'
elif inspect.isNewType(cls):
if sys.version_info[:2] >= (3, 10):
# newtypes have correct module info since Python 3.10+
return f':py:class:`{modprefix}{cls.__module__}.{cls.__name__}`'
else:
- return ':py:class:`%s`' % cls.__name__
+ return f':py:class:`{cls.__name__}`'
elif UnionType and isinstance(cls, UnionType):
- if len(cls.__args__) > 1 and None in cls.__args__:
- args = ' | '.join(restify(a, mode) for a in cls.__args__ if a)
- return 'Optional[%s]' % args
- else:
- return ' | '.join(restify(a, mode) for a in cls.__args__)
+ return ' | '.join(restify(a, mode) for a in cls.__args__)
elif cls.__module__ in ('__builtin__', 'builtins'):
if hasattr(cls, '__args__'):
if not cls.__args__: # Empty tuple, list, ...
@@ -149,23 +195,11 @@ def restify(cls: type | None, mode: str = 'fully-qualified-except-typing') -> st
concatenated_args = ', '.join(restify(arg, mode) for arg in cls.__args__)
return fr':py:class:`{cls.__name__}`\ [{concatenated_args}]'
else:
- return ':py:class:`%s`' % cls.__name__
+ return f':py:class:`{cls.__name__}`'
elif (inspect.isgenericalias(cls)
and cls.__module__ == 'typing'
and cls.__origin__ is Union): # type: ignore[attr-defined]
- if (len(cls.__args__) > 1 # type: ignore[attr-defined]
- and cls.__args__[-1] is NoneType): # type: ignore[attr-defined]
- if len(cls.__args__) > 2: # type: ignore[attr-defined]
- args = ', '.join(restify(a, mode)
- for a in cls.__args__[:-1]) # type: ignore[attr-defined]
- return ':py:obj:`~typing.Optional`\\ [:obj:`~typing.Union`\\ [%s]]' % args
- else:
- return ':py:obj:`~typing.Optional`\\ [%s]' % restify(
- cls.__args__[0], mode) # type: ignore[attr-defined]
- else:
- args = ', '.join(restify(a, mode)
- for a in cls.__args__) # type: ignore[attr-defined]
- return ':py:obj:`~typing.Union`\\ [%s]' % args
+ return ' | '.join(restify(a, mode) for a in cls.__args__) # type: ignore[attr-defined]
elif inspect.isgenericalias(cls):
if isinstance(cls.__origin__, typing._SpecialForm): # type: ignore[attr-defined]
text = restify(cls.__origin__, mode) # type: ignore[attr-defined,arg-type]
@@ -195,14 +229,14 @@ def restify(cls: type | None, mode: str = 'fully-qualified-except-typing') -> st
literal_args.append(_format_literal_enum_arg(a, mode=mode))
else:
literal_args.append(repr(a))
- text += r"\ [%s]" % ', '.join(literal_args)
+ text += fr"\ [{', '.join(literal_args)}]"
del literal_args
elif cls.__args__:
- text += r"\ [%s]" % ", ".join(restify(a, mode) for a in cls.__args__)
+ text += fr"\ [{', '.join(restify(a, mode) for a in cls.__args__)}]"
return text
elif isinstance(cls, typing._SpecialForm):
- return f':py:obj:`~{cls.__module__}.{cls._name}`' # type: ignore[attr-defined]
+ return f':py:obj:`~{cls.__module__}.{cls._name}`'
elif sys.version_info[:2] >= (3, 11) and cls is typing.Any:
# handle bpo-46998
return f':py:obj:`~{cls.__module__}.{cls.__name__}`'
@@ -212,7 +246,7 @@ def restify(cls: type | None, mode: str = 'fully-qualified-except-typing') -> st
else:
return f':py:class:`{modprefix}{cls.__module__}.{cls.__qualname__}`'
elif isinstance(cls, ForwardRef):
- return ':py:class:`%s`' % cls.__forward_arg__
+ return f':py:class:`{cls.__forward_arg__}`'
else:
# not a class (ex. TypeVar)
if cls.__module__ == 'typing':
@@ -285,7 +319,7 @@ def stringify_annotation(
elif ismock(annotation):
return module_prefix + f'{annotation_module}.{annotation_name}'
elif is_invalid_builtin_class(annotation):
- return module_prefix + INVALID_BUILTIN_CLASSES[annotation]
+ return module_prefix + _INVALID_BUILTIN_CLASSES[annotation]
elif str(annotation).startswith('typing.Annotated'): # for py310+
pass
elif annotation_module == 'builtins' and annotation_qualname:
@@ -350,7 +384,7 @@ def stringify_annotation(
elif qualname == 'Literal':
from sphinx.util.inspect import isenumattribute # lazy loading
- def format_literal_arg(arg):
+ def format_literal_arg(arg: Any) -> str:
if isenumattribute(arg):
enumcls = arg.__class__
@@ -384,19 +418,19 @@ def _format_literal_enum_arg(arg: enum.Enum, /, *, mode: str) -> str:
return f':py:attr:`{enum_cls.__module__}.{enum_cls.__qualname__}.{arg.name}`'
-# deprecated name -> (object to return, canonical path or empty string)
-_DEPRECATED_OBJECTS = {
- 'stringify': (stringify_annotation, 'sphinx.util.typing.stringify_annotation'),
+# deprecated name -> (object to return, canonical path or empty string, removal version)
+_DEPRECATED_OBJECTS: dict[str, tuple[Any, str, tuple[int, int]]] = {
+ 'stringify': (stringify_annotation, 'sphinx.util.typing.stringify_annotation', (8, 0)),
}
-def __getattr__(name):
+def __getattr__(name: str) -> Any:
if name not in _DEPRECATED_OBJECTS:
msg = f'module {__name__!r} has no attribute {name!r}'
raise AttributeError(msg)
from sphinx.deprecation import _deprecation_warning
- deprecated_object, canonical_name = _DEPRECATED_OBJECTS[name]
- _deprecation_warning(__name__, name, canonical_name, remove=(8, 0))
+ deprecated_object, canonical_name, remove = _DEPRECATED_OBJECTS[name]
+ _deprecation_warning(__name__, name, canonical_name, remove=remove)
return deprecated_object
diff --git a/sphinx/versioning.py b/sphinx/versioning.py
index 0da3b1e..a5ec701 100644
--- a/sphinx/versioning.py
+++ b/sphinx/versioning.py
@@ -1,4 +1,5 @@
"""Implements the low-level algorithms Sphinx uses for versioning doctrees."""
+
from __future__ import annotations
import pickle
@@ -16,9 +17,11 @@ if TYPE_CHECKING:
from docutils.nodes import Node
from sphinx.application import Sphinx
+ from sphinx.util.typing import ExtensionMetadata
try:
- import Levenshtein
+ import Levenshtein # type: ignore[import-not-found]
+
IS_SPEEDUP = True
except ImportError:
IS_SPEEDUP = False
@@ -144,6 +147,7 @@ def levenshtein_distance(a: str, b: str) -> int:
class UIDTransform(SphinxTransform):
"""Add UIDs to doctree for versioning."""
+
default_priority = 880
def apply(self, **kwargs: Any) -> None:
@@ -168,7 +172,7 @@ class UIDTransform(SphinxTransform):
list(merge_doctrees(old_doctree, self.document, env.versioning_condition))
-def setup(app: Sphinx) -> dict[str, Any]:
+def setup(app: Sphinx) -> ExtensionMetadata:
app.add_transform(UIDTransform)
return {
diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py
index 99d47c9..06551d6 100644
--- a/sphinx/writers/html.py
+++ b/sphinx/writers/html.py
@@ -17,7 +17,7 @@ logger = logging.getLogger(__name__)
HTMLTranslator = HTML5Translator
# A good overview of the purpose behind these classes can be found here:
-# http://www.arnebrodowski.de/blog/write-your-own-restructuredtext-writer.html
+# https://www.arnebrodowski.de/blog/write-your-own-restructuredtext-writer.html
class HTMLWriter(Writer):
diff --git a/sphinx/writers/html5.py b/sphinx/writers/html5.py
index eb0a1ee..90eedd8 100644
--- a/sphinx/writers/html5.py
+++ b/sphinx/writers/html5.py
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
logger = logging.getLogger(__name__)
# A good overview of the purpose behind these classes can be found here:
-# http://www.arnebrodowski.de/blog/write-your-own-restructuredtext-writer.html
+# https://www.arnebrodowski.de/blog/write-your-own-restructuredtext-writer.html
def multiply_length(length: str, scale: int) -> str:
@@ -247,8 +247,8 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
self.depart_desc_parameter(node)
def visit_desc_optional(self, node: Element) -> None:
- self.params_left_at_level = sum([isinstance(c, addnodes.desc_parameter)
- for c in node.children])
+ self.params_left_at_level = sum(isinstance(c, addnodes.desc_parameter)
+ for c in node.children)
self.optional_param_level += 1
self.max_optional_param_level = self.optional_param_level
if self.multi_line_parameter_list:
@@ -338,7 +338,7 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
self.depart_reference(node)
# overwritten -- we don't want source comments to show up in the HTML
- def visit_comment(self, node: Element) -> None: # type: ignore[override]
+ def visit_comment(self, node: Element) -> None:
raise nodes.SkipNode
# overwritten
@@ -475,6 +475,17 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
self.add_fignumber(node.parent)
if isinstance(node.parent, nodes.table):
self.body.append('<span class="caption-text">')
+ # Partially revert https://sourceforge.net/p/docutils/code/9562/
+ if (
+ isinstance(node.parent, nodes.topic)
+ and self.settings.toc_backlinks
+ and 'contents' in node.parent['classes']
+ and self.body[-1].startswith('<a ')
+ # TODO: only remove for EPUB
+ ):
+ # remove <a class="reference internal" href="#top">
+ self.body.pop()
+ self.context[-1] = '</p>\n'
def depart_title(self, node: Element) -> None:
close_tag = self.context[-1]
@@ -589,10 +600,8 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
def visit_productionlist(self, node: Element) -> None:
self.body.append(self.starttag(node, 'pre'))
- names = []
productionlist = cast(Iterable[addnodes.production], node)
- for production in productionlist:
- names.append(production['tokenname'])
+ names = (production['tokenname'] for production in productionlist)
maxlen = max(len(name) for name in names)
lastname = None
for production in productionlist:
@@ -846,13 +855,8 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
def visit_manpage(self, node: Element) -> None:
self.visit_literal_emphasis(node)
- if self.manpages_url:
- node['refuri'] = self.manpages_url.format(**node.attributes)
- self.visit_reference(node)
def depart_manpage(self, node: Element) -> None:
- if self.manpages_url:
- self.depart_reference(node)
self.depart_literal_emphasis(node)
# overwritten to add even/odd classes
@@ -928,7 +932,7 @@ class HTML5Translator(SphinxTranslator, BaseTranslator):
# See Docutils r9413
# Re-instate the footnote-reference class
- def visit_footnote_reference(self, node):
+ def visit_footnote_reference(self, node: Element) -> None:
href = '#' + node['refid']
classes = ['footnote-reference', self.settings.footnote_references]
self.body.append(self.starttag(node, 'a', suffix='', classes=classes,
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index 89b349a..606225a 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -29,7 +29,7 @@ try:
from docutils.utils.roman import toRoman
except ImportError:
# In Debian/Ubuntu, roman package is provided as roman, not as docutils.utils.roman
- from roman import toRoman # type: ignore[no-redef]
+ from roman import toRoman # type: ignore[no-redef, import-not-found]
if TYPE_CHECKING:
from docutils.nodes import Element, Node, Text
@@ -158,7 +158,7 @@ class Table:
return 'tabulary'
def get_colspec(self) -> str:
- """Returns a column spec of table.
+ r"""Returns a column spec of table.
This is what LaTeX calls the 'preamble argument' of the used table environment.
@@ -321,7 +321,7 @@ class LaTeXTranslator(SphinxTranslator):
self.elements = self.builder.context.copy()
# initial section names
- self.sectionnames = LATEXSECTIONNAMES[:]
+ self.sectionnames = LATEXSECTIONNAMES.copy()
if self.theme.toplevel_sectioning == 'section':
self.sectionnames.remove('chapter')
@@ -911,8 +911,8 @@ class LaTeXTranslator(SphinxTranslator):
self._depart_sig_parameter(node)
def visit_desc_optional(self, node: Element) -> None:
- self.params_left_at_level = sum([isinstance(c, addnodes.desc_parameter)
- for c in node.children])
+ self.params_left_at_level = sum(isinstance(c, addnodes.desc_parameter)
+ for c in node.children)
self.optional_param_level += 1
self.max_optional_param_level = self.optional_param_level
if self.multi_line_parameter_list:
@@ -2121,14 +2121,14 @@ class LaTeXTranslator(SphinxTranslator):
self.body.append('}}$')
def visit_inline(self, node: Element) -> None:
- classes = node.get('classes', [])
- if classes in [['menuselection']]:
+ classes = node.get('classes', []) # type: ignore[var-annotated]
+ if classes == ['menuselection']:
self.body.append(r'\sphinxmenuselection{')
self.context.append('}')
- elif classes in [['guilabel']]:
+ elif classes == ['guilabel']:
self.body.append(r'\sphinxguilabel{')
self.context.append('}')
- elif classes in [['accelerator']]:
+ elif classes == ['accelerator']:
self.body.append(r'\sphinxaccelerator{')
self.context.append('}')
elif classes and not self.in_title:
@@ -2153,12 +2153,12 @@ class LaTeXTranslator(SphinxTranslator):
pass
def visit_container(self, node: Element) -> None:
- classes = node.get('classes', [])
+ classes = node.get('classes', []) # type: ignore[var-annotated]
for c in classes:
self.body.append('\n\\begin{sphinxuseclass}{%s}' % c)
def depart_container(self, node: Element) -> None:
- classes = node.get('classes', [])
+ classes = node.get('classes', []) # type: ignore[var-annotated]
for _c in classes:
self.body.append('\n\\end{sphinxuseclass}')
@@ -2261,6 +2261,6 @@ class LaTeXTranslator(SphinxTranslator):
# FIXME: Workaround to avoid circular import
# refs: https://github.com/sphinx-doc/sphinx/issues/5433
-from sphinx.builders.latex.nodes import ( # noqa: E402 # isort:skip
+from sphinx.builders.latex.nodes import ( # NoQA: E402 # isort:skip
HYPERLINK_SUPPORT_NODES, captioned_literal_block, footnotetext,
)
diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py
index 108eb5e..d2d6dc5 100644
--- a/sphinx/writers/manpage.py
+++ b/sphinx/writers/manpage.py
@@ -49,12 +49,13 @@ class NestedInlineTransform:
<strong>foo=</strong><emphasis>var</emphasis>
<strong>&bar=</strong><emphasis>2</emphasis>
"""
+
def __init__(self, document: nodes.document) -> None:
self.document = document
def apply(self, **kwargs: Any) -> None:
matcher = NodeMatcher(nodes.literal, nodes.emphasis, nodes.strong)
- for node in list(self.document.findall(matcher)): # type: nodes.TextElement
+ for node in list(matcher.findall(self.document)):
if any(matcher(subnode) for subnode in node):
pos = node.parent.index(node)
for subnode in reversed(list(node)):
@@ -244,7 +245,7 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
super().visit_term(node)
# overwritten -- we don't want source comments to show up
- def visit_comment(self, node: Element) -> None: # type: ignore[override]
+ def visit_comment(self, node: Element) -> None:
raise nodes.SkipNode
# overwritten -- added ensure_eol()
@@ -271,12 +272,10 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
def visit_productionlist(self, node: Element) -> None:
self.ensure_eol()
- names = []
self.in_productionlist += 1
self.body.append('.sp\n.nf\n')
productionlist = cast(Iterable[addnodes.production], node)
- for production in productionlist:
- names.append(production['tokenname'])
+ names = (production['tokenname'] for production in productionlist)
maxlen = max(len(name) for name in names)
lastname = None
for production in productionlist:
@@ -309,13 +308,17 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
# overwritten -- don't visit inner marked up nodes
def visit_reference(self, node: Element) -> None:
+ uri = node.get('refuri', '')
+ if uri:
+ # OSC 8 link start (using groff's device control directive).
+ self.body.append(fr"\X'tty: link {uri}'")
+
self.body.append(self.defs['reference'][0])
# avoid repeating escaping code... fine since
# visit_Text calls astext() and only works on that afterwards
- self.visit_Text(node) # type: ignore[arg-type]
+ self.visit_Text(node)
self.body.append(self.defs['reference'][1])
- uri = node.get('refuri', '')
if uri.startswith(('mailto:', 'http:', 'https:', 'ftp:')):
# if configured, put the URL after the link
if self.config.man_show_urls and node.astext() != uri:
@@ -325,6 +328,9 @@ class ManualPageTranslator(SphinxTranslator, BaseTranslator):
' <',
self.defs['strong'][0], uri, self.defs['strong'][1],
'>'])
+ if uri:
+ # OSC 8 link end.
+ self.body.append(r"\X'tty: link'")
raise nodes.SkipNode
def visit_number_reference(self, node: Element) -> None:
diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py
index 7032c65..6e0a7de 100644
--- a/sphinx/writers/texinfo.py
+++ b/sphinx/writers/texinfo.py
@@ -96,7 +96,8 @@ def find_subsections(section: Element) -> list[nodes.section]:
def smart_capwords(s: str, sep: str | None = None) -> str:
"""Like string.capwords() but does not capitalize words that already
- contain a capital letter."""
+ contain a capital letter.
+ """
words = s.split(sep)
for i, word in enumerate(words):
if all(x.islower() for x in word):
@@ -106,6 +107,7 @@ def smart_capwords(s: str, sep: str | None = None) -> str:
class TexinfoWriter(writers.Writer):
"""Texinfo writer for generating Texinfo documents."""
+
supported = ('texinfo', 'texi')
settings_spec: tuple[str, Any, tuple[tuple[str, list[str], dict[str, str]], ...]] = (
@@ -255,7 +257,8 @@ class TexinfoTranslator(SphinxTranslator):
def collect_node_names(self) -> None:
"""Generates a unique id for each section.
- Assigns the attribute ``node_name`` to each section."""
+ Assigns the attribute ``node_name`` to each section.
+ """
def add_node_name(name: str) -> str:
node_id = self.escape_id(name)
@@ -278,7 +281,7 @@ class TexinfoTranslator(SphinxTranslator):
for name, content in self.indices]
# each section is also a node
for section in self.document.findall(nodes.section):
- title = cast(nodes.TextElement, section.next_node(nodes.Titular))
+ title = cast(nodes.TextElement, section.next_node(nodes.Titular)) # type: ignore[type-var]
name = title.astext() if title else '<untitled>'
section['node_name'] = add_node_name(name)
@@ -288,7 +291,7 @@ class TexinfoTranslator(SphinxTranslator):
targets: list[Element] = [self.document]
targets.extend(self.document.findall(nodes.section))
for node in targets:
- assert 'node_name' in node and node['node_name'] # NoQA: PT018
+ assert node.get('node_name', False)
entries = [s['node_name'] for s in find_subsections(node)]
node_menus[node['node_name']] = entries
# try to find a suitable "Top" node
@@ -352,7 +355,8 @@ class TexinfoTranslator(SphinxTranslator):
def escape_arg(self, s: str) -> str:
"""Return an escaped string suitable for use as an argument
- to a Texinfo command."""
+ to a Texinfo command.
+ """
s = self.escape(s)
# commas are the argument delimiters
s = s.replace(',', '@comma{}')
@@ -430,7 +434,7 @@ class TexinfoTranslator(SphinxTranslator):
entries = self.node_menus[name]
if not entries:
return
- self.body.append(f'\n{self.escape(self.node_names[name], )}\n\n')
+ self.body.append(f'\n{self.escape(self.node_names[name])}\n\n')
self.add_menu_entries(entries)
for subentry in entries:
_add_detailed_menu(subentry)
@@ -524,7 +528,7 @@ class TexinfoTranslator(SphinxTranslator):
try:
sid = self.short_ids[id]
except KeyError:
- sid = hex(len(self.short_ids))[2:]
+ sid = f'{len(self.short_ids):x}'
self.short_ids[id] = sid
return sid
@@ -1287,11 +1291,10 @@ class TexinfoTranslator(SphinxTranslator):
def visit_productionlist(self, node: Element) -> None:
self.visit_literal_block(None)
- names = []
productionlist = cast(Iterable[addnodes.production], node)
- for production in productionlist:
- names.append(production['tokenname'])
+ names = (production['tokenname'] for production in productionlist)
maxlen = max(len(name) for name in names)
+
for production in productionlist:
if production['tokenname']:
for id in production.get('ids'):
diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py
index 63df2d7..d2dd208 100644
--- a/sphinx/writers/text.py
+++ b/sphinx/writers/text.py
@@ -5,7 +5,7 @@ import math
import os
import re
import textwrap
-from collections.abc import Generator, Iterable, Sequence
+from collections.abc import Iterable, Iterator, Sequence
from itertools import chain, groupby
from typing import TYPE_CHECKING, Any, cast
@@ -26,6 +26,7 @@ class Cell:
"""Represents a cell in a table.
It can span multiple columns or multiple lines.
"""
+
def __init__(self, text: str = "", rowspan: int = 1, colspan: int = 1) -> None:
self.text = text
self.wrapped: list[str] = []
@@ -93,6 +94,7 @@ class Table:
+--------+--------+
"""
+
def __init__(self, colwidth: list[int] | None = None) -> None:
self.lines: list[list[Cell]] = []
self.separator = 0
@@ -148,7 +150,7 @@ class Table:
line.append(Cell())
def __repr__(self) -> str:
- return "\n".join(repr(line) for line in self.lines)
+ return "\n".join(map(repr, self.lines))
def cell_width(self, cell: Cell, source: list[int]) -> int:
"""Give the cell width, according to the given source (either
@@ -164,7 +166,7 @@ class Table:
return width + (cell.colspan - 1) * 3
@property
- def cells(self) -> Generator[Cell, None, None]:
+ def cells(self) -> Iterator[Cell]:
seen: set[Cell] = set()
for line in self.lines:
for cell in line:
@@ -262,9 +264,8 @@ class TextWrapper(textwrap.TextWrapper):
r'(?<=[\w\!\"\'\&\.\,\?])-{2,}(?=\w))') # em-dash
def _wrap_chunks(self, chunks: list[str]) -> list[str]:
- """_wrap_chunks(chunks : [string]) -> [string]
+ """The original _wrap_chunks uses len() to calculate width.
- The original _wrap_chunks uses len() to calculate width.
This method respects wide/fullwidth characters for width adjustment.
"""
lines: list[str] = []
@@ -309,10 +310,7 @@ class TextWrapper(textwrap.TextWrapper):
return lines
def _break_word(self, word: str, space_left: int) -> tuple[str, str]:
- """_break_word(word : string, space_left : int) -> (string, string)
-
- Break line by unicode width instead of len(word).
- """
+ """Break line by unicode width instead of len(word)."""
total = 0
for i, c in enumerate(word):
total += column_width(c)
@@ -321,9 +319,8 @@ class TextWrapper(textwrap.TextWrapper):
return word, ''
def _split(self, text: str) -> list[str]:
- """_split(text : string) -> [string]
+ """Override original method that only split by 'wordsep_re'.
- Override original method that only split by 'wordsep_re'.
This '_split' splits wide-characters into chunks by one character.
"""
def split(t: str) -> list[str]:
@@ -339,12 +336,7 @@ class TextWrapper(textwrap.TextWrapper):
def _handle_long_word(self, reversed_chunks: list[str], cur_line: list[str],
cur_len: int, width: int) -> None:
- """_handle_long_word(chunks : [string],
- cur_line : [string],
- cur_len : int, width : int)
-
- Override original method for using self._break_word() instead of slice.
- """
+ """Override original method for using self._break_word() instead of slice."""
space_left = max(width - cur_len, 1)
if self.break_long_words:
l, r = self._break_word(reversed_chunks[-1], space_left)
@@ -693,8 +685,8 @@ class TextTranslator(SphinxTranslator):
self.visit_desc_parameter(node)
def visit_desc_optional(self, node: Element) -> None:
- self.params_left_at_level = sum([isinstance(c, addnodes.desc_parameter)
- for c in node.children])
+ self.params_left_at_level = sum(isinstance(c, addnodes.desc_parameter)
+ for c in node.children)
self.optional_param_level += 1
self.max_optional_param_level = self.optional_param_level
if self.multi_line_parameter_list:
@@ -757,10 +749,8 @@ class TextTranslator(SphinxTranslator):
def visit_productionlist(self, node: Element) -> None:
self.new_state()
- names = []
productionlist = cast(Iterable[addnodes.production], node)
- for production in productionlist:
- names.append(production['tokenname'])
+ names = (production['tokenname'] for production in productionlist)
maxlen = max(len(name) for name in names)
lastname = None
for production in productionlist:
@@ -1289,7 +1279,7 @@ class TextTranslator(SphinxTranslator):
if 'text' in node.get('format', '').split():
self.new_state(0)
self.add_text(node.astext())
- self.end_state(wrap = False)
+ self.end_state(wrap=False)
raise nodes.SkipNode
def visit_math(self, node: Element) -> None:
diff --git a/sphinx/writers/xml.py b/sphinx/writers/xml.py
index 38aa763..a4d1312 100644
--- a/sphinx/writers/xml.py
+++ b/sphinx/writers/xml.py
@@ -48,5 +48,5 @@ class PseudoXMLWriter(BaseXMLWriter):
self.output = self.document.pformat()
def supports(self, format: str) -> bool:
- """This writer supports all format-specific elements."""
+ """All format-specific elements are supported."""
return True
diff --git a/tests/conftest.py b/tests/conftest.py
index 1b909bd..1c8d525 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,14 +1,25 @@
+from __future__ import annotations
+
import os
+import sys
from pathlib import Path
+from typing import TYPE_CHECKING
import docutils
import pytest
import sphinx
import sphinx.locale
+import sphinx.pycode
+from sphinx.testing.util import _clean_up_global_state
+
+if TYPE_CHECKING:
+ from collections.abc import Iterator
-def _init_console(locale_dir=sphinx.locale._LOCALE_DIR, catalog='sphinx'):
+def _init_console(
+ locale_dir: str | None = sphinx.locale._LOCALE_DIR, catalog: str = 'sphinx',
+) -> tuple[sphinx.locale.NullTranslations, bool]:
"""Monkeypatch ``init_console`` to skip its action.
Some tests rely on warning messages in English. We don't want
@@ -20,7 +31,7 @@ def _init_console(locale_dir=sphinx.locale._LOCALE_DIR, catalog='sphinx'):
sphinx.locale.init_console = _init_console
-pytest_plugins = 'sphinx.testing.fixtures'
+pytest_plugins = ['sphinx.testing.fixtures']
# Exclude 'roots' dirs for pytest test collector
collect_ignore = ['roots']
@@ -29,12 +40,21 @@ os.environ['SPHINX_AUTODOC_RELOAD_MODULES'] = '1'
@pytest.fixture(scope='session')
-def rootdir():
- return Path(__file__).parent.absolute() / 'roots'
+def rootdir() -> Path:
+ return Path(__file__).parent.resolve() / 'roots'
-def pytest_report_header(config):
+def pytest_report_header(config: pytest.Config) -> str:
header = f"libraries: Sphinx-{sphinx.__display_version__}, docutils-{docutils.__version__}"
if hasattr(config, '_tmp_path_factory'):
header += f"\nbase tmp_path: {config._tmp_path_factory.getbasetemp()}"
return header
+
+
+@pytest.fixture(autouse=True)
+def _cleanup_docutils() -> Iterator[None]:
+ saved_path = sys.path
+ yield # run the test
+ sys.path[:] = saved_path
+
+ _clean_up_global_state()
diff --git a/tests/js/searchtools.js b/tests/js/searchtools.js
index c9e0c43..4f9984d 100644
--- a/tests/js/searchtools.js
+++ b/tests/js/searchtools.js
@@ -21,7 +21,59 @@ describe('Basic html theme search', function() {
"&lt;no title&gt;",
"",
null,
- 2,
+ 5,
+ "index.rst"
+ ]];
+ expect(Search.performTermsSearch(searchterms, excluded, terms, titleterms)).toEqual(hits);
+ });
+
+ it('should be able to search for multiple terms', function() {
+ index = {
+ alltitles: {
+ 'Main Page': [[0, 'main-page']],
+ },
+ docnames:["index"],
+ filenames:["index.rst"],
+ terms:{main:0, page:0},
+ titles:["Main Page"],
+ titleterms:{ main:0, page:0 }
+ }
+ Search.setIndex(index);
+
+ searchterms = ['main', 'page'];
+ excluded = [];
+ terms = index.terms;
+ titleterms = index.titleterms;
+ hits = [[
+ 'index',
+ 'Main Page',
+ '',
+ null,
+ 15,
+ 'index.rst']];
+ expect(Search.performTermsSearch(searchterms, excluded, terms, titleterms)).toEqual(hits);
+ });
+
+ it('should partially-match "sphinx" when in title index', function() {
+ index = {
+ docnames:["index"],
+ filenames:["index.rst"],
+ terms:{'useful': 0, 'utilities': 0},
+ titles:["sphinx_utils module"],
+ titleterms:{'sphinx_utils': 0}
+ }
+ Search.setIndex(index);
+ searchterms = ['sphinx'];
+ excluded = [];
+ terms = index.terms;
+ titleterms = index.titleterms;
+
+ hits = [[
+ "index",
+ "sphinx_utils module",
+ "",
+ null,
+ 7,
"index.rst"
]];
expect(Search.performTermsSearch(searchterms, excluded, terms, titleterms)).toEqual(hits);
@@ -31,6 +83,51 @@ describe('Basic html theme search', function() {
});
+describe("htmlToText", function() {
+
+ const testHTML = `<html>
+ <body>
+ <script src="directory/filename.js"></script>
+ <div class="body" role="main">
+ <script>
+ console.log('dynamic');
+ </script>
+ <style>
+ div.body p.centered {
+ text-align: center;
+ margin-top: 25px;
+ }
+ </style>
+ <!-- main content -->
+ <section id="getting-started">
+ <h1>Getting Started</h1>
+ <p>Some text</p>
+ </section>
+ <section id="other-section">
+ <h1>Other Section</h1>
+ <p>Other text</p>
+ </section>
+ <section id="yet-another-section">
+ <h1>Yet Another Section</h1>
+ <p>More text</p>
+ </section>
+ </div>
+ </body>
+ </html>`;
+
+ it("basic case", () => {
+ expect(Search.htmlToText(testHTML).trim().split(/\s+/)).toEqual([
+ 'Getting', 'Started', 'Some', 'text',
+ 'Other', 'Section', 'Other', 'text',
+ 'Yet', 'Another', 'Section', 'More', 'text'
+ ]);
+ });
+
+ it("will start reading from the anchor", () => {
+ expect(Search.htmlToText(testHTML, '#other-section').trim().split(/\s+/)).toEqual(['Other', 'Section', 'Other', 'text']);
+ });
+});
+
// This is regression test for https://github.com/sphinx-doc/sphinx/issues/3150
describe('splitQuery regression tests', () => {
diff --git a/tests/roots/test-changes/base.rst b/tests/roots/test-changes/base.rst
index a1b2839..81d90e6 100644
--- a/tests/roots/test-changes/base.rst
+++ b/tests/roots/test-changes/base.rst
@@ -10,6 +10,9 @@ Version markup
.. deprecated:: 0.6
Boring stuff.
+.. versionremoved:: 0.6
+ Goodbye boring stuff.
+
.. versionadded:: 1.2
First paragraph of versionadded.
diff --git a/tests/roots/test-changes/conf.py b/tests/roots/test-changes/conf.py
index c3b2169..29bea6a 100644
--- a/tests/roots/test-changes/conf.py
+++ b/tests/roots/test-changes/conf.py
@@ -1,4 +1,4 @@
project = 'Sphinx ChangesBuilder tests'
-copyright = '2007-2023 by the Sphinx team, see AUTHORS'
+copyright = '2007-2024 by the Sphinx team, see AUTHORS'
version = '0.6'
release = '0.6alpha1'
diff --git a/tests/roots/test-domain-cpp/operator-lookup.rst b/tests/roots/test-domain-cpp/operator-lookup.rst
new file mode 100644
index 0000000..671b91b
--- /dev/null
+++ b/tests/roots/test-domain-cpp/operator-lookup.rst
@@ -0,0 +1,28 @@
+When doing name resolution there are 4 different idenOrOps:
+
+- identifier
+- built-in operator
+- user-defined literal
+- type conversion
+
+.. cpp:function:: int g()
+.. cpp:function:: int operator+(int, int)
+.. cpp:function:: int operator""_lit()
+
+.. cpp:class:: B
+
+ .. cpp:function:: operator int()
+
+ Functions that can't be found:
+
+ - :cpp:func:`int h()`
+ - :cpp:func:`int operator+(bool, bool)`
+ - :cpp:func:`int operator""_udl()`
+ - :cpp:func:`operator bool()`
+
+ Functions that should be found:
+
+ - :cpp:func:`int g()`
+ - :cpp:func:`int operator+(int, int)`
+ - :cpp:func:`int operator""_lit()`
+ - :cpp:func:`operator int()`
diff --git a/tests/roots/test-domain-py/module.rst b/tests/roots/test-domain-py/module.rst
index 4a28068..70098f6 100644
--- a/tests/roots/test-domain-py/module.rst
+++ b/tests/roots/test-domain-py/module.rst
@@ -58,3 +58,9 @@ module
.. py:module:: object
.. py:function:: sum()
+
+.. py:data:: test
+ :type: typing.Literal[2]
+
+.. py:data:: test2
+ :type: typing.Literal[-2]
diff --git a/tests/roots/test-ext-autodoc/target/enums.py b/tests/roots/test-ext-autodoc/target/enums.py
index c69455f..6b27316 100644
--- a/tests/roots/test-ext-autodoc/target/enums.py
+++ b/tests/roots/test-ext-autodoc/target/enums.py
@@ -1,10 +1,46 @@
+# ruff: NoQA: D403, PIE796
import enum
+from typing import final
+
+
+class MemberType:
+ """Custom data type with a simple API."""
+
+ # this mangled attribute will never be shown on subclasses
+ # even if :inherited-members: and :private-members: are set
+ __slots__ = ('__data',)
+
+ def __new__(cls, value):
+ self = object.__new__(cls)
+ self.__data = value
+ return self
+
+ def __str__(self):
+ """inherited"""
+ return self.__data
+
+ def __repr__(self):
+ return repr(self.__data)
+
+ def __reduce__(self):
+ # data types must be pickable, otherwise enum classes using this data
+ # type will be forced to be non-pickable and have their __module__ set
+ # to '<unknown>' instead of, for instance, '__main__'
+ return self.__class__, (self.__data,)
+
+ @final
+ @property
+ def dtype(self):
+ """docstring"""
+ return 'str'
+
+ def isupper(self):
+ """inherited"""
+ return self.__data.isupper()
class EnumCls(enum.Enum):
- """
- this is enum class
- """
+ """this is enum class"""
#: doc for val1
val1 = 12
@@ -15,9 +51,194 @@ class EnumCls(enum.Enum):
def say_hello(self):
"""a method says hello to you."""
- pass
@classmethod
def say_goodbye(cls):
"""a classmethod says good-bye to you."""
- pass
+
+
+class EnumClassWithDataType(MemberType, enum.Enum):
+ """this is enum class"""
+
+ x = 'x'
+
+ def say_hello(self):
+ """docstring"""
+
+ @classmethod
+ def say_goodbye(cls):
+ """docstring"""
+
+
+class ToUpperCase: # not inheriting from enum.Enum
+ @property
+ def value(self): # bypass enum.Enum.value
+ """uppercased"""
+ return str(self._value_).upper() # type: ignore[attr-defined]
+
+
+class Greeter:
+ def say_hello(self):
+ """inherited"""
+
+ @classmethod
+ def say_goodbye(cls):
+ """inherited"""
+
+
+class EnumClassWithMixinType(ToUpperCase, enum.Enum):
+ """this is enum class"""
+
+ x = 'x'
+
+ def say_hello(self):
+ """docstring"""
+
+ @classmethod
+ def say_goodbye(cls):
+ """docstring"""
+
+
+class EnumClassWithMixinTypeInherit(Greeter, ToUpperCase, enum.Enum):
+ """this is enum class"""
+
+ x = 'x'
+
+
+class Overridden(enum.Enum):
+ def override(self):
+ """inherited"""
+ return 1
+
+
+class EnumClassWithMixinEnumType(Greeter, Overridden, enum.Enum):
+ """this is enum class"""
+
+ x = 'x'
+
+ def override(self):
+ """overridden"""
+ return 2
+
+
+class EnumClassWithMixinAndDataType(Greeter, ToUpperCase, MemberType, enum.Enum):
+ """this is enum class"""
+
+ x = 'x'
+
+ def say_hello(self):
+ """overridden"""
+
+ @classmethod
+ def say_goodbye(cls):
+ """overridden"""
+
+ def isupper(self):
+ """overridden"""
+ return False
+
+ def __str__(self):
+ """overridden"""
+ return super().__str__()
+
+
+class _ParentEnum(Greeter, Overridden, enum.Enum):
+ """docstring"""
+
+
+class EnumClassWithParentEnum(ToUpperCase, MemberType, _ParentEnum, enum.Enum):
+ """this is enum class"""
+
+ x = 'x'
+
+ def isupper(self):
+ """overridden"""
+ return False
+
+ def __str__(self):
+ """overridden"""
+ return super().__str__()
+
+
+class _SunderMissingInNonEnumMixin:
+ @classmethod
+ def _missing_(cls, value):
+ """inherited"""
+ return super()._missing_(value) # type: ignore[misc]
+
+
+class _SunderMissingInEnumMixin(enum.Enum):
+ @classmethod
+ def _missing_(cls, value):
+ """inherited"""
+ return super()._missing_(value)
+
+
+class _SunderMissingInDataType(MemberType):
+ @classmethod
+ def _missing_(cls, value):
+ """inherited"""
+ return super()._missing_(value) # type: ignore[misc]
+
+
+class EnumSunderMissingInNonEnumMixin(_SunderMissingInNonEnumMixin, enum.Enum):
+ """this is enum class"""
+
+
+class EnumSunderMissingInEnumMixin(_SunderMissingInEnumMixin, enum.Enum):
+ """this is enum class"""
+
+
+class EnumSunderMissingInDataType(_SunderMissingInDataType, enum.Enum):
+ """this is enum class"""
+
+
+class EnumSunderMissingInClass(enum.Enum):
+ """this is enum class"""
+
+ @classmethod
+ def _missing_(cls, value):
+ """docstring"""
+ return super()._missing_(value)
+
+
+class _NamePropertyInNonEnumMixin:
+ @property
+ def name(self):
+ """inherited"""
+ return super().name # type: ignore[misc]
+
+
+class _NamePropertyInEnumMixin(enum.Enum):
+ @property
+ def name(self):
+ """inherited"""
+ return super().name
+
+
+class _NamePropertyInDataType(MemberType):
+ @property
+ def name(self):
+ """inherited"""
+ return super().name # type: ignore[misc]
+
+
+class EnumNamePropertyInNonEnumMixin(_NamePropertyInNonEnumMixin, enum.Enum):
+ """this is enum class"""
+
+
+class EnumNamePropertyInEnumMixin(_NamePropertyInEnumMixin, enum.Enum):
+ """this is enum class"""
+
+
+class EnumNamePropertyInDataType(_NamePropertyInDataType, enum.Enum):
+ """this is enum class"""
+
+
+class EnumNamePropertyInClass(enum.Enum):
+ """this is enum class"""
+
+ @property
+ def name(self):
+ """docstring"""
+ return super().name
diff --git a/tests/roots/test-ext-autodoc/target/functions.py b/tests/roots/test-ext-autodoc/target/functions.py
index b62aa70..0265fb3 100644
--- a/tests/roots/test-ext-autodoc/target/functions.py
+++ b/tests/roots/test-ext-autodoc/target/functions.py
@@ -17,3 +17,6 @@ partial_coroutinefunc = partial(coroutinefunc)
builtin_func = print
partial_builtin_func = partial(print)
+
+def slice_arg_func(arg: 'float64[:, :]'):
+ pass
diff --git a/tests/roots/test-ext-autodoc/target/inherited_annotations.py b/tests/roots/test-ext-autodoc/target/inherited_annotations.py
new file mode 100644
index 0000000..3ae58a8
--- /dev/null
+++ b/tests/roots/test-ext-autodoc/target/inherited_annotations.py
@@ -0,0 +1,17 @@
+"""
+ Test case for #11387 corner case involving inherited
+ members with type annotations on python 3.9 and earlier
+"""
+
+class HasTypeAnnotatedMember:
+ inherit_me: int
+ """Inherited"""
+
+class NoTypeAnnotation(HasTypeAnnotatedMember):
+ a = 1
+ """Local"""
+
+class NoTypeAnnotation2(HasTypeAnnotatedMember):
+ a = 1
+ """Local"""
+
diff --git a/tests/roots/test-ext-autodoc/target/singledispatchmethod_classmethod.py b/tests/roots/test-ext-autodoc/target/singledispatchmethod_classmethod.py
new file mode 100644
index 0000000..039fada
--- /dev/null
+++ b/tests/roots/test-ext-autodoc/target/singledispatchmethod_classmethod.py
@@ -0,0 +1,31 @@
+from functools import singledispatchmethod
+
+
+class Foo:
+ """docstring"""
+
+ @singledispatchmethod
+ @classmethod
+ def class_meth(cls, arg, kwarg=None):
+ """A class method for general use."""
+ pass
+
+ @class_meth.register(int)
+ @class_meth.register(float)
+ @classmethod
+ def _class_meth_int(cls, arg, kwarg=None):
+ """A class method for numbers."""
+ pass
+
+ @class_meth.register(str)
+ @classmethod
+ def _class_meth_str(cls, arg, kwarg=None):
+ """A class method for str."""
+ pass
+
+ @class_meth.register
+ @classmethod
+ def _class_meth_dict(cls, arg: dict, kwarg=None):
+ """A class method for dict."""
+ # This function tests for specifying type through annotations
+ pass
diff --git a/tests/roots/test-ext-doctest-skipif/conf.py b/tests/roots/test-ext-doctest-skipif/conf.py
index 6f54982..cd8f3eb 100644
--- a/tests/roots/test-ext-doctest-skipif/conf.py
+++ b/tests/roots/test-ext-doctest-skipif/conf.py
@@ -6,7 +6,7 @@ source_suffix = '.txt'
exclude_patterns = ['_build']
doctest_global_setup = '''
-from tests.test_ext_doctest import record
+from tests.test_extensions.test_ext_doctest import record
record('doctest_global_setup', 'body', True)
'''
diff --git a/tests/roots/test-ext-doctest/doctest.txt b/tests/roots/test-ext-doctest/doctest.txt
index 04780cf..0adcf74 100644
--- a/tests/roots/test-ext-doctest/doctest.txt
+++ b/tests/roots/test-ext-doctest/doctest.txt
@@ -139,7 +139,7 @@ Special directives
.. testcleanup:: *
- from tests import test_ext_doctest
+ from tests.test_extensions import test_ext_doctest
test_ext_doctest.cleanup_call()
non-ASCII result
diff --git a/tests/roots/test-ext-imgmockconverter/mocksvgconverter.py b/tests/roots/test-ext-imgmockconverter/mocksvgconverter.py
index 43368de..c092860 100644
--- a/tests/roots/test-ext-imgmockconverter/mocksvgconverter.py
+++ b/tests/roots/test-ext-imgmockconverter/mocksvgconverter.py
@@ -8,9 +8,9 @@ from sphinx.transforms.post_transforms.images import ImageConverter
if False:
# For type annotation
- from typing import Any, Dict # NOQA
+ from typing import Any, Dict # NoQA
- from sphinx.application import Sphinx # NOQA
+ from sphinx.application import Sphinx # NoQA
class MyConverter(ImageConverter):
conversion_rules = [
diff --git a/tests/roots/test-ext-intersphinx-role/index.rst b/tests/roots/test-ext-intersphinx-role/index.rst
index 58edb7a..63bccf0 100644
--- a/tests/roots/test-ext-intersphinx-role/index.rst
+++ b/tests/roots/test-ext-intersphinx-role/index.rst
@@ -39,6 +39,10 @@
- a class with explicit non-existing inventory, which also has upper-case in name:
:external+invNope:cpp:class:`foo::Bar`
+- An object type being mistakenly used instead of a role name:
+
+ - :external+inv:c:function:`CFunc`
+ - :external+inv:function:`CFunc`
- explicit title:
:external:cpp:type:`FoonsTitle <foons>`
diff --git a/tests/roots/test-ext-math-include/conf.py b/tests/roots/test-ext-math-include/conf.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/roots/test-ext-math-include/conf.py
diff --git a/tests/roots/test-ext-math-include/included.rst b/tests/roots/test-ext-math-include/included.rst
new file mode 100644
index 0000000..7fb746e
--- /dev/null
+++ b/tests/roots/test-ext-math-include/included.rst
@@ -0,0 +1,6 @@
+Title
+=====
+
+Some file including some maths.
+
+.. include:: math.rst \ No newline at end of file
diff --git a/tests/roots/test-ext-math-include/index.rst b/tests/roots/test-ext-math-include/index.rst
new file mode 100644
index 0000000..cc95338
--- /dev/null
+++ b/tests/roots/test-ext-math-include/index.rst
@@ -0,0 +1,7 @@
+Test Math
+=========
+
+.. toctree::
+ :numbered: 1
+
+ included
diff --git a/tests/roots/test-ext-math-include/math.rst b/tests/roots/test-ext-math-include/math.rst
new file mode 100644
index 0000000..a4266d0
--- /dev/null
+++ b/tests/roots/test-ext-math-include/math.rst
@@ -0,0 +1,4 @@
+:math:`1 + 1 = 2`
+=================
+
+Lorem ipsum. \ No newline at end of file
diff --git a/tests/roots/test-ext-napoleon-paramtype/conf.py b/tests/roots/test-ext-napoleon-paramtype/conf.py
new file mode 100644
index 0000000..34e2274
--- /dev/null
+++ b/tests/roots/test-ext-napoleon-paramtype/conf.py
@@ -0,0 +1,15 @@
+import os
+import sys
+
+sys.path.insert(0, os.path.abspath('.'))
+extensions = [
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.intersphinx'
+]
+
+# Python inventory is manually created in the test
+# in order to avoid creating a real HTTP connection
+intersphinx_mapping = {}
+intersphinx_cache_limit = 0
+intersphinx_disabled_reftypes = [] \ No newline at end of file
diff --git a/tests/roots/test-ext-napoleon-paramtype/index.rst b/tests/roots/test-ext-napoleon-paramtype/index.rst
new file mode 100644
index 0000000..5540897
--- /dev/null
+++ b/tests/roots/test-ext-napoleon-paramtype/index.rst
@@ -0,0 +1,8 @@
+test-ext-napoleon
+=================
+
+.. automodule:: pkg.bar
+ :members:
+
+.. automodule:: pkg.foo
+ :members:
diff --git a/tests/roots/test-ext-napoleon-paramtype/pkg/__init__.py b/tests/roots/test-ext-napoleon-paramtype/pkg/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/roots/test-ext-napoleon-paramtype/pkg/__init__.py
diff --git a/tests/roots/test-ext-napoleon-paramtype/pkg/bar.py b/tests/roots/test-ext-napoleon-paramtype/pkg/bar.py
new file mode 100644
index 0000000..e1ae794
--- /dev/null
+++ b/tests/roots/test-ext-napoleon-paramtype/pkg/bar.py
@@ -0,0 +1,10 @@
+class Bar:
+ """The bar."""
+ def list(self) -> None:
+ """A list method."""
+
+ @staticmethod
+ def int() -> float:
+ """An int method."""
+ return 1.0
+
diff --git a/tests/roots/test-ext-napoleon-paramtype/pkg/foo.py b/tests/roots/test-ext-napoleon-paramtype/pkg/foo.py
new file mode 100644
index 0000000..6979f9e
--- /dev/null
+++ b/tests/roots/test-ext-napoleon-paramtype/pkg/foo.py
@@ -0,0 +1,27 @@
+class Foo:
+ """The foo."""
+ def do(
+ self,
+ *,
+ keyword_paramtype,
+ keyword_kwtype,
+ kwarg_paramtype,
+ kwarg_kwtype,
+ kwparam_paramtype,
+ kwparam_kwtype,
+ ):
+ """Some method.
+
+ :keyword keyword_paramtype: some param
+ :paramtype keyword_paramtype: list[int]
+ :keyword keyword_kwtype: some param
+ :kwtype keyword_kwtype: list[int]
+ :kwarg kwarg_paramtype: some param
+ :paramtype kwarg_paramtype: list[int]
+ :kwarg kwarg_kwtype: some param
+ :kwtype kwarg_kwtype: list[int]
+ :kwparam kwparam_paramtype: some param
+ :paramtype kwparam_paramtype: list[int]
+ :kwparam kwparam_kwtype: some param
+ :kwtype kwparam_kwtype: list[int]
+ """
diff --git a/tests/roots/test-ext-viewcode/conf.py b/tests/roots/test-ext-viewcode/conf.py
index 5e07214..d6de1d9 100644
--- a/tests/roots/test-ext-viewcode/conf.py
+++ b/tests/roots/test-ext-viewcode/conf.py
@@ -15,10 +15,10 @@ if 'test_linkcode' in tags:
def linkcode_resolve(domain, info):
if domain == 'py':
fn = info['module'].replace('.', '/')
- return "http://foobar/source/%s.py" % fn
+ return "https://foobar/source/%s.py" % fn
elif domain == "js":
- return "http://foobar/js/" + info['fullname']
+ return "https://foobar/js/" + info['fullname']
elif domain in ("c", "cpp"):
- return f"http://foobar/{domain}/{''.join(info['names'])}"
+ return f"https://foobar/{domain}/{''.join(info['names'])}"
else:
raise AssertionError()
diff --git a/tests/roots/test-footnotes/index.rst b/tests/roots/test-footnotes/index.rst
index f2c5d0e..e4490ed 100644
--- a/tests/roots/test-footnotes/index.rst
+++ b/tests/roots/test-footnotes/index.rst
@@ -31,10 +31,10 @@ The section with a reference to [AuthorYear]_
* First footnote: [#]_
* Second footnote: [1]_
-* `Sphinx <http://sphinx-doc.org/>`_
+* `Sphinx <https://sphinx-doc.org/>`_
* Third footnote: [#]_
* Fourth footnote: [#named]_
-* `URL including tilde <http://sphinx-doc.org/~test/>`_
+* `URL including tilde <https://sphinx-doc.org/~test/>`_
* GitHub Page: `https://github.com/sphinx-doc/sphinx <https://github.com/sphinx-doc/sphinx>`_
* Mailing list: `sphinx-dev@googlegroups.com <mailto:sphinx-dev@googlegroups.com>`_
@@ -49,13 +49,13 @@ The section with a reference to [#]_
.. [#] Footnote in section
-`URL in term <http://sphinx-doc.org/>`_
+`URL in term <https://sphinx-doc.org/>`_
Description Description Description ...
Footnote in term [#]_
Description Description Description ...
- `Term in deflist <http://sphinx-doc.org/>`_
+ `Term in deflist <https://sphinx-doc.org/>`_
Description2
.. [#] Footnote in term
diff --git a/tests/roots/test-images/index.rst b/tests/roots/test-images/index.rst
index 14a2987..9b9aac1 100644
--- a/tests/roots/test-images/index.rst
+++ b/tests/roots/test-images/index.rst
@@ -23,7 +23,7 @@ test-image
:target: https://www.python.org/
.. a remote image
-.. image:: https://www.python.org/static/img/python-logo.png
+.. image:: http://localhost:7777/sphinx.png
.. non-exist remote image
-.. image:: https://www.google.com/NOT_EXIST.PNG
+.. image:: http://localhost:7777/NOT_EXIST.PNG
diff --git a/tests/roots/test-intl/definition_terms.txt b/tests/roots/test-intl/definition_terms.txt
index 4c56288..19d4fcb 100644
--- a/tests/roots/test-intl/definition_terms.txt
+++ b/tests/roots/test-intl/definition_terms.txt
@@ -6,7 +6,7 @@ i18n with definition terms
Some term
The corresponding definition
-Some *term* `with link <http://sphinx-doc.org/>`__
+Some *term* `with link <https://sphinx-doc.org/>`__
The corresponding definition #2
Some **term** with : classifier1 : classifier2
diff --git a/tests/roots/test-intl/external_links.txt b/tests/roots/test-intl/external_links.txt
index 1cecbee..2d0c063 100644
--- a/tests/roots/test-intl/external_links.txt
+++ b/tests/roots/test-intl/external_links.txt
@@ -8,12 +8,12 @@ External link to Python_.
Internal link to `i18n with external links`_.
-Inline link by `Sphinx Site <http://sphinx-doc.org>`_.
+Inline link by `Sphinx Site <https://sphinx-doc.org>`_.
Unnamed link__.
-.. _Python: http://python.org/index.html
-.. __: http://google.com
+.. _Python: https://python.org/index.html
+.. __: https://google.com
link target swapped translation
@@ -21,7 +21,7 @@ link target swapped translation
link to external1_ and external2_.
-link to `Sphinx Site <http://sphinx-doc.org>`_ and `Python Site <http://python.org>`_.
+link to `Sphinx Site <https://sphinx-doc.org>`_ and `Python Site <https://python.org>`_.
.. _external1: https://www.google.com/external1
.. _external2: https://www.google.com/external2
@@ -30,6 +30,6 @@ link to `Sphinx Site <http://sphinx-doc.org>`_ and `Python Site <http://python.o
Multiple references in the same line
=====================================
-Link to `Sphinx Site <http://sphinx-doc.org>`_, `Python Site <http://python.org>`_, Python_, Unnamed__ and `i18n with external links`_.
+Link to `Sphinx Site <https://sphinx-doc.org>`_, `Python Site <https://python.org>`_, Python_, Unnamed__ and `i18n with external links`_.
-.. __: http://google.com
+.. __: https://google.com
diff --git a/tests/roots/test-intl/raw.txt b/tests/roots/test-intl/raw.txt
index fe77f6c..1825941 100644
--- a/tests/roots/test-intl/raw.txt
+++ b/tests/roots/test-intl/raw.txt
@@ -4,5 +4,5 @@ Raw
.. raw:: html
- <iframe src="http://sphinx-doc.org"></iframe>
+ <iframe src="https://sphinx-doc.org"></iframe>
diff --git a/tests/roots/test-intl/refs.txt b/tests/roots/test-intl/refs.txt
index 4a094b2..ab52ef1 100644
--- a/tests/roots/test-intl/refs.txt
+++ b/tests/roots/test-intl/refs.txt
@@ -6,7 +6,7 @@ Translation Tips
.. _download Sphinx: https://pypi.org/project/Sphinx/
.. _Docutils site: https://docutils.sourceforge.io/
-.. _Sphinx site: http://sphinx-doc.org/
+.. _Sphinx site: https://sphinx-doc.org/
A-1. Here's how you can `download Sphinx`_.
diff --git a/tests/roots/test-intl/refs_inconsistency.txt b/tests/roots/test-intl/refs_inconsistency.txt
index b16623a..4840597 100644
--- a/tests/roots/test-intl/refs_inconsistency.txt
+++ b/tests/roots/test-intl/refs_inconsistency.txt
@@ -10,4 +10,4 @@ i18n with refs inconsistency
.. [#] This is a auto numbered footnote.
.. [ref2] This is a citation.
.. [100] This is a numbered footnote.
-.. _reference: http://www.example.com
+.. _reference: https://www.example.com
diff --git a/tests/roots/test-intl/versionchange.txt b/tests/roots/test-intl/versionchange.txt
index 4c57e14..7645342 100644
--- a/tests/roots/test-intl/versionchange.txt
+++ b/tests/roots/test-intl/versionchange.txt
@@ -14,3 +14,5 @@ i18n with versionchange
.. versionchanged:: 1.0
This is the *first* paragraph of versionchanged.
+
+.. versionremoved:: 1.0 This is the *first* paragraph of versionremoved.
diff --git a/tests/roots/test-intl/xx/LC_MESSAGES/definition_terms.po b/tests/roots/test-intl/xx/LC_MESSAGES/definition_terms.po
index 1752dd6..a19c9d1 100644
--- a/tests/roots/test-intl/xx/LC_MESSAGES/definition_terms.po
+++ b/tests/roots/test-intl/xx/LC_MESSAGES/definition_terms.po
@@ -25,8 +25,8 @@ msgstr "SOME TERM"
msgid "The corresponding definition"
msgstr "THE CORRESPONDING DEFINITION"
-msgid "Some *term* `with link <http://sphinx-doc.org/>`__"
-msgstr "SOME *TERM* `WITH LINK <http://sphinx-doc.org/>`__"
+msgid "Some *term* `with link <https://sphinx-doc.org/>`__"
+msgstr "SOME *TERM* `WITH LINK <https://sphinx-doc.org/>`__"
msgid "The corresponding definition #2"
msgstr "THE CORRESPONDING DEFINITION #2"
diff --git a/tests/roots/test-intl/xx/LC_MESSAGES/external_links.po b/tests/roots/test-intl/xx/LC_MESSAGES/external_links.po
index 8c53abb..345dc95 100644
--- a/tests/roots/test-intl/xx/LC_MESSAGES/external_links.po
+++ b/tests/roots/test-intl/xx/LC_MESSAGES/external_links.po
@@ -25,8 +25,8 @@ msgstr "EXTERNAL LINK TO Python_."
msgid "Internal link to `i18n with external links`_."
msgstr "`EXTERNAL LINKS`_ IS INTERNAL LINK."
-msgid "Inline link by `Sphinx Site <http://sphinx-doc.org>`_."
-msgstr "INLINE LINK BY `THE SPHINX SITE <http://sphinx-doc.org>`_."
+msgid "Inline link by `Sphinx Site <https://sphinx-doc.org>`_."
+msgstr "INLINE LINK BY `THE SPHINX SITE <https://sphinx-doc.org>`_."
msgid "Unnamed link__."
msgstr "UNNAMED LINK__."
@@ -37,11 +37,11 @@ msgstr "LINK TARGET SWAPPED TRANSLATION"
msgid "link to external1_ and external2_."
msgstr "LINK TO external2_ AND external1_."
-msgid "link to `Sphinx Site <http://sphinx-doc.org>`_ and `Python Site <http://python.org>`_."
-msgstr "LINK TO `THE PYTHON SITE <http://python.org>`_ AND `THE SPHINX SITE <http://sphinx-doc.org>`_."
+msgid "link to `Sphinx Site <https://sphinx-doc.org>`_ and `Python Site <https://python.org>`_."
+msgstr "LINK TO `THE PYTHON SITE <https://python.org>`_ AND `THE SPHINX SITE <https://sphinx-doc.org>`_."
msgid "Multiple references in the same line"
msgstr "MULTIPLE REFERENCES IN THE SAME LINE"
-msgid "Link to `Sphinx Site <http://sphinx-doc.org>`_, `Python Site <http://python.org>`_, Python_, Unnamed__ and `i18n with external links`_."
-msgstr "LINK TO `EXTERNAL LINKS`_, Python_, `THE SPHINX SITE <http://sphinx-doc.org>`_, UNNAMED__ AND `THE PYTHON SITE <http://python.org>`_."
+msgid "Link to `Sphinx Site <https://sphinx-doc.org>`_, `Python Site <https://python.org>`_, Python_, Unnamed__ and `i18n with external links`_."
+msgstr "LINK TO `EXTERNAL LINKS`_, Python_, `THE SPHINX SITE <https://sphinx-doc.org>`_, UNNAMED__ AND `THE PYTHON SITE <https://python.org>`_."
diff --git a/tests/roots/test-intl/xx/LC_MESSAGES/raw.po b/tests/roots/test-intl/xx/LC_MESSAGES/raw.po
index f2e8893..303f46b 100644
--- a/tests/roots/test-intl/xx/LC_MESSAGES/raw.po
+++ b/tests/roots/test-intl/xx/LC_MESSAGES/raw.po
@@ -16,6 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "<iframe src=\"http://sphinx-doc.org\"></iframe>"
-msgstr "<iframe src=\"HTTP://SPHINX-DOC.ORG\"></iframe>"
+msgid "<iframe src=\"https://sphinx-doc.org\"></iframe>"
+msgstr "<iframe src=\"HTTPS://SPHINX-DOC.ORG\"></iframe>"
diff --git a/tests/roots/test-intl/xx/LC_MESSAGES/versionchange.po b/tests/roots/test-intl/xx/LC_MESSAGES/versionchange.po
index 5a8df38..b1d7865 100644
--- a/tests/roots/test-intl/xx/LC_MESSAGES/versionchange.po
+++ b/tests/roots/test-intl/xx/LC_MESSAGES/versionchange.po
@@ -31,3 +31,5 @@ msgstr "THIS IS THE *FIRST* PARAGRAPH OF VERSIONADDED."
msgid "This is the *first* paragraph of versionchanged."
msgstr "THIS IS THE *FIRST* PARAGRAPH OF VERSIONCHANGED."
+msgid "This is the *first* paragraph of versionremoved."
+msgstr "THIS IS THE *FIRST* PARAGRAPH OF VERSIONREMOVED."
diff --git a/tests/roots/test-linkcheck-anchors-ignore-for-url/conf.py b/tests/roots/test-linkcheck-anchors-ignore-for-url/conf.py
index 0005bfa..3fc3628 100644
--- a/tests/roots/test-linkcheck-anchors-ignore-for-url/conf.py
+++ b/tests/roots/test-linkcheck-anchors-ignore-for-url/conf.py
@@ -1,3 +1,3 @@
exclude_patterns = ['_build']
linkcheck_anchors = True
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-anchors-ignore/conf.py b/tests/roots/test-linkcheck-anchors-ignore/conf.py
index 0005bfa..3fc3628 100644
--- a/tests/roots/test-linkcheck-anchors-ignore/conf.py
+++ b/tests/roots/test-linkcheck-anchors-ignore/conf.py
@@ -1,3 +1,3 @@
exclude_patterns = ['_build']
linkcheck_anchors = True
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-documents_exclude/conf.py b/tests/roots/test-linkcheck-documents_exclude/conf.py
index 52388f9..39fcdcb 100644
--- a/tests/roots/test-linkcheck-documents_exclude/conf.py
+++ b/tests/roots/test-linkcheck-documents_exclude/conf.py
@@ -3,4 +3,4 @@ linkcheck_exclude_documents = [
'^broken_link$',
'br[0-9]ken_link',
]
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-localserver-anchor/conf.py b/tests/roots/test-linkcheck-localserver-anchor/conf.py
index 0005bfa..3fc3628 100644
--- a/tests/roots/test-linkcheck-localserver-anchor/conf.py
+++ b/tests/roots/test-linkcheck-localserver-anchor/conf.py
@@ -1,3 +1,3 @@
exclude_patterns = ['_build']
linkcheck_anchors = True
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-localserver-https/conf.py b/tests/roots/test-linkcheck-localserver-https/conf.py
index a2ce01e..85cbe6f 100644
--- a/tests/roots/test-linkcheck-localserver-https/conf.py
+++ b/tests/roots/test-linkcheck-localserver-https/conf.py
@@ -1,2 +1,2 @@
exclude_patterns = ['_build']
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-localserver-warn-redirects/conf.py b/tests/roots/test-linkcheck-localserver-warn-redirects/conf.py
index a2ce01e..85cbe6f 100644
--- a/tests/roots/test-linkcheck-localserver-warn-redirects/conf.py
+++ b/tests/roots/test-linkcheck-localserver-warn-redirects/conf.py
@@ -1,2 +1,2 @@
exclude_patterns = ['_build']
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-localserver/conf.py b/tests/roots/test-linkcheck-localserver/conf.py
index a2ce01e..85cbe6f 100644
--- a/tests/roots/test-linkcheck-localserver/conf.py
+++ b/tests/roots/test-linkcheck-localserver/conf.py
@@ -1,2 +1,2 @@
exclude_patterns = ['_build']
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-raw-node/conf.py b/tests/roots/test-linkcheck-raw-node/conf.py
index a2ce01e..85cbe6f 100644
--- a/tests/roots/test-linkcheck-raw-node/conf.py
+++ b/tests/roots/test-linkcheck-raw-node/conf.py
@@ -1,2 +1,2 @@
exclude_patterns = ['_build']
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck-raw-node/index.rst b/tests/roots/test-linkcheck-raw-node/index.rst
deleted file mode 100644
index 76e26b5..0000000
--- a/tests/roots/test-linkcheck-raw-node/index.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-.. raw:: html
- :url: http://localhost:7777/
diff --git a/tests/roots/test-linkcheck-too-many-retries/conf.py b/tests/roots/test-linkcheck-too-many-retries/conf.py
index 0005bfa..3fc3628 100644
--- a/tests/roots/test-linkcheck-too-many-retries/conf.py
+++ b/tests/roots/test-linkcheck-too-many-retries/conf.py
@@ -1,3 +1,3 @@
exclude_patterns = ['_build']
linkcheck_anchors = True
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-linkcheck/conf.py b/tests/roots/test-linkcheck/conf.py
index 6ddb41a..7cb6a0d 100644
--- a/tests/roots/test-linkcheck/conf.py
+++ b/tests/roots/test-linkcheck/conf.py
@@ -1,4 +1,4 @@
root_doc = 'links'
exclude_patterns = ['_build']
linkcheck_anchors = True
-linkcheck_timeout = 0.05
+linkcheck_timeout = 0.25
diff --git a/tests/roots/test-manpage_url/index.rst b/tests/roots/test-manpage_url/index.rst
index 50d3b04..6761f97 100644
--- a/tests/roots/test-manpage_url/index.rst
+++ b/tests/roots/test-manpage_url/index.rst
@@ -1,3 +1,7 @@
- * :manpage:`man(1)`
- * :manpage:`ls.1`
- * :manpage:`sphinx`
+The :manpage:`cp(1)`
+--------------------
+* :manpage:`man(1)`
+* :manpage:`ls.1`
+* :manpage:`sphinx`
+* :manpage:`mailx(1) <bsd-mailx/mailx.1>`
+* :manpage:`!man(1)`
diff --git a/tests/roots/test-need-escaped/index.rst b/tests/roots/test-need-escaped/index.rst
index 9ef74e0..29a24fa 100644
--- a/tests/roots/test-need-escaped/index.rst
+++ b/tests/roots/test-need-escaped/index.rst
@@ -15,7 +15,7 @@ Contents:
foo
bar
- http://sphinx-doc.org/
+ https://sphinx-doc.org/
baz
qux
diff --git a/tests/roots/test-roles-download/index.rst b/tests/roots/test-roles-download/index.rst
index cdb075e..9d2c622 100644
--- a/tests/roots/test-roles-download/index.rst
+++ b/tests/roots/test-roles-download/index.rst
@@ -4,4 +4,4 @@ test-roles-download
* :download:`dummy.dat`
* :download:`another/dummy.dat`
* :download:`not_found.dat`
-* :download:`Sphinx logo <http://www.sphinx-doc.org/en/master/_static/sphinxheader.png>`
+* :download:`Sphinx logo <https://www.sphinx-doc.org/en/master/_static/sphinx-logo.svg>`
diff --git a/tests/roots/test-root/conf.py b/tests/roots/test-root/conf.py
index 154d4d1..a14ffaf 100644
--- a/tests/roots/test-root/conf.py
+++ b/tests/roots/test-root/conf.py
@@ -114,8 +114,8 @@ latex_elements = {
coverage_c_path = ['special/*.h']
coverage_c_regexes = {'function': r'^PyAPI_FUNC\(.*\)\s+([^_][\w_]+)'}
-extlinks = {'issue': ('http://bugs.python.org/issue%s', 'issue %s'),
- 'pyurl': ('http://python.org/%s', None)}
+extlinks = {'issue': ('https://bugs.python.org/issue%s', 'issue %s'),
+ 'pyurl': ('https://python.org/%s', None)}
# modify tags from conf.py
tags.add('confpytag')
diff --git a/tests/roots/test-root/images.txt b/tests/roots/test-root/images.txt
index 1dc591a..5a096dc 100644
--- a/tests/roots/test-root/images.txt
+++ b/tests/roots/test-root/images.txt
@@ -12,9 +12,6 @@ Sphinx image handling
.. an image with unspecified extension
.. image:: img.*
-.. a non-local image URI
-.. image:: https://www.python.org/static/img/python-logo.png
-
.. an image with subdir and unspecified extension
.. image:: subdir/simg.*
diff --git a/tests/roots/test-root/index.txt b/tests/roots/test-root/index.txt
index e39c958..6a37668 100644
--- a/tests/roots/test-root/index.txt
+++ b/tests/roots/test-root/index.txt
@@ -28,9 +28,9 @@ Contents:
lists
otherext
- http://sphinx-doc.org/
- Latest reference <http://sphinx-doc.org/latest/>
- Python <http://python.org/>
+ https://sphinx-doc.org/
+ Latest reference <https://sphinx-doc.org/latest/>
+ Python <https://python.org/>
Indices and tables
==================
diff --git a/tests/roots/test-root/markup.txt b/tests/roots/test-root/markup.txt
index b59a652..ff677eb 100644
--- a/tests/roots/test-root/markup.txt
+++ b/tests/roots/test-root/markup.txt
@@ -274,6 +274,9 @@ Version markup
.. deprecated:: 0.6
Boring stuff.
+.. versionremoved:: 0.6
+ Goodbye boring stuff.
+
.. versionadded:: 1.2
First paragraph of versionadded.
@@ -308,7 +311,7 @@ Reference lookup underscore: [Ref_1]_
.. seealso:: something, something else, something more
- `Google <http://www.google.com>`_
+ `Google <https://www.google.com>`_
For everything.
.. hlist::
diff --git a/tests/roots/test-toctree/index.rst b/tests/roots/test-toctree/index.rst
index adf1b84..d56f2f6 100644
--- a/tests/roots/test-toctree/index.rst
+++ b/tests/roots/test-toctree/index.rst
@@ -15,7 +15,7 @@ Contents:
foo
bar
- http://sphinx-doc.org/
+ https://sphinx-doc.org/
self
.. only:: html
@@ -44,8 +44,8 @@ This used to crash:
.. toctree::
:hidden:
- Latest reference <http://sphinx-doc.org/latest/>
- Python <http://python.org/>
+ Latest reference <https://sphinx-doc.org/latest/>
+ Python <https://python.org/>
Indices and tables
==================
diff --git a/tests/roots/test-versioning/insert_beginning.txt b/tests/roots/test-versioning/insert_beginning.txt
index 57102a7..9b6e723 100644
--- a/tests/roots/test-versioning/insert_beginning.txt
+++ b/tests/roots/test-versioning/insert_beginning.txt
@@ -1,7 +1,7 @@
Versioning test text
====================
-Apperantly inserting a paragraph at the beginning of a document caused
+Apparently inserting a paragraph at the beginning of a document caused
problems earlier so this document should be used to test that.
So the thing is I need some kind of text - not the lorem ipsum stuff, that
diff --git a/tests/test_addnodes.py b/tests/test_addnodes.py
index 184a696..aa99343 100644
--- a/tests/test_addnodes.py
+++ b/tests/test_addnodes.py
@@ -2,13 +2,18 @@
from __future__ import annotations
+from typing import TYPE_CHECKING
+
import pytest
from sphinx import addnodes
+if TYPE_CHECKING:
+ from collections.abc import Iterator
+
@pytest.fixture()
-def sig_elements() -> set[type[addnodes.desc_sig_element]]:
+def sig_elements() -> Iterator[set[type[addnodes.desc_sig_element]]]:
"""Fixture returning the current ``addnodes.SIG_ELEMENTS`` set."""
original = addnodes.SIG_ELEMENTS.copy() # safe copy of the current nodes
yield {*addnodes.SIG_ELEMENTS} # temporary value to use during tests
@@ -17,7 +22,6 @@ def sig_elements() -> set[type[addnodes.desc_sig_element]]:
def test_desc_sig_element_nodes(sig_elements):
"""Test the registration of ``desc_sig_element`` subclasses."""
-
# expected desc_sig_* node classes (must be declared *after* reloading
# the module since otherwise the objects are not the correct ones)
EXPECTED_SIG_ELEMENTS = {
diff --git a/tests/test_application.py b/tests/test_application.py
index a0fe268..1fc49d6 100644
--- a/tests/test_application.py
+++ b/tests/test_application.py
@@ -1,9 +1,11 @@
"""Test the Sphinx class."""
+from __future__ import annotations
import shutil
import sys
from io import StringIO
from pathlib import Path
+from typing import TYPE_CHECKING
from unittest.mock import Mock
import pytest
@@ -11,11 +13,19 @@ from docutils import nodes
import sphinx.application
from sphinx.errors import ExtensionError
-from sphinx.testing.util import SphinxTestApp, strip_escseq
+from sphinx.testing.util import SphinxTestApp
from sphinx.util import logging
+from sphinx.util.console import strip_colors
+if TYPE_CHECKING:
+ import os
-def test_instantiation(tmp_path_factory, rootdir: str, monkeypatch):
+
+def test_instantiation(
+ tmp_path_factory: pytest.TempPathFactory,
+ rootdir: str | os.PathLike[str] | None,
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
# Given
src_dir = tmp_path_factory.getbasetemp() / 'root'
@@ -70,13 +80,13 @@ def test_emit_with_nonascii_name_node(app, status, warning):
def test_extensions(app, status, warning):
app.setup_extension('shutil')
- warning = strip_escseq(warning.getvalue())
+ warning = strip_colors(warning.getvalue())
assert "extension 'shutil' has no setup() function" in warning
def test_extension_in_blacklist(app, status, warning):
app.setup_extension('sphinxjp.themecore')
- msg = strip_escseq(warning.getvalue())
+ msg = strip_colors(warning.getvalue())
assert msg.startswith("WARNING: the extension 'sphinxjp.themecore' was")
diff --git a/tests/test_build_html.py b/tests/test_build_html.py
deleted file mode 100644
index 07f101d..0000000
--- a/tests/test_build_html.py
+++ /dev/null
@@ -1,1841 +0,0 @@
-"""Test the HTML builder and check output against XPath."""
-
-import hashlib
-import os
-import posixpath
-import re
-from itertools import chain, cycle
-from pathlib import Path
-from unittest.mock import ANY, call, patch
-
-import pytest
-from html5lib import HTMLParser
-
-import sphinx.builders.html
-from sphinx.builders.html import validate_html_extra_path, validate_html_static_path
-from sphinx.builders.html._assets import _file_checksum
-from sphinx.errors import ConfigError, ThemeError
-from sphinx.testing.util import strip_escseq
-from sphinx.util.inventory import InventoryFile
-
-FIGURE_CAPTION = ".//figure/figcaption/p"
-
-
-ENV_WARNINGS = """\
-%(root)s/autodoc_fodder.py:docstring of autodoc_fodder.MarkupError:\\d+: \
-WARNING: Explicit markup ends without a blank line; unexpected unindent.
-%(root)s/index.rst:\\d+: WARNING: Encoding 'utf-8-sig' used for reading included \
-file '%(root)s/wrongenc.inc' seems to be wrong, try giving an :encoding: option
-%(root)s/index.rst:\\d+: WARNING: invalid single index entry ''
-%(root)s/index.rst:\\d+: WARNING: image file not readable: foo.png
-%(root)s/index.rst:\\d+: WARNING: download file not readable: %(root)s/nonexisting.png
-%(root)s/undecodable.rst:\\d+: WARNING: undecodable source characters, replacing \
-with "\\?": b?'here: >>>(\\\\|/)xbb<<<((\\\\|/)r)?'
-"""
-
-HTML_WARNINGS = ENV_WARNINGS + """\
-%(root)s/index.rst:\\d+: WARNING: unknown option: '&option'
-%(root)s/index.rst:\\d+: WARNING: citation not found: missing
-%(root)s/index.rst:\\d+: WARNING: a suitable image for html builder not found: foo.\\*
-%(root)s/index.rst:\\d+: WARNING: Lexing literal_block ".*" as "c" resulted in an error at token: ".*". Retrying in relaxed mode.
-"""
-
-
-etree_cache = {}
-
-
-@pytest.fixture(scope='module')
-def cached_etree_parse():
- def parse(fname):
- if fname in etree_cache:
- return etree_cache[fname]
- with (fname).open('rb') as fp:
- etree = HTMLParser(namespaceHTMLElements=False).parse(fp)
- etree_cache.clear()
- etree_cache[fname] = etree
- return etree
- yield parse
- etree_cache.clear()
-
-
-def flat_dict(d):
- return chain.from_iterable(
- [
- zip(cycle([fname]), values)
- for fname, values in d.items()
- ],
- )
-
-
-def tail_check(check):
- rex = re.compile(check)
-
- def checker(nodes):
- for node in nodes:
- if node.tail and rex.search(node.tail):
- return True
- msg = f'{check!r} not found in tail of any nodes {nodes}'
- raise AssertionError(msg)
- return checker
-
-
-def check_xpath(etree, fname, path, check, be_found=True):
- nodes = list(etree.findall(path))
- if check is None:
- assert nodes == [], ('found any nodes matching xpath '
- '%r in file %s' % (path, fname))
- return
- else:
- assert nodes != [], ('did not find any node matching xpath '
- '%r in file %s' % (path, fname))
- if callable(check):
- check(nodes)
- elif not check:
- # only check for node presence
- pass
- else:
- def get_text(node):
- if node.text is not None:
- # the node has only one text
- return node.text
- else:
- # the node has tags and text; gather texts just under the node
- return ''.join(n.tail or '' for n in node)
-
- rex = re.compile(check)
- if be_found:
- if any(rex.search(get_text(node)) for node in nodes):
- return
- else:
- if all(not rex.search(get_text(node)) for node in nodes):
- return
-
- raise AssertionError('%r not found in any node matching '
- 'path %s in %s: %r' % (check, path, fname,
- [node.text for node in nodes]))
-
-
-@pytest.mark.sphinx('html', testroot='warnings')
-def test_html_warnings(app, warning):
- app.build()
- html_warnings = strip_escseq(re.sub(re.escape(os.sep) + '{1,2}', '/', warning.getvalue()))
- html_warnings_exp = HTML_WARNINGS % {
- 'root': re.escape(app.srcdir.as_posix())}
- assert re.match(html_warnings_exp + '$', html_warnings), \
- "Warnings don't match:\n" + \
- '--- Expected (regex):\n' + html_warnings_exp + \
- '--- Got:\n' + html_warnings
-
-
-def test_html4_error(make_app, tmp_path):
- (tmp_path / 'conf.py').write_text('', encoding='utf-8')
- with pytest.raises(
- ConfigError,
- match='HTML 4 is no longer supported by Sphinx',
- ):
- make_app(
- buildername='html',
- srcdir=tmp_path,
- confoverrides={'html4_writer': True},
- )
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'images.html': [
- (".//img[@src='_images/img.png']", ''),
- (".//img[@src='_images/img1.png']", ''),
- (".//img[@src='_images/simg.png']", ''),
- (".//img[@src='_images/svgimg.svg']", ''),
- (".//a[@href='_sources/images.txt']", ''),
- ],
- 'subdir/images.html': [
- (".//img[@src='../_images/img1.png']", ''),
- (".//img[@src='../_images/rimg.png']", ''),
- ],
- 'subdir/includes.html': [
- (".//a[@class='reference download internal']", ''),
- (".//img[@src='../_images/img.png']", ''),
- (".//p", 'This is an include file.'),
- (".//pre/span", 'line 1'),
- (".//pre/span", 'line 2'),
- ],
- 'includes.html': [
- (".//pre", 'Max Strauß'),
- (".//a[@class='reference download internal']", ''),
- (".//pre/span", '"quotes"'),
- (".//pre/span", "'included'"),
- (".//pre/span[@class='s2']", 'üöä'),
- (".//div[@class='inc-pyobj1 highlight-text notranslate']//pre",
- r'^class Foo:\n pass\n\s*$'),
- (".//div[@class='inc-pyobj2 highlight-text notranslate']//pre",
- r'^ def baz\(\):\n pass\n\s*$'),
- (".//div[@class='inc-lines highlight-text notranslate']//pre",
- r'^class Foo:\n pass\nclass Bar:\n$'),
- (".//div[@class='inc-startend highlight-text notranslate']//pre",
- '^foo = "Including Unicode characters: üöä"\\n$'),
- (".//div[@class='inc-preappend highlight-text notranslate']//pre",
- r'(?m)^START CODE$'),
- (".//div[@class='inc-pyobj-dedent highlight-python notranslate']//span",
- r'def'),
- (".//div[@class='inc-tab3 highlight-text notranslate']//pre",
- r'-| |-'),
- (".//div[@class='inc-tab8 highlight-python notranslate']//pre/span",
- r'-| |-'),
- ],
- 'autodoc.html': [
- (".//dl[@class='py class']/dt[@id='autodoc_target.Class']", ''),
- (".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span/span", r'\*\*'),
- (".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span/span", r'kwds'),
- (".//dd/p", r'Return spam\.'),
- ],
- 'extapi.html': [
- (".//strong", 'from class: Bar'),
- ],
- 'markup.html': [
- (".//title", 'set by title directive'),
- (".//p/em", 'Section author: Georg Brandl'),
- (".//p/em", 'Module author: Georg Brandl'),
- # created by the meta directive
- (".//meta[@name='author'][@content='Me']", ''),
- (".//meta[@name='keywords'][@content='docs, sphinx']", ''),
- # a label created by ``.. _label:``
- (".//div[@id='label']", ''),
- # code with standard code blocks
- (".//pre", '^some code$'),
- # an option list
- (".//span[@class='option']", '--help'),
- # admonitions
- (".//p[@class='admonition-title']", 'My Admonition'),
- (".//div[@class='admonition note']/p", 'Note text.'),
- (".//div[@class='admonition warning']/p", 'Warning text.'),
- # inline markup
- (".//li/p/strong", r'^command\\n$'),
- (".//li/p/strong", r'^program\\n$'),
- (".//li/p/em", r'^dfn\\n$'),
- (".//li/p/kbd", r'^kbd\\n$'),
- (".//li/p/span", 'File \N{TRIANGULAR BULLET} Close'),
- (".//li/p/code/span[@class='pre']", '^a/$'),
- (".//li/p/code/em/span[@class='pre']", '^varpart$'),
- (".//li/p/code/em/span[@class='pre']", '^i$'),
- (".//a[@href='https://peps.python.org/pep-0008/']"
- "[@class='pep reference external']/strong", 'PEP 8'),
- (".//a[@href='https://peps.python.org/pep-0008/']"
- "[@class='pep reference external']/strong",
- 'Python Enhancement Proposal #8'),
- (".//a[@href='https://datatracker.ietf.org/doc/html/rfc1.html']"
- "[@class='rfc reference external']/strong", 'RFC 1'),
- (".//a[@href='https://datatracker.ietf.org/doc/html/rfc1.html']"
- "[@class='rfc reference external']/strong", 'Request for Comments #1'),
- (".//a[@href='objects.html#envvar-HOME']"
- "[@class='reference internal']/code/span[@class='pre']", 'HOME'),
- (".//a[@href='#with']"
- "[@class='reference internal']/code/span[@class='pre']", '^with$'),
- (".//a[@href='#grammar-token-try_stmt']"
- "[@class='reference internal']/code/span", '^statement$'),
- (".//a[@href='#some-label'][@class='reference internal']/span", '^here$'),
- (".//a[@href='#some-label'][@class='reference internal']/span", '^there$'),
- (".//a[@href='subdir/includes.html']"
- "[@class='reference internal']/span", 'Including in subdir'),
- (".//a[@href='objects.html#cmdoption-python-c']"
- "[@class='reference internal']/code/span[@class='pre']", '-c'),
- # abbreviations
- (".//abbr[@title='abbreviation']", '^abbr$'),
- # version stuff
- (".//div[@class='versionadded']/p/span", 'New in version 0.6: '),
- (".//div[@class='versionadded']/p/span",
- tail_check('First paragraph of versionadded')),
- (".//div[@class='versionchanged']/p/span",
- tail_check('First paragraph of versionchanged')),
- (".//div[@class='versionchanged']/p",
- 'Second paragraph of versionchanged'),
- # footnote reference
- (".//a[@class='footnote-reference brackets']", r'1'),
- # created by reference lookup
- (".//a[@href='index.html#ref1']", ''),
- # ``seealso`` directive
- (".//div/p[@class='admonition-title']", 'See also'),
- # a ``hlist`` directive
- (".//table[@class='hlist']/tbody/tr/td/ul/li/p", '^This$'),
- # a ``centered`` directive
- (".//p[@class='centered']/strong", 'LICENSE'),
- # a glossary
- (".//dl/dt[@id='term-boson']", 'boson'),
- (".//dl/dt[@id='term-boson']/a", '¶'),
- # a production list
- (".//pre/strong", 'try_stmt'),
- (".//pre/a[@href='#grammar-token-try1_stmt']/code/span", 'try1_stmt'),
- # tests for ``only`` directive
- (".//p", 'A global substitution!'),
- (".//p", 'In HTML.'),
- (".//p", 'In both.'),
- (".//p", 'Always present'),
- # tests for ``any`` role
- (".//a[@href='#with']/span", 'headings'),
- (".//a[@href='objects.html#func_without_body']/code/span", 'objects'),
- # tests for numeric labels
- (".//a[@href='#id1'][@class='reference internal']/span", 'Testing various markup'),
- # tests for smartypants
- (".//li/p", 'Smart “quotes†in English ‘text’.'),
- (".//li/p", 'Smart — long and – short dashes.'),
- (".//li/p", 'Ellipsis…'),
- (".//li/p/code/span[@class='pre']", 'foo--"bar"...'),
- (".//p", 'Этот «абзац» должен иÑпользовать „руÑÑкие“ кавычки.'),
- (".//p", 'Il dit : « C’est “super†! »'),
- ],
- 'objects.html': [
- (".//dt[@id='mod.Cls.meth1']", ''),
- (".//dt[@id='errmod.Error']", ''),
- (".//dt/span[@class='sig-name descname']/span[@class='pre']", r'long\(parameter,'),
- (".//dt/span[@class='sig-name descname']/span[@class='pre']", r'list\)'),
- (".//dt/span[@class='sig-name descname']/span[@class='pre']", 'another'),
- (".//dt/span[@class='sig-name descname']/span[@class='pre']", 'one'),
- (".//a[@href='#mod.Cls'][@class='reference internal']", ''),
- (".//dl[@class='std userdesc']", ''),
- (".//dt[@id='userdesc-myobj']", ''),
- (".//a[@href='#userdesc-myobj'][@class='reference internal']", ''),
- # docfields
- (".//a[@class='reference internal'][@href='#TimeInt']/em", 'TimeInt'),
- (".//a[@class='reference internal'][@href='#Time']", 'Time'),
- (".//a[@class='reference internal'][@href='#errmod.Error']/strong", 'Error'),
- # C references
- (".//span[@class='pre']", 'CFunction()'),
- (".//a[@href='#c.Sphinx_DoSomething']", ''),
- (".//a[@href='#c.SphinxStruct.member']", ''),
- (".//a[@href='#c.SPHINX_USE_PYTHON']", ''),
- (".//a[@href='#c.SphinxType']", ''),
- (".//a[@href='#c.sphinx_global']", ''),
- # test global TOC created by toctree()
- (".//ul[@class='current']/li[@class='toctree-l1 current']/a[@href='#']",
- 'Testing object descriptions'),
- (".//li[@class='toctree-l1']/a[@href='markup.html']",
- 'Testing various markup'),
- # test unknown field names
- (".//dt[@class='field-odd']", 'Field_name'),
- (".//dt[@class='field-even']", 'Field_name all lower'),
- (".//dt[@class='field-odd']", 'FIELD_NAME'),
- (".//dt[@class='field-even']", 'FIELD_NAME ALL CAPS'),
- (".//dt[@class='field-odd']", 'Field_Name'),
- (".//dt[@class='field-even']", 'Field_Name All Word Caps'),
- (".//dt[@class='field-odd']", 'Field_name'),
- (".//dt[@class='field-even']", 'Field_name First word cap'),
- (".//dt[@class='field-odd']", 'FIELd_name'),
- (".//dt[@class='field-even']", 'FIELd_name PARTial caps'),
- # custom sidebar
- (".//h4", 'Custom sidebar'),
- # docfields
- (".//dd[@class='field-odd']/p/strong", '^moo$'),
- (".//dd[@class='field-odd']/p/strong", tail_check(r'\(Moo\) .* Moo')),
- (".//dd[@class='field-odd']/ul/li/p/strong", '^hour$'),
- (".//dd[@class='field-odd']/ul/li/p/em", '^DuplicateType$'),
- (".//dd[@class='field-odd']/ul/li/p/em", tail_check(r'.* Some parameter')),
- # others
- (".//a[@class='reference internal'][@href='#cmdoption-perl-arg-p']/code/span",
- 'perl'),
- (".//a[@class='reference internal'][@href='#cmdoption-perl-arg-p']/code/span",
- '\\+p'),
- (".//a[@class='reference internal'][@href='#cmdoption-perl-ObjC']/code/span",
- '--ObjC\\+\\+'),
- (".//a[@class='reference internal'][@href='#cmdoption-perl-plugin.option']/code/span",
- '--plugin.option'),
- (".//a[@class='reference internal'][@href='#cmdoption-perl-arg-create-auth-token']"
- "/code/span",
- 'create-auth-token'),
- (".//a[@class='reference internal'][@href='#cmdoption-perl-arg-arg']/code/span",
- 'arg'),
- (".//a[@class='reference internal'][@href='#cmdoption-perl-j']/code/span",
- '-j'),
- (".//a[@class='reference internal'][@href='#cmdoption-hg-arg-commit']/code/span",
- 'hg'),
- (".//a[@class='reference internal'][@href='#cmdoption-hg-arg-commit']/code/span",
- 'commit'),
- (".//a[@class='reference internal'][@href='#cmdoption-git-commit-p']/code/span",
- 'git'),
- (".//a[@class='reference internal'][@href='#cmdoption-git-commit-p']/code/span",
- 'commit'),
- (".//a[@class='reference internal'][@href='#cmdoption-git-commit-p']/code/span",
- '-p'),
- ],
- 'index.html': [
- (".//meta[@name='hc'][@content='hcval']", ''),
- (".//meta[@name='hc_co'][@content='hcval_co']", ''),
- (".//li[@class='toctree-l1']/a", 'Testing various markup'),
- (".//li[@class='toctree-l2']/a", 'Inline markup'),
- (".//title", 'Sphinx <Tests>'),
- (".//div[@class='footer']", 'copyright text credits'),
- (".//a[@href='http://python.org/']"
- "[@class='reference external']", ''),
- (".//li/p/a[@href='genindex.html']/span", 'Index'),
- (".//li/p/a[@href='py-modindex.html']/span", 'Module Index'),
- # custom sidebar only for contents
- (".//h4", 'Contents sidebar'),
- # custom JavaScript
- (".//script[@src='file://moo.js']", ''),
- # URL in contents
- (".//a[@class='reference external'][@href='http://sphinx-doc.org/']",
- 'http://sphinx-doc.org/'),
- (".//a[@class='reference external'][@href='http://sphinx-doc.org/latest/']",
- 'Latest reference'),
- # Indirect hyperlink targets across files
- (".//a[@href='markup.html#some-label'][@class='reference internal']/span",
- '^indirect hyperref$'),
- ],
- 'bom.html': [
- (".//title", " File with UTF-8 BOM"),
- ],
- 'extensions.html': [
- (".//a[@href='http://python.org/dev/']", "http://python.org/dev/"),
- (".//a[@href='http://bugs.python.org/issue1000']", "issue 1000"),
- (".//a[@href='http://bugs.python.org/issue1042']", "explicit caption"),
- ],
- 'genindex.html': [
- # index entries
- (".//a/strong", "Main"),
- (".//a/strong", "[1]"),
- (".//a/strong", "Other"),
- (".//a", "entry"),
- (".//li/a", "double"),
- ],
- 'otherext.html': [
- (".//h1", "Generated section"),
- (".//a[@href='_sources/otherext.foo.txt']", ''),
- ],
-}))
-@pytest.mark.sphinx('html', tags=['testtag'],
- confoverrides={'html_context.hckey_co': 'hcval_co'})
-@pytest.mark.test_params(shared_result='test_build_html_output')
-def test_html5_output(app, cached_etree_parse, fname, expect):
- app.build()
- print(app.outdir / fname)
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (".//div[@class='citation']/span", r'Ref1'),
- (".//div[@class='citation']/span", r'Ref_1'),
- ],
- 'footnote.html': [
- (".//a[@class='footnote-reference brackets'][@href='#id9'][@id='id1']", r"1"),
- (".//a[@class='footnote-reference brackets'][@href='#id10'][@id='id2']", r"2"),
- (".//a[@class='footnote-reference brackets'][@href='#foo'][@id='id3']", r"3"),
- (".//a[@class='reference internal'][@href='#bar'][@id='id4']/span", r"\[bar\]"),
- (".//a[@class='reference internal'][@href='#baz-qux'][@id='id5']/span", r"\[baz_qux\]"),
- (".//a[@class='footnote-reference brackets'][@href='#id11'][@id='id6']", r"4"),
- (".//a[@class='footnote-reference brackets'][@href='#id12'][@id='id7']", r"5"),
- (".//aside[@class='footnote brackets']/span/a[@href='#id1']", r"1"),
- (".//aside[@class='footnote brackets']/span/a[@href='#id2']", r"2"),
- (".//aside[@class='footnote brackets']/span/a[@href='#id3']", r"3"),
- (".//div[@class='citation']/span/a[@href='#id4']", r"bar"),
- (".//div[@class='citation']/span/a[@href='#id5']", r"baz_qux"),
- (".//aside[@class='footnote brackets']/span/a[@href='#id6']", r"4"),
- (".//aside[@class='footnote brackets']/span/a[@href='#id7']", r"5"),
- (".//aside[@class='footnote brackets']/span/a[@href='#id8']", r"6"),
- ],
-}))
-@pytest.mark.sphinx('html')
-@pytest.mark.test_params(shared_result='test_build_html_output_docutils18')
-def test_docutils_output(app, cached_etree_parse, fname, expect):
- app.build()
- print(app.outdir / fname)
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', parallel=2)
-def test_html_parallel(app):
- app.build()
-
-
-@pytest.mark.sphinx('html')
-@pytest.mark.test_params(shared_result='test_build_html_output')
-def test_html_download(app):
- app.build()
-
- # subdir/includes.html
- result = (app.outdir / 'subdir' / 'includes.html').read_text(encoding='utf8')
- pattern = ('<a class="reference download internal" download="" '
- 'href="../(_downloads/.*/img.png)">')
- matched = re.search(pattern, result)
- assert matched
- assert (app.outdir / matched.group(1)).exists()
- filename = matched.group(1)
-
- # includes.html
- result = (app.outdir / 'includes.html').read_text(encoding='utf8')
- pattern = ('<a class="reference download internal" download="" '
- 'href="(_downloads/.*/img.png)">')
- matched = re.search(pattern, result)
- assert matched
- assert (app.outdir / matched.group(1)).exists()
- assert matched.group(1) == filename
-
- pattern = ('<a class="reference download internal" download="" '
- 'href="(_downloads/.*/)(file_with_special_%23_chars.xyz)">')
- matched = re.search(pattern, result)
- assert matched
- assert (app.outdir / matched.group(1) / "file_with_special_#_chars.xyz").exists()
-
-
-@pytest.mark.sphinx('html', testroot='roles-download')
-def test_html_download_role(app, status, warning):
- app.build()
- digest = hashlib.md5(b'dummy.dat', usedforsecurity=False).hexdigest()
- assert (app.outdir / '_downloads' / digest / 'dummy.dat').exists()
- digest_another = hashlib.md5(b'another/dummy.dat', usedforsecurity=False).hexdigest()
- assert (app.outdir / '_downloads' / digest_another / 'dummy.dat').exists()
-
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert (('<li><p><a class="reference download internal" download="" '
- 'href="_downloads/%s/dummy.dat">'
- '<code class="xref download docutils literal notranslate">'
- '<span class="pre">dummy.dat</span></code></a></p></li>' % digest)
- in content)
- assert (('<li><p><a class="reference download internal" download="" '
- 'href="_downloads/%s/dummy.dat">'
- '<code class="xref download docutils literal notranslate">'
- '<span class="pre">another/dummy.dat</span></code></a></p></li>' %
- digest_another) in content)
- assert ('<li><p><code class="xref download docutils literal notranslate">'
- '<span class="pre">not_found.dat</span></code></p></li>' in content)
- assert ('<li><p><a class="reference download external" download="" '
- 'href="http://www.sphinx-doc.org/en/master/_static/sphinxheader.png">'
- '<code class="xref download docutils literal notranslate">'
- '<span class="pre">Sphinx</span> <span class="pre">logo</span>'
- '</code></a></p></li>' in content)
-
-
-@pytest.mark.sphinx('html', testroot='build-html-translator')
-def test_html_translator(app):
- app.build()
- assert app.builder.docwriter.visitor.depart_with_node == 10
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (".//li[@class='toctree-l3']/a", '1.1.1. Foo A1', True),
- (".//li[@class='toctree-l3']/a", '1.2.1. Foo B1', True),
- (".//li[@class='toctree-l3']/a", '2.1.1. Bar A1', False),
- (".//li[@class='toctree-l3']/a", '2.2.1. Bar B1', False),
- ],
- 'foo.html': [
- (".//h1", 'Foo', True),
- (".//h2", 'Foo A', True),
- (".//h3", 'Foo A1', True),
- (".//h2", 'Foo B', True),
- (".//h3", 'Foo B1', True),
-
- (".//h1//span[@class='section-number']", '1. ', True),
- (".//h2//span[@class='section-number']", '1.1. ', True),
- (".//h3//span[@class='section-number']", '1.1.1. ', True),
- (".//h2//span[@class='section-number']", '1.2. ', True),
- (".//h3//span[@class='section-number']", '1.2.1. ', True),
-
- (".//div[@class='sphinxsidebarwrapper']//li/a", '1.1. Foo A', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '1.1.1. Foo A1', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '1.2. Foo B', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '1.2.1. Foo B1', True),
- ],
- 'bar.html': [
- (".//h1", 'Bar', True),
- (".//h2", 'Bar A', True),
- (".//h2", 'Bar B', True),
- (".//h3", 'Bar B1', True),
- (".//h1//span[@class='section-number']", '2. ', True),
- (".//h2//span[@class='section-number']", '2.1. ', True),
- (".//h2//span[@class='section-number']", '2.2. ', True),
- (".//h3//span[@class='section-number']", '2.2.1. ', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '2. Bar', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '2.1. Bar A', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '2.2. Bar B', True),
- (".//div[@class='sphinxsidebarwrapper']//li/a", '2.2.1. Bar B1', False),
- ],
- 'baz.html': [
- (".//h1", 'Baz A', True),
- (".//h1//span[@class='section-number']", '2.1.1. ', True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='tocdepth')
-@pytest.mark.test_params(shared_result='test_build_html_tocdepth')
-def test_tocdepth(app, cached_etree_parse, fname, expect):
- app.build()
- # issue #1251
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (".//li[@class='toctree-l3']/a", '1.1.1. Foo A1', True),
- (".//li[@class='toctree-l3']/a", '1.2.1. Foo B1', True),
- (".//li[@class='toctree-l3']/a", '2.1.1. Bar A1', False),
- (".//li[@class='toctree-l3']/a", '2.2.1. Bar B1', False),
-
- # index.rst
- (".//h1", 'test-tocdepth', True),
-
- # foo.rst
- (".//h2", 'Foo', True),
- (".//h3", 'Foo A', True),
- (".//h4", 'Foo A1', True),
- (".//h3", 'Foo B', True),
- (".//h4", 'Foo B1', True),
- (".//h2//span[@class='section-number']", '1. ', True),
- (".//h3//span[@class='section-number']", '1.1. ', True),
- (".//h4//span[@class='section-number']", '1.1.1. ', True),
- (".//h3//span[@class='section-number']", '1.2. ', True),
- (".//h4//span[@class='section-number']", '1.2.1. ', True),
-
- # bar.rst
- (".//h2", 'Bar', True),
- (".//h3", 'Bar A', True),
- (".//h3", 'Bar B', True),
- (".//h4", 'Bar B1', True),
- (".//h2//span[@class='section-number']", '2. ', True),
- (".//h3//span[@class='section-number']", '2.1. ', True),
- (".//h3//span[@class='section-number']", '2.2. ', True),
- (".//h4//span[@class='section-number']", '2.2.1. ', True),
-
- # baz.rst
- (".//h4", 'Baz A', True),
- (".//h4//span[@class='section-number']", '2.1.1. ', True),
- ],
-}))
-@pytest.mark.sphinx('singlehtml', testroot='tocdepth')
-@pytest.mark.test_params(shared_result='test_build_html_tocdepth')
-def test_tocdepth_singlehtml(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='numfig')
-@pytest.mark.test_params(shared_result='test_build_html_numfig')
-def test_numfig_disabled_warn(app, warning):
- app.build()
- warnings = warning.getvalue()
- assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' in warnings
- assert 'index.rst:56: WARNING: invalid numfig_format: invalid' not in warnings
- assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' not in warnings
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
- (".//table/caption/span[@class='caption-number']", None, True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", None, True),
- (".//li/p/code/span", '^fig1$', True),
- (".//li/p/code/span", '^Figure%s$', True),
- (".//li/p/code/span", '^table-1$', True),
- (".//li/p/code/span", '^Table:%s$', True),
- (".//li/p/code/span", '^CODE_1$', True),
- (".//li/p/code/span", '^Code-%s$', True),
- (".//li/p/a/span", '^Section 1$', True),
- (".//li/p/a/span", '^Section 2.1$', True),
- (".//li/p/code/span", '^Fig.{number}$', True),
- (".//li/p/a/span", '^Sect.1 Foo$', True),
- ],
- 'foo.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
- (".//table/caption/span[@class='caption-number']", None, True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", None, True),
- ],
- 'bar.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
- (".//table/caption/span[@class='caption-number']", None, True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", None, True),
- ],
- 'baz.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
- (".//table/caption/span[@class='caption-number']", None, True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", None, True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='numfig')
-@pytest.mark.test_params(shared_result='test_build_html_numfig')
-def test_numfig_disabled(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx(
- 'html', testroot='numfig',
- srcdir='test_numfig_without_numbered_toctree_warn',
- confoverrides={'numfig': True})
-def test_numfig_without_numbered_toctree_warn(app, warning):
- app.build()
- # remove :numbered: option
- index = (app.srcdir / 'index.rst').read_text(encoding='utf8')
- index = re.sub(':numbered:.*', '', index)
- (app.srcdir / 'index.rst').write_text(index, encoding='utf8')
- app.build()
-
- warnings = warning.getvalue()
- assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
- assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
- assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
- assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 9 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 10 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 9 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 10 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 9 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 10 $', True),
- (".//li/p/a/span", '^Fig. 9$', True),
- (".//li/p/a/span", '^Figure6$', True),
- (".//li/p/a/span", '^Table 9$', True),
- (".//li/p/a/span", '^Table:6$', True),
- (".//li/p/a/span", '^Listing 9$', True),
- (".//li/p/a/span", '^Code-6$', True),
- (".//li/p/code/span", '^foo$', True),
- (".//li/p/code/span", '^bar_a$', True),
- (".//li/p/a/span", '^Fig.9 should be Fig.1$', True),
- (".//li/p/code/span", '^Sect.{number}$', True),
- ],
- 'foo.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 4 $', True),
- ],
- 'bar.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 5 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 7 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 8 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 5 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 7 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 8 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 5 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 7 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 8 $', True),
- ],
- 'baz.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 6 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 6 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 6 $', True),
- ],
-}))
-@pytest.mark.sphinx(
- 'html', testroot='numfig',
- srcdir='test_numfig_without_numbered_toctree',
- confoverrides={'numfig': True})
-def test_numfig_without_numbered_toctree(app, cached_etree_parse, fname, expect):
- # remove :numbered: option
- index = (app.srcdir / 'index.rst').read_text(encoding='utf8')
- index = re.sub(':numbered:.*', '', index)
- (app.srcdir / 'index.rst').write_text(index, encoding='utf8')
-
- if not os.listdir(app.outdir):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='numfig', confoverrides={'numfig': True})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_on')
-def test_numfig_with_numbered_toctree_warn(app, warning):
- app.build()
- warnings = warning.getvalue()
- assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
- assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
- assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
- assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2 $', True),
- (".//li/p/a/span", '^Fig. 1$', True),
- (".//li/p/a/span", '^Figure2.2$', True),
- (".//li/p/a/span", '^Table 1$', True),
- (".//li/p/a/span", '^Table:2.2$', True),
- (".//li/p/a/span", '^Listing 1$', True),
- (".//li/p/a/span", '^Code-2.2$', True),
- (".//li/p/a/span", '^Section.1$', True),
- (".//li/p/a/span", '^Section.2.1$', True),
- (".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
- (".//li/p/a/span", '^Sect.1 Foo$', True),
- ],
- 'foo.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.2 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.4 $', True),
- ],
- 'bar.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.4 $', True),
- ],
- 'baz.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.2 $', True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='numfig', confoverrides={'numfig': True})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_on')
-def test_numfig_with_numbered_toctree(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='numfig', confoverrides={
- 'numfig': True,
- 'numfig_format': {'figure': 'Figure:%s',
- 'table': 'Tab_%s',
- 'code-block': 'Code-%s',
- 'section': 'SECTION-%s'}})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_format_warn')
-def test_numfig_with_prefix_warn(app, warning):
- app.build()
- warnings = warning.getvalue()
- assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
- assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
- assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
- assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-2 $', True),
- (".//li/p/a/span", '^Figure:1$', True),
- (".//li/p/a/span", '^Figure2.2$', True),
- (".//li/p/a/span", '^Tab_1$', True),
- (".//li/p/a/span", '^Table:2.2$', True),
- (".//li/p/a/span", '^Code-1$', True),
- (".//li/p/a/span", '^Code-2.2$', True),
- (".//li/p/a/span", '^SECTION-1$', True),
- (".//li/p/a/span", '^SECTION-2.1$', True),
- (".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
- (".//li/p/a/span", '^Sect.1 Foo$', True),
- ],
- 'foo.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.2 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_1.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_1.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_1.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_1.4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-1.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-1.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-1.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-1.4 $', True),
- ],
- 'bar.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_2.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_2.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_2.4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-2.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-2.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-2.4 $', True),
- ],
- 'baz.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Tab_2.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Code-2.2 $', True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='numfig',
- confoverrides={'numfig': True,
- 'numfig_format': {'figure': 'Figure:%s',
- 'table': 'Tab_%s',
- 'code-block': 'Code-%s',
- 'section': 'SECTION-%s'}})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_format_warn')
-def test_numfig_with_prefix(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='numfig',
- confoverrides={'numfig': True, 'numfig_secnum_depth': 2})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_depth_2')
-def test_numfig_with_secnum_depth_warn(app, warning):
- app.build()
- warnings = warning.getvalue()
- assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
- assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
- assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
- assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2 $', True),
- (".//li/p/a/span", '^Fig. 1$', True),
- (".//li/p/a/span", '^Figure2.1.2$', True),
- (".//li/p/a/span", '^Table 1$', True),
- (".//li/p/a/span", '^Table:2.1.2$', True),
- (".//li/p/a/span", '^Listing 1$', True),
- (".//li/p/a/span", '^Code-2.1.2$', True),
- (".//li/p/a/span", '^Section.1$', True),
- (".//li/p/a/span", '^Section.2.1$', True),
- (".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
- (".//li/p/a/span", '^Sect.1 Foo$', True),
- ],
- 'foo.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1.2 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.2.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.1.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.1.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.2.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.1.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.1.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.2.1 $', True),
- ],
- 'bar.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.2.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.1.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.1.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.2.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.1.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.1.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.2.1 $', True),
- ],
- 'baz.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.1.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.1.2 $', True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='numfig',
- confoverrides={'numfig': True,
- 'numfig_secnum_depth': 2})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_depth_2')
-def test_numfig_with_secnum_depth(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2 $', True),
- (".//li/p/a/span", '^Fig. 1$', True),
- (".//li/p/a/span", '^Figure2.2$', True),
- (".//li/p/a/span", '^Table 1$', True),
- (".//li/p/a/span", '^Table:2.2$', True),
- (".//li/p/a/span", '^Listing 1$', True),
- (".//li/p/a/span", '^Code-2.2$', True),
- (".//li/p/a/span", '^Section.1$', True),
- (".//li/p/a/span", '^Section.2.1$', True),
- (".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
- (".//li/p/a/span", '^Sect.1 Foo$', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.2 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 1.4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 1.4 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.3 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.4 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.1 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.3 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.4 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.1 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.3 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.4 $', True),
- (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.2 $', True),
- (".//table/caption/span[@class='caption-number']",
- '^Table 2.2 $', True),
- (".//div[@class='code-block-caption']/"
- "span[@class='caption-number']", '^Listing 2.2 $', True),
- ],
-}))
-@pytest.mark.sphinx('singlehtml', testroot='numfig', confoverrides={'numfig': True})
-@pytest.mark.test_params(shared_result='test_build_html_numfig_on')
-def test_numfig_with_singlehtml(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (FIGURE_CAPTION + "//span[@class='caption-number']", "Fig. 1", True),
- (FIGURE_CAPTION + "//span[@class='caption-number']", "Fig. 2", True),
- (FIGURE_CAPTION + "//span[@class='caption-number']", "Fig. 3", True),
- (".//div//span[@class='caption-number']", "No.1 ", True),
- (".//div//span[@class='caption-number']", "No.2 ", True),
- (".//li/p/a/span", 'Fig. 1', True),
- (".//li/p/a/span", 'Fig. 2', True),
- (".//li/p/a/span", 'Fig. 3', True),
- (".//li/p/a/span", 'No.1', True),
- (".//li/p/a/span", 'No.2', True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='add_enumerable_node',
- srcdir='test_enumerable_node')
-def test_enumerable_node(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='html_assets')
-def test_html_assets(app):
- app.builder.build_all()
-
- # exclude_path and its family
- assert not (app.outdir / 'static' / 'index.html').exists()
- assert not (app.outdir / 'extra' / 'index.html').exists()
-
- # html_static_path
- assert not (app.outdir / '_static' / '.htaccess').exists()
- assert not (app.outdir / '_static' / '.htpasswd').exists()
- assert (app.outdir / '_static' / 'API.html').exists()
- assert (app.outdir / '_static' / 'API.html').read_text(encoding='utf8') == 'Sphinx-1.4.4'
- assert (app.outdir / '_static' / 'css' / 'style.css').exists()
- assert (app.outdir / '_static' / 'js' / 'custom.js').exists()
- assert (app.outdir / '_static' / 'rimg.png').exists()
- assert not (app.outdir / '_static' / '_build' / 'index.html').exists()
- assert (app.outdir / '_static' / 'background.png').exists()
- assert not (app.outdir / '_static' / 'subdir' / '.htaccess').exists()
- assert not (app.outdir / '_static' / 'subdir' / '.htpasswd').exists()
-
- # html_extra_path
- assert (app.outdir / '.htaccess').exists()
- assert not (app.outdir / '.htpasswd').exists()
- assert (app.outdir / 'API.html_t').exists()
- assert (app.outdir / 'css/style.css').exists()
- assert (app.outdir / 'rimg.png').exists()
- assert not (app.outdir / '_build' / 'index.html').exists()
- assert (app.outdir / 'background.png').exists()
- assert (app.outdir / 'subdir' / '.htaccess').exists()
- assert not (app.outdir / 'subdir' / '.htpasswd').exists()
-
- # html_css_files
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert '<link rel="stylesheet" type="text/css" href="_static/css/style.css" />' in content
- assert ('<link media="print" rel="stylesheet" title="title" type="text/css" '
- 'href="https://example.com/custom.css" />' in content)
-
- # html_js_files
- assert '<script src="_static/js/custom.js"></script>' in content
- assert ('<script async="async" src="https://example.com/script.js">'
- '</script>' in content)
-
-
-@pytest.mark.sphinx('html', testroot='html_assets')
-def test_assets_order(app, monkeypatch):
- monkeypatch.setattr(sphinx.builders.html, '_file_checksum', lambda o, f: '')
-
- app.add_css_file('normal.css')
- app.add_css_file('early.css', priority=100)
- app.add_css_file('late.css', priority=750)
- app.add_css_file('lazy.css', priority=900)
- app.add_js_file('normal.js')
- app.add_js_file('early.js', priority=100)
- app.add_js_file('late.js', priority=750)
- app.add_js_file('lazy.js', priority=900)
-
- app.builder.build_all()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- # css_files
- expected = [
- '_static/early.css',
- '_static/pygments.css',
- '_static/alabaster.css',
- 'https://example.com/custom.css',
- '_static/normal.css',
- '_static/late.css',
- '_static/css/style.css',
- '_static/lazy.css',
- ]
- pattern = '.*'.join(f'href="{re.escape(f)}"' for f in expected)
- assert re.search(pattern, content, re.DOTALL), content
-
- # js_files
- expected = [
- '_static/early.js',
- '_static/doctools.js',
- '_static/sphinx_highlight.js',
- 'https://example.com/script.js',
- '_static/normal.js',
- '_static/late.js',
- '_static/js/custom.js',
- '_static/lazy.js',
- ]
- pattern = '.*'.join(f'src="{re.escape(f)}"' for f in expected)
- assert re.search(pattern, content, re.DOTALL), content
-
-
-@pytest.mark.sphinx('html', testroot='html_file_checksum')
-def test_file_checksum(app):
- app.add_css_file('stylesheet-a.css')
- app.add_css_file('stylesheet-b.css')
- app.add_css_file('https://example.com/custom.css')
- app.add_js_file('script.js')
- app.add_js_file('empty.js')
- app.add_js_file('https://example.com/script.js')
-
- app.builder.build_all()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- # checksum for local files
- assert '<link rel="stylesheet" type="text/css" href="_static/stylesheet-a.css?v=e575b6df" />' in content
- assert '<link rel="stylesheet" type="text/css" href="_static/stylesheet-b.css?v=a2d5cc0f" />' in content
- assert '<script src="_static/script.js?v=48278d48"></script>' in content
-
- # empty files have no checksum
- assert '<script src="_static/empty.js"></script>' in content
-
- # no checksum for hyperlinks
- assert '<link rel="stylesheet" type="text/css" href="https://example.com/custom.css" />' in content
- assert '<script src="https://example.com/script.js"></script>' in content
-
-
-def test_file_checksum_query_string():
- with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
- _file_checksum(Path(), 'with_query_string.css?dead_parrots=1')
-
- with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
- _file_checksum(Path(), 'with_query_string.js?dead_parrots=1')
-
- with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
- _file_checksum(Path.cwd(), '_static/with_query_string.css?dead_parrots=1')
-
- with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
- _file_checksum(Path.cwd(), '_static/with_query_string.js?dead_parrots=1')
-
-
-@pytest.mark.sphinx('html', testroot='html_assets')
-def test_javscript_loading_method(app):
- app.add_js_file('normal.js')
- app.add_js_file('early.js', loading_method='async')
- app.add_js_file('late.js', loading_method='defer')
-
- app.builder.build_all()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- assert '<script src="_static/normal.js"></script>' in content
- assert '<script async="async" src="_static/early.js"></script>' in content
- assert '<script defer="defer" src="_static/late.js"></script>' in content
-
-
-@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_copy_source': False})
-def test_html_copy_source(app):
- app.builder.build_all()
- assert not (app.outdir / '_sources' / 'index.rst.txt').exists()
-
-
-@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': '.txt'})
-def test_html_sourcelink_suffix(app):
- app.builder.build_all()
- assert (app.outdir / '_sources' / 'index.rst.txt').exists()
-
-
-@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': '.rst'})
-def test_html_sourcelink_suffix_same(app):
- app.builder.build_all()
- assert (app.outdir / '_sources' / 'index.rst').exists()
-
-
-@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': ''})
-def test_html_sourcelink_suffix_empty(app):
- app.builder.build_all()
- assert (app.outdir / '_sources' / 'index.rst').exists()
-
-
-@pytest.mark.sphinx('html', testroot='html_entity')
-def test_html_entity(app):
- app.builder.build_all()
- valid_entities = {'amp', 'lt', 'gt', 'quot', 'apos'}
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- for entity in re.findall(r'&([a-z]+);', content, re.M):
- assert entity not in valid_entities
-
-
-@pytest.mark.sphinx('html', testroot='basic')
-def test_html_inventory(app):
- app.builder.build_all()
-
- with app.outdir.joinpath('objects.inv').open('rb') as f:
- invdata = InventoryFile.load(f, 'https://www.google.com', posixpath.join)
-
- assert set(invdata.keys()) == {'std:label', 'std:doc'}
- assert set(invdata['std:label'].keys()) == {'modindex',
- 'py-modindex',
- 'genindex',
- 'search'}
- assert invdata['std:label']['modindex'] == ('Python',
- '',
- 'https://www.google.com/py-modindex.html',
- 'Module Index')
- assert invdata['std:label']['py-modindex'] == ('Python',
- '',
- 'https://www.google.com/py-modindex.html',
- 'Python Module Index')
- assert invdata['std:label']['genindex'] == ('Python',
- '',
- 'https://www.google.com/genindex.html',
- 'Index')
- assert invdata['std:label']['search'] == ('Python',
- '',
- 'https://www.google.com/search.html',
- 'Search Page')
- assert set(invdata['std:doc'].keys()) == {'index'}
- assert invdata['std:doc']['index'] == ('Python',
- '',
- 'https://www.google.com/index.html',
- 'The basic Sphinx documentation for testing')
-
-
-@pytest.mark.sphinx('html', testroot='images', confoverrides={'html_sourcelink_suffix': ''})
-def test_html_anchor_for_figure(app):
- app.builder.build_all()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<figcaption>\n<p><span class="caption-text">The caption of pic</span>'
- '<a class="headerlink" href="#id1" title="Link to this image">¶</a></p>\n</figcaption>'
- in content)
-
-
-@pytest.mark.sphinx('html', testroot='directives-raw')
-def test_html_raw_directive(app, status, warning):
- app.builder.build_all()
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- # standard case
- assert 'standalone raw directive (HTML)' in result
- assert 'standalone raw directive (LaTeX)' not in result
-
- # with substitution
- assert '<p>HTML: abc def ghi</p>' in result
- assert '<p>LaTeX: abc ghi</p>' in result
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [
- (".//link[@href='_static/persistent.css']"
- "[@rel='stylesheet']", '', True),
- (".//link[@href='_static/default.css']"
- "[@rel='stylesheet']"
- "[@title='Default']", '', True),
- (".//link[@href='_static/alternate1.css']"
- "[@rel='alternate stylesheet']"
- "[@title='Alternate']", '', True),
- (".//link[@href='_static/alternate2.css']"
- "[@rel='alternate stylesheet']", '', True),
- (".//link[@href='_static/more_persistent.css']"
- "[@rel='stylesheet']", '', True),
- (".//link[@href='_static/more_default.css']"
- "[@rel='stylesheet']"
- "[@title='Default']", '', True),
- (".//link[@href='_static/more_alternate1.css']"
- "[@rel='alternate stylesheet']"
- "[@title='Alternate']", '', True),
- (".//link[@href='_static/more_alternate2.css']"
- "[@rel='alternate stylesheet']", '', True),
- ],
-}))
-@pytest.mark.sphinx('html', testroot='stylesheets')
-def test_alternate_stylesheets(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='html_style')
-def test_html_style(app, status, warning):
- app.build()
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert '<link rel="stylesheet" type="text/css" href="_static/default.css" />' in result
- assert ('<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />'
- not in result)
-
-
-@pytest.mark.sphinx('html', testroot='images')
-def test_html_remote_images(app, status, warning):
- app.builder.build_all()
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<img alt="https://www.python.org/static/img/python-logo.png" '
- 'src="https://www.python.org/static/img/python-logo.png" />' in result)
- assert not (app.outdir / 'python-logo.png').exists()
-
-
-@pytest.mark.sphinx('html', testroot='image-escape')
-def test_html_encoded_image(app, status, warning):
- app.builder.build_all()
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<img alt="_images/img_%231.png" src="_images/img_%231.png" />' in result)
- assert (app.outdir / '_images/img_#1.png').exists()
-
-
-@pytest.mark.sphinx('html', testroot='remote-logo')
-def test_html_remote_logo(app, status, warning):
- app.builder.build_all()
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<img class="logo" src="https://www.python.org/static/img/python-logo.png" alt="Logo"/>' in result)
- assert ('<link rel="icon" href="https://www.python.org/static/favicon.ico"/>' in result)
- assert not (app.outdir / 'python-logo.png').exists()
-
-
-@pytest.mark.sphinx('html', testroot='local-logo')
-def test_html_local_logo(app, status, warning):
- app.builder.build_all()
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<img class="logo" src="_static/img.png" alt="Logo"/>' in result)
- assert (app.outdir / '_static/img.png').exists()
-
-
-@pytest.mark.sphinx('html', testroot='basic')
-def test_html_sidebar(app, status, warning):
- ctx = {}
-
- # default for alabaster
- app.builder.build_all()
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<div class="sphinxsidebar" role="navigation" '
- 'aria-label="main navigation">' in result)
- assert '<h1 class="logo"><a href="#">Python</a></h1>' in result
- assert '<h3>Navigation</h3>' in result
- assert '<h3>Related Topics</h3>' in result
- assert '<h3 id="searchlabel">Quick search</h3>' in result
-
- app.builder.add_sidebars('index', ctx)
- assert ctx['sidebars'] == ['about.html', 'navigation.html', 'relations.html',
- 'searchbox.html', 'donate.html']
-
- # only relations.html
- app.config.html_sidebars = {'**': ['relations.html']}
- app.builder.build_all()
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<div class="sphinxsidebar" role="navigation" '
- 'aria-label="main navigation">' in result)
- assert '<h1 class="logo"><a href="#">Python</a></h1>' not in result
- assert '<h3>Navigation</h3>' not in result
- assert '<h3>Related Topics</h3>' in result
- assert '<h3 id="searchlabel">Quick search</h3>' not in result
-
- app.builder.add_sidebars('index', ctx)
- assert ctx['sidebars'] == ['relations.html']
-
- # no sidebars
- app.config.html_sidebars = {'**': []}
- app.builder.build_all()
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<div class="sphinxsidebar" role="navigation" '
- 'aria-label="main navigation">' not in result)
- assert '<h1 class="logo"><a href="#">Python</a></h1>' not in result
- assert '<h3>Navigation</h3>' not in result
- assert '<h3>Related Topics</h3>' not in result
- assert '<h3 id="searchlabel">Quick search</h3>' not in result
-
- app.builder.add_sidebars('index', ctx)
- assert ctx['sidebars'] == []
-
-
-@pytest.mark.parametrize(("fname", "expect"), flat_dict({
- 'index.html': [(".//em/a[@href='https://example.com/man.1']", "", True),
- (".//em/a[@href='https://example.com/ls.1']", "", True),
- (".//em/a[@href='https://example.com/sphinx.']", "", True)],
-
-}))
-@pytest.mark.sphinx('html', testroot='manpage_url', confoverrides={
- 'manpages_url': 'https://example.com/{page}.{section}'})
-@pytest.mark.test_params(shared_result='test_build_html_manpage_url')
-def test_html_manpage(app, cached_etree_parse, fname, expect):
- app.build()
- check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
-
-
-@pytest.mark.sphinx('html', testroot='toctree-glob',
- confoverrides={'html_baseurl': 'https://example.com/'})
-def test_html_baseurl(app, status, warning):
- app.build()
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert '<link rel="canonical" href="https://example.com/index.html" />' in result
-
- result = (app.outdir / 'qux' / 'index.html').read_text(encoding='utf8')
- assert '<link rel="canonical" href="https://example.com/qux/index.html" />' in result
-
-
-@pytest.mark.sphinx('html', testroot='toctree-glob',
- confoverrides={'html_baseurl': 'https://example.com/subdir',
- 'html_file_suffix': '.htm'})
-def test_html_baseurl_and_html_file_suffix(app, status, warning):
- app.build()
-
- result = (app.outdir / 'index.htm').read_text(encoding='utf8')
- assert '<link rel="canonical" href="https://example.com/subdir/index.htm" />' in result
-
- result = (app.outdir / 'qux' / 'index.htm').read_text(encoding='utf8')
- assert '<link rel="canonical" href="https://example.com/subdir/qux/index.htm" />' in result
-
-
-@pytest.mark.sphinx('html', testroot='basic')
-def test_default_html_math_renderer(app, status, warning):
- assert app.builder.math_renderer_name == 'mathjax'
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'extensions': ['sphinx.ext.mathjax']})
-def test_html_math_renderer_is_mathjax(app, status, warning):
- assert app.builder.math_renderer_name == 'mathjax'
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'extensions': ['sphinx.ext.imgmath']})
-def test_html_math_renderer_is_imgmath(app, status, warning):
- assert app.builder.math_renderer_name == 'imgmath'
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'extensions': ['sphinxcontrib.jsmath',
- 'sphinx.ext.imgmath']})
-def test_html_math_renderer_is_duplicated(make_app, app_params):
- args, kwargs = app_params
- with pytest.raises(
- ConfigError,
- match='Many math_renderers are registered. But no math_renderer is selected.',
- ):
- make_app(*args, **kwargs)
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'extensions': ['sphinx.ext.imgmath',
- 'sphinx.ext.mathjax']})
-def test_html_math_renderer_is_duplicated2(app, status, warning):
- # case of both mathjax and another math_renderer is loaded
- assert app.builder.math_renderer_name == 'imgmath' # The another one is chosen
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'extensions': ['sphinxcontrib.jsmath',
- 'sphinx.ext.imgmath'],
- 'html_math_renderer': 'imgmath'})
-def test_html_math_renderer_is_chosen(app, status, warning):
- assert app.builder.math_renderer_name == 'imgmath'
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'extensions': ['sphinxcontrib.jsmath',
- 'sphinx.ext.mathjax'],
- 'html_math_renderer': 'imgmath'})
-def test_html_math_renderer_is_mismatched(make_app, app_params):
- args, kwargs = app_params
- with pytest.raises(ConfigError, match="Unknown math_renderer 'imgmath' is given."):
- make_app(*args, **kwargs)
-
-
-@pytest.mark.sphinx('html', testroot='basic')
-def test_html_pygments_style_default(app):
- style = app.builder.highlighter.formatter_args.get('style')
- assert style.__name__ == 'Alabaster'
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'pygments_style': 'sphinx'})
-def test_html_pygments_style_manually(app):
- style = app.builder.highlighter.formatter_args.get('style')
- assert style.__name__ == 'SphinxStyle'
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'html_theme': 'classic'})
-def test_html_pygments_for_classic_theme(app):
- style = app.builder.highlighter.formatter_args.get('style')
- assert style.__name__ == 'SphinxStyle'
-
-
-@pytest.mark.sphinx('html', testroot='basic')
-def test_html_dark_pygments_style_default(app):
- assert app.builder.dark_highlighter is None
-
-
-@pytest.mark.sphinx(testroot='basic', srcdir='validate_html_extra_path')
-def test_validate_html_extra_path(app):
- (app.confdir / '_static').mkdir(parents=True, exist_ok=True)
- app.config.html_extra_path = [
- '/path/to/not_found', # not found
- '_static',
- app.outdir, # outdir
- app.outdir / '_static', # inside outdir
- ]
- validate_html_extra_path(app, app.config)
- assert app.config.html_extra_path == ['_static']
-
-
-@pytest.mark.sphinx(testroot='basic', srcdir='validate_html_static_path')
-def test_validate_html_static_path(app):
- (app.confdir / '_static').mkdir(parents=True, exist_ok=True)
- app.config.html_static_path = [
- '/path/to/not_found', # not found
- '_static',
- app.outdir, # outdir
- app.outdir / '_static', # inside outdir
- ]
- validate_html_static_path(app, app.config)
- assert app.config.html_static_path == ['_static']
-
-
-@pytest.mark.sphinx(testroot='html_scaled_image_link')
-def test_html_scaled_image_link(app):
- app.build()
- context = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- # no scaled parameters
- assert re.search('\n<img alt="_images/img.png" src="_images/img.png" />', context)
-
- # scaled_image_link
- assert re.search('\n<a class="reference internal image-reference" href="_images/img.png">'
- '<img alt="_images/img.png" src="_images/img.png" style="[^"]+" /></a>',
- context)
-
- # no-scaled-link class disables the feature
- assert re.search('\n<img alt="_images/img.png" class="no-scaled-link"'
- ' src="_images/img.png" style="[^"]+" />',
- context)
-
-
-@pytest.mark.sphinx('html', testroot='reST-code-block',
- confoverrides={'html_codeblock_linenos_style': 'table'})
-def test_html_codeblock_linenos_style_table(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- assert ('<div class="linenodiv"><pre><span class="normal">1</span>\n'
- '<span class="normal">2</span>\n'
- '<span class="normal">3</span>\n'
- '<span class="normal">4</span></pre></div>') in content
-
-
-@pytest.mark.sphinx('html', testroot='reST-code-block',
- confoverrides={'html_codeblock_linenos_style': 'inline'})
-def test_html_codeblock_linenos_style_inline(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- assert '<span class="linenos">1</span>' in content
-
-
-@pytest.mark.sphinx('html', testroot='highlight_options')
-def test_highlight_options(app):
- subject = app.builder.highlighter
- with patch.object(subject, 'highlight_block', wraps=subject.highlight_block) as highlight:
- app.build()
-
- call_args = highlight.call_args_list
- assert len(call_args) == 3
- assert call_args[0] == call(ANY, 'default', force=False, linenos=False,
- location=ANY, opts={'default_option': True})
- assert call_args[1] == call(ANY, 'python', force=False, linenos=False,
- location=ANY, opts={'python_option': True})
- assert call_args[2] == call(ANY, 'java', force=False, linenos=False,
- location=ANY, opts={})
-
-
-@pytest.mark.sphinx('html', testroot='highlight_options',
- confoverrides={'highlight_options': {'default_option': True}})
-def test_highlight_options_old(app):
- subject = app.builder.highlighter
- with patch.object(subject, 'highlight_block', wraps=subject.highlight_block) as highlight:
- app.build()
-
- call_args = highlight.call_args_list
- assert len(call_args) == 3
- assert call_args[0] == call(ANY, 'default', force=False, linenos=False,
- location=ANY, opts={'default_option': True})
- assert call_args[1] == call(ANY, 'python', force=False, linenos=False,
- location=ANY, opts={})
- assert call_args[2] == call(ANY, 'java', force=False, linenos=False,
- location=ANY, opts={})
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'html_permalinks': False})
-def test_html_permalink_disable(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- assert '<h1>The basic Sphinx documentation for testing</h1>' in content
-
-
-@pytest.mark.sphinx('html', testroot='basic',
- confoverrides={'html_permalinks_icon': '<span>[PERMALINK]</span>'})
-def test_html_permalink_icon(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- assert ('<h1>The basic Sphinx documentation for testing<a class="headerlink" '
- 'href="#the-basic-sphinx-documentation-for-testing" '
- 'title="Link to this heading"><span>[PERMALINK]</span></a></h1>' in content)
-
-
-@pytest.mark.sphinx('html', testroot='html_signaturereturn_icon')
-def test_html_signaturereturn_icon(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- assert ('<span class="sig-return-icon">&#x2192;</span>' in content)
-
-
-@pytest.mark.sphinx('html', testroot='reST-code-role')
-def test_html_code_role(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
-
- common_content = (
- '<span class="k">def</span> <span class="nf">foo</span>'
- '<span class="p">(</span>'
- '<span class="mi">1</span> '
- '<span class="o">+</span> '
- '<span class="mi">2</span> '
- '<span class="o">+</span> '
- '<span class="kc">None</span> '
- '<span class="o">+</span> '
- '<span class="s2">&quot;abc&quot;</span>'
- '<span class="p">):</span> '
- '<span class="k">pass</span>')
- assert ('<p>Inline <code class="code highlight python docutils literal highlight-python">' +
- common_content + '</code> code block</p>') in content
- assert ('<div class="highlight-python notranslate">' +
- '<div class="highlight"><pre><span></span>' +
- common_content) in content
-
-
-@pytest.mark.sphinx('html', testroot='root',
- confoverrides={'option_emphasise_placeholders': True})
-def test_option_emphasise_placeholders(app, status, warning):
- app.build()
- content = (app.outdir / 'objects.html').read_text(encoding='utf8')
- assert '<em><span class="pre">TYPE</span></em>' in content
- assert '{TYPE}' not in content
- assert ('<em><span class="pre">WHERE</span></em>'
- '<span class="pre">-</span>'
- '<em><span class="pre">COUNT</span></em>' in content)
- assert '<span class="pre">{{value}}</span>' in content
- assert ('<span class="pre">--plugin.option</span></span>'
- '<a class="headerlink" href="#cmdoption-perl-plugin.option" title="Link to this definition">¶</a></dt>') in content
-
-
-@pytest.mark.sphinx('html', testroot='root')
-def test_option_emphasise_placeholders_default(app, status, warning):
- app.build()
- content = (app.outdir / 'objects.html').read_text(encoding='utf8')
- assert '<span class="pre">={TYPE}</span>' in content
- assert '<span class="pre">={WHERE}-{COUNT}</span></span>' in content
- assert '<span class="pre">{client_name}</span>' in content
- assert ('<span class="pre">--plugin.option</span></span>'
- '<span class="sig-prename descclassname"></span>'
- '<a class="headerlink" href="#cmdoption-perl-plugin.option" title="Link to this definition">¶</a></dt>') in content
-
-
-@pytest.mark.sphinx('html', testroot='root')
-def test_option_reference_with_value(app, status, warning):
- app.build()
- content = (app.outdir / 'objects.html').read_text(encoding='utf-8')
- assert ('<span class="pre">-mapi</span></span><span class="sig-prename descclassname">'
- '</span><a class="headerlink" href="#cmdoption-git-commit-mapi"') in content
- assert 'first option <a class="reference internal" href="#cmdoption-git-commit-mapi">' in content
- assert ('<a class="reference internal" href="#cmdoption-git-commit-mapi">'
- '<code class="xref std std-option docutils literal notranslate"><span class="pre">-mapi[=xxx]</span></code></a>') in content
- assert '<span class="pre">-mapi</span> <span class="pre">with_space</span>' in content
-
-
-@pytest.mark.sphinx('html', testroot='theming')
-def test_theme_options(app, status, warning):
- app.build()
-
- result = (app.outdir / '_static' / 'documentation_options.js').read_text(encoding='utf8')
- assert 'NAVIGATION_WITH_KEYS: false' in result
- assert 'ENABLE_SEARCH_SHORTCUTS: true' in result
-
-
-@pytest.mark.sphinx('html', testroot='theming',
- confoverrides={'html_theme_options.navigation_with_keys': True,
- 'html_theme_options.enable_search_shortcuts': False})
-def test_theme_options_with_override(app, status, warning):
- app.build()
-
- result = (app.outdir / '_static' / 'documentation_options.js').read_text(encoding='utf8')
- assert 'NAVIGATION_WITH_KEYS: true' in result
- assert 'ENABLE_SEARCH_SHORTCUTS: false' in result
-
-
-@pytest.mark.sphinx('html', testroot='build-html-theme-having-multiple-stylesheets')
-def test_theme_having_multiple_stylesheets(app):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf-8')
-
- assert '<link rel="stylesheet" type="text/css" href="_static/mytheme.css" />' in content
- assert '<link rel="stylesheet" type="text/css" href="_static/extra.css" />' in content
-
-
-@pytest.mark.sphinx('html', testroot='images')
-def test_copy_images(app, status, warning):
- app.build()
-
- images_dir = Path(app.outdir) / '_images'
- images = {image.name for image in images_dir.rglob('*')}
- assert images == {
- 'img.png',
- 'rimg.png',
- 'rimg1.png',
- 'svgimg.svg',
- 'testimäge.png',
- }
diff --git a/tests/test_builders/__init__.py b/tests/test_builders/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_builders/__init__.py
diff --git a/tests/test_builders/conftest.py b/tests/test_builders/conftest.py
new file mode 100644
index 0000000..1203d5d
--- /dev/null
+++ b/tests/test_builders/conftest.py
@@ -0,0 +1,28 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+import pytest
+
+from sphinx.testing.util import etree_parse
+
+if TYPE_CHECKING:
+ from collections.abc import Callable, Iterator
+ from pathlib import Path
+ from xml.etree.ElementTree import ElementTree
+
+_etree_cache: dict[Path, ElementTree] = {}
+
+
+def _parse(path: Path) -> ElementTree:
+ if path in _etree_cache:
+ return _etree_cache[path]
+
+ _etree_cache[path] = tree = etree_parse(path)
+ return tree
+
+
+@pytest.fixture(scope='package')
+def cached_etree_parse() -> Iterator[Callable[[Path], ElementTree]]:
+ yield _parse
+ _etree_cache.clear()
diff --git a/tests/test_build.py b/tests/test_builders/test_build.py
index ed4bc43..3f6d12c 100644
--- a/tests/test_build.py
+++ b/tests/test_builders/test_build.py
@@ -2,13 +2,17 @@
import os
import shutil
+from contextlib import contextmanager
from unittest import mock
import pytest
from docutils import nodes
+from sphinx.cmd.build import build_main
from sphinx.errors import SphinxError
+from tests.utils import TESTS_ROOT
+
def request_session_head(url, **kwargs):
response = mock.Mock()
@@ -60,12 +64,12 @@ def test_root_doc_not_found(tmp_path, make_app):
app = make_app('dummy', srcdir=tmp_path)
with pytest.raises(SphinxError):
- app.builder.build_all() # no index.rst
+ app.build(force_all=True) # no index.rst
@pytest.mark.sphinx(buildername='text', testroot='circular')
def test_circular_toctree(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
warnings = warning.getvalue()
assert (
'circular toctree references detected, ignoring: '
@@ -77,7 +81,7 @@ def test_circular_toctree(app, status, warning):
@pytest.mark.sphinx(buildername='text', testroot='numbered-circular')
def test_numbered_circular_toctree(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
warnings = warning.getvalue()
assert (
'circular toctree references detected, ignoring: '
@@ -89,7 +93,7 @@ def test_numbered_circular_toctree(app, status, warning):
@pytest.mark.sphinx(buildername='dummy', testroot='images')
def test_image_glob(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
# index.rst
doctree = app.env.get_doctree('index')
@@ -133,3 +137,29 @@ def test_image_glob(app, status, warning):
assert doctree[0][3][0]['candidates'] == {'application/pdf': 'subdir/svgimg.pdf',
'image/svg+xml': 'subdir/svgimg.svg'}
assert doctree[0][3][0]['uri'] == 'subdir/svgimg.*'
+
+
+@contextmanager
+def force_colors():
+ forcecolor = os.environ.get('FORCE_COLOR', None)
+
+ try:
+ os.environ['FORCE_COLOR'] = '1'
+ yield
+ finally:
+ if forcecolor is None:
+ os.environ.pop('FORCE_COLOR', None)
+ else:
+ os.environ['FORCE_COLOR'] = forcecolor
+
+
+def test_log_no_ansi_colors(tmp_path):
+ with force_colors():
+ wfile = tmp_path / 'warnings.txt'
+ srcdir = TESTS_ROOT / 'roots' / 'test-nitpicky-warnings'
+ argv = list(map(str, ['-b', 'html', srcdir, tmp_path, '-n', '-w', wfile]))
+ retcode = build_main(argv)
+ assert retcode == 0
+
+ content = wfile.read_text(encoding='utf8')
+ assert '\x1b[91m' not in content
diff --git a/tests/test_build_changes.py b/tests/test_builders/test_build_changes.py
index b340c8d..b537b87 100644
--- a/tests/test_build_changes.py
+++ b/tests/test_builders/test_build_changes.py
@@ -9,7 +9,7 @@ def test_build(app):
# TODO: Use better checking of html content
htmltext = (app.outdir / 'changes.html').read_text(encoding='utf8')
- assert 'New in version 0.6: Some funny stuff.' in htmltext
+ assert 'Added in version 0.6: Some funny stuff.' in htmltext
assert 'Changed in version 0.6: Even more funny stuff.' in htmltext
assert 'Deprecated since version 0.6: Boring stuff.' in htmltext
diff --git a/tests/test_build_dirhtml.py b/tests/test_builders/test_build_dirhtml.py
index dc5ab86..dc5ab86 100644
--- a/tests/test_build_dirhtml.py
+++ b/tests/test_builders/test_build_dirhtml.py
diff --git a/tests/test_build_epub.py b/tests/test_builders/test_build_epub.py
index 7f5b815..6829f22 100644
--- a/tests/test_build_epub.py
+++ b/tests/test_builders/test_build_epub.py
@@ -22,6 +22,7 @@ def runnable(command):
class EPUBElementTree:
"""Test helper for content.opf and toc.ncx"""
+
namespaces = {
'idpf': 'http://www.idpf.org/2007/opf',
'dc': 'http://purl.org/dc/elements/1.1/',
@@ -60,7 +61,7 @@ class EPUBElementTree:
@pytest.mark.sphinx('epub', testroot='basic')
def test_build_epub(app):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'mimetype').read_text(encoding='utf8') == 'application/epub+zip'
assert (app.outdir / 'META-INF' / 'container.xml').exists()
@@ -277,7 +278,7 @@ def test_escaped_toc(app):
@pytest.mark.sphinx('epub', testroot='basic')
def test_epub_writing_mode(app):
# horizontal (default)
- app.builder.build_all()
+ app.build(force_all=True)
# horizontal / page-progression-direction
opf = EPUBElementTree.fromstring((app.outdir / 'content.opf').read_text(encoding='utf8'))
@@ -323,7 +324,7 @@ def test_epub_anchor_id(app):
@pytest.mark.sphinx('epub', testroot='html_assets')
def test_epub_assets(app):
- app.builder.build_all()
+ app.build(force_all=True)
# epub_sytlesheets (same as html_css_files)
content = (app.outdir / 'index.xhtml').read_text(encoding='utf8')
@@ -336,7 +337,7 @@ def test_epub_assets(app):
@pytest.mark.sphinx('epub', testroot='html_assets',
confoverrides={'epub_css_files': ['css/epub.css']})
def test_epub_css_files(app):
- app.builder.build_all()
+ app.build(force_all=True)
# epub_css_files
content = (app.outdir / 'index.xhtml').read_text(encoding='utf8')
@@ -361,13 +362,13 @@ def test_html_download_role(app, status, warning):
'<span class="pre">not_found.dat</span></code></p></li>' in content)
assert ('<li><p><code class="xref download docutils literal notranslate">'
'<span class="pre">Sphinx</span> <span class="pre">logo</span></code>'
- '<span class="link-target"> [http://www.sphinx-doc.org/en/master'
- '/_static/sphinxheader.png]</span></p></li>' in content)
+ '<span class="link-target"> [https://www.sphinx-doc.org/en/master'
+ '/_static/sphinx-logo.svg]</span></p></li>' in content)
@pytest.mark.sphinx('epub', testroot='toctree-duplicated')
def test_duplicated_toctree_entry(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert 'WARNING: duplicated ToC entry found: foo.xhtml' in warning.getvalue()
@@ -377,16 +378,21 @@ def test_duplicated_toctree_entry(app, status, warning):
def test_run_epubcheck(app):
app.build()
+ if not runnable(['java', '-version']):
+ pytest.skip("Unable to run Java; skipping test")
+
epubcheck = os.environ.get('EPUBCHECK_PATH', '/usr/share/java/epubcheck.jar')
- if runnable(['java', '-version']) and os.path.exists(epubcheck):
- try:
- subprocess.run(['java', '-jar', epubcheck, app.outdir / 'SphinxTests.epub'],
- capture_output=True, check=True)
- except CalledProcessError as exc:
- print(exc.stdout.decode('utf-8'))
- print(exc.stderr.decode('utf-8'))
- msg = f'epubcheck exited with return code {exc.returncode}'
- raise AssertionError(msg) from exc
+ if not os.path.exists(epubcheck):
+ pytest.skip("Could not find epubcheck; skipping test")
+
+ try:
+ subprocess.run(['java', '-jar', epubcheck, app.outdir / 'SphinxTests.epub'],
+ capture_output=True, check=True)
+ except CalledProcessError as exc:
+ print(exc.stdout.decode('utf-8'))
+ print(exc.stderr.decode('utf-8'))
+ msg = f'epubcheck exited with return code {exc.returncode}'
+ raise AssertionError(msg) from exc
def test_xml_name_pattern_check():
diff --git a/tests/test_build_gettext.py b/tests/test_builders/test_build_gettext.py
index 6d9154e..ddc6d30 100644
--- a/tests/test_build_gettext.py
+++ b/tests/test_builders/test_build_gettext.py
@@ -47,7 +47,7 @@ def test_Catalog_duplicated_message():
@pytest.mark.sphinx('gettext', srcdir='root-gettext')
def test_build_gettext(app):
# Generic build; should fail only when the builder is horribly broken.
- app.builder.build_all()
+ app.build(force_all=True)
# Do messages end up in the correct location?
# top-level documents end up in a message catalog
@@ -62,7 +62,7 @@ def test_build_gettext(app):
@pytest.mark.sphinx('gettext', srcdir='root-gettext')
def test_msgfmt(app):
- app.builder.build_all()
+ app.build(force_all=True)
(app.outdir / 'en' / 'LC_MESSAGES').mkdir(parents=True, exist_ok=True)
with chdir(app.outdir):
@@ -102,7 +102,7 @@ def test_msgfmt(app):
confoverrides={'gettext_compact': False})
def test_gettext_index_entries(app):
# regression test for #976
- app.builder.build(['index_entries'])
+ app.build(filenames=[app.srcdir / 'index_entries.txt'])
pot = (app.outdir / 'index_entries.pot').read_text(encoding='utf8')
msg_ids = list(filter(None, map(msgid_getter, pot.splitlines())))
@@ -131,7 +131,7 @@ def test_gettext_index_entries(app):
def test_gettext_disable_index_entries(app):
# regression test for #976
app.env._pickled_doctree_cache.clear() # clear cache
- app.builder.build(['index_entries'])
+ app.build(filenames=[app.srcdir / 'index_entries.txt'])
pot = (app.outdir / 'index_entries.pot').read_text(encoding='utf8')
msg_ids = list(filter(None, map(msgid_getter, pot.splitlines())))
@@ -147,7 +147,7 @@ def test_gettext_disable_index_entries(app):
@pytest.mark.sphinx('gettext', testroot='intl', srcdir='gettext')
def test_gettext_template(app):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'sphinx.pot').is_file()
@@ -158,7 +158,7 @@ def test_gettext_template(app):
@pytest.mark.sphinx('gettext', testroot='gettext-template')
def test_gettext_template_msgid_order_in_sphinxpot(app):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'sphinx.pot').is_file()
result = (app.outdir / 'sphinx.pot').read_text(encoding='utf8')
@@ -175,7 +175,7 @@ def test_gettext_template_msgid_order_in_sphinxpot(app):
'gettext', srcdir='root-gettext',
confoverrides={'gettext_compact': 'documentation'})
def test_build_single_pot(app):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'documentation.pot').is_file()
@@ -196,7 +196,7 @@ def test_build_single_pot(app):
confoverrides={'gettext_compact': False,
'gettext_additional_targets': ['image']})
def test_gettext_prolog_epilog_substitution(app):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'prolog_epilog_substitution.pot').is_file()
pot = (app.outdir / 'prolog_epilog_substitution.pot').read_text(encoding='utf8')
@@ -223,7 +223,7 @@ def test_gettext_prolog_epilog_substitution(app):
'gettext_additional_targets': ['image']})
def test_gettext_prolog_epilog_substitution_excluded(app):
# regression test for #9428
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'prolog_epilog_substitution_excluded.pot').is_file()
pot = (app.outdir / 'prolog_epilog_substitution_excluded.pot').read_text(encoding='utf8')
diff --git a/tests/test_builders/test_build_html.py b/tests/test_builders/test_build_html.py
new file mode 100644
index 0000000..1fa3ba4
--- /dev/null
+++ b/tests/test_builders/test_build_html.py
@@ -0,0 +1,378 @@
+"""Test the HTML builder and check output against XPath."""
+
+import os
+import posixpath
+import re
+
+import pytest
+
+from sphinx.builders.html import validate_html_extra_path, validate_html_static_path
+from sphinx.deprecation import RemovedInSphinx80Warning
+from sphinx.errors import ConfigError
+from sphinx.util.console import strip_colors
+from sphinx.util.inventory import InventoryFile
+
+from tests.test_builders.xpath_data import FIGURE_CAPTION
+from tests.test_builders.xpath_util import check_xpath
+
+
+def test_html4_error(make_app, tmp_path):
+ (tmp_path / 'conf.py').write_text('', encoding='utf-8')
+ with pytest.raises(
+ ConfigError,
+ match='HTML 4 is no longer supported by Sphinx',
+ ):
+ make_app(
+ buildername='html',
+ srcdir=tmp_path,
+ confoverrides={'html4_writer': True},
+ )
+
+
+@pytest.mark.parametrize(("fname", "path", "check"), [
+ ('index.html', ".//div[@class='citation']/span", r'Ref1'),
+ ('index.html', ".//div[@class='citation']/span", r'Ref_1'),
+
+ ('footnote.html', ".//a[@class='footnote-reference brackets'][@href='#id9'][@id='id1']", r"1"),
+ ('footnote.html', ".//a[@class='footnote-reference brackets'][@href='#id10'][@id='id2']", r"2"),
+ ('footnote.html', ".//a[@class='footnote-reference brackets'][@href='#foo'][@id='id3']", r"3"),
+ ('footnote.html', ".//a[@class='reference internal'][@href='#bar'][@id='id4']/span", r"\[bar\]"),
+ ('footnote.html', ".//a[@class='reference internal'][@href='#baz-qux'][@id='id5']/span", r"\[baz_qux\]"),
+ ('footnote.html', ".//a[@class='footnote-reference brackets'][@href='#id11'][@id='id6']", r"4"),
+ ('footnote.html', ".//a[@class='footnote-reference brackets'][@href='#id12'][@id='id7']", r"5"),
+ ('footnote.html', ".//aside[@class='footnote brackets']/span/a[@href='#id1']", r"1"),
+ ('footnote.html', ".//aside[@class='footnote brackets']/span/a[@href='#id2']", r"2"),
+ ('footnote.html', ".//aside[@class='footnote brackets']/span/a[@href='#id3']", r"3"),
+ ('footnote.html', ".//div[@class='citation']/span/a[@href='#id4']", r"bar"),
+ ('footnote.html', ".//div[@class='citation']/span/a[@href='#id5']", r"baz_qux"),
+ ('footnote.html', ".//aside[@class='footnote brackets']/span/a[@href='#id6']", r"4"),
+ ('footnote.html', ".//aside[@class='footnote brackets']/span/a[@href='#id7']", r"5"),
+ ('footnote.html', ".//aside[@class='footnote brackets']/span/a[@href='#id8']", r"6"),
+])
+@pytest.mark.sphinx('html')
+@pytest.mark.test_params(shared_result='test_build_html_output_docutils18')
+def test_docutils_output(app, cached_etree_parse, fname, path, check):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check)
+
+
+@pytest.mark.sphinx('html', parallel=2)
+def test_html_parallel(app):
+ app.build()
+
+
+@pytest.mark.sphinx('html', testroot='build-html-translator')
+def test_html_translator(app):
+ app.build()
+ assert app.builder.docwriter.visitor.depart_with_node == 10
+
+
+@pytest.mark.parametrize("expect", [
+ (FIGURE_CAPTION + "//span[@class='caption-number']", "Fig. 1", True),
+ (FIGURE_CAPTION + "//span[@class='caption-number']", "Fig. 2", True),
+ (FIGURE_CAPTION + "//span[@class='caption-number']", "Fig. 3", True),
+ (".//div//span[@class='caption-number']", "No.1 ", True),
+ (".//div//span[@class='caption-number']", "No.2 ", True),
+ (".//li/p/a/span", 'Fig. 1', True),
+ (".//li/p/a/span", 'Fig. 2', True),
+ (".//li/p/a/span", 'Fig. 3', True),
+ (".//li/p/a/span", 'No.1', True),
+ (".//li/p/a/span", 'No.2', True),
+])
+@pytest.mark.sphinx('html', testroot='add_enumerable_node',
+ srcdir='test_enumerable_node')
+def test_enumerable_node(app, cached_etree_parse, expect):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / 'index.html'), 'index.html', *expect)
+
+
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_copy_source': False})
+def test_html_copy_source(app):
+ app.build(force_all=True)
+ assert not (app.outdir / '_sources' / 'index.rst.txt').exists()
+
+
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': '.txt'})
+def test_html_sourcelink_suffix(app):
+ app.build(force_all=True)
+ assert (app.outdir / '_sources' / 'index.rst.txt').exists()
+
+
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': '.rst'})
+def test_html_sourcelink_suffix_same(app):
+ app.build(force_all=True)
+ assert (app.outdir / '_sources' / 'index.rst').exists()
+
+
+@pytest.mark.sphinx('html', testroot='basic', confoverrides={'html_sourcelink_suffix': ''})
+def test_html_sourcelink_suffix_empty(app):
+ app.build(force_all=True)
+ assert (app.outdir / '_sources' / 'index.rst').exists()
+
+
+@pytest.mark.sphinx('html', testroot='html_entity')
+def test_html_entity(app):
+ app.build(force_all=True)
+ valid_entities = {'amp', 'lt', 'gt', 'quot', 'apos'}
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ for entity in re.findall(r'&([a-z]+);', content, re.MULTILINE):
+ assert entity not in valid_entities
+
+
+@pytest.mark.sphinx('html', testroot='basic')
+def test_html_inventory(app):
+ app.build(force_all=True)
+
+ with app.outdir.joinpath('objects.inv').open('rb') as f:
+ invdata = InventoryFile.load(f, 'https://www.google.com', posixpath.join)
+
+ assert set(invdata.keys()) == {'std:label', 'std:doc'}
+ assert set(invdata['std:label'].keys()) == {'modindex',
+ 'py-modindex',
+ 'genindex',
+ 'search'}
+ assert invdata['std:label']['modindex'] == ('Python',
+ '',
+ 'https://www.google.com/py-modindex.html',
+ 'Module Index')
+ assert invdata['std:label']['py-modindex'] == ('Python',
+ '',
+ 'https://www.google.com/py-modindex.html',
+ 'Python Module Index')
+ assert invdata['std:label']['genindex'] == ('Python',
+ '',
+ 'https://www.google.com/genindex.html',
+ 'Index')
+ assert invdata['std:label']['search'] == ('Python',
+ '',
+ 'https://www.google.com/search.html',
+ 'Search Page')
+ assert set(invdata['std:doc'].keys()) == {'index'}
+ assert invdata['std:doc']['index'] == ('Python',
+ '',
+ 'https://www.google.com/index.html',
+ 'The basic Sphinx documentation for testing')
+
+
+@pytest.mark.sphinx('html', testroot='images', confoverrides={'html_sourcelink_suffix': ''})
+def test_html_anchor_for_figure(app):
+ app.build(force_all=True)
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<figcaption>\n<p><span class="caption-text">The caption of pic</span>'
+ '<a class="headerlink" href="#id1" title="Link to this image">¶</a></p>\n</figcaption>'
+ in content)
+
+
+@pytest.mark.sphinx('html', testroot='directives-raw')
+def test_html_raw_directive(app, status, warning):
+ app.build(force_all=True)
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ # standard case
+ assert 'standalone raw directive (HTML)' in result
+ assert 'standalone raw directive (LaTeX)' not in result
+
+ # with substitution
+ assert '<p>HTML: abc def ghi</p>' in result
+ assert '<p>LaTeX: abc ghi</p>' in result
+
+
+@pytest.mark.parametrize("expect", [
+ (".//link[@href='_static/persistent.css']"
+ "[@rel='stylesheet']", '', True),
+ (".//link[@href='_static/default.css']"
+ "[@rel='stylesheet']"
+ "[@title='Default']", '', True),
+ (".//link[@href='_static/alternate1.css']"
+ "[@rel='alternate stylesheet']"
+ "[@title='Alternate']", '', True),
+ (".//link[@href='_static/alternate2.css']"
+ "[@rel='alternate stylesheet']", '', True),
+ (".//link[@href='_static/more_persistent.css']"
+ "[@rel='stylesheet']", '', True),
+ (".//link[@href='_static/more_default.css']"
+ "[@rel='stylesheet']"
+ "[@title='Default']", '', True),
+ (".//link[@href='_static/more_alternate1.css']"
+ "[@rel='alternate stylesheet']"
+ "[@title='Alternate']", '', True),
+ (".//link[@href='_static/more_alternate2.css']"
+ "[@rel='alternate stylesheet']", '', True),
+])
+@pytest.mark.sphinx('html', testroot='stylesheets')
+def test_alternate_stylesheets(app, cached_etree_parse, expect):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / 'index.html'), 'index.html', *expect)
+
+
+@pytest.mark.sphinx('html', testroot='html_style')
+def test_html_style(app, status, warning):
+ app.build()
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert '<link rel="stylesheet" type="text/css" href="_static/default.css" />' in result
+ assert ('<link rel="stylesheet" type="text/css" href="_static/alabaster.css" />'
+ not in result)
+
+
+@pytest.mark.sphinx('html', testroot='basic')
+def test_html_sidebar(app, status, warning):
+ ctx = {}
+
+ # default for alabaster
+ app.build(force_all=True)
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<div class="sphinxsidebar" role="navigation" '
+ 'aria-label="main navigation">' in result)
+ assert '<h1 class="logo"><a href="#">Python</a></h1>' in result
+ assert '<h3>Navigation</h3>' in result
+ assert '<h3>Related Topics</h3>' in result
+ assert '<h3 id="searchlabel">Quick search</h3>' in result
+
+ app.builder.add_sidebars('index', ctx)
+ assert ctx['sidebars'] == ['about.html', 'navigation.html', 'relations.html',
+ 'searchbox.html', 'donate.html']
+
+ # only relations.html
+ app.config.html_sidebars = {'**': ['relations.html']}
+ app.build(force_all=True)
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<div class="sphinxsidebar" role="navigation" '
+ 'aria-label="main navigation">' in result)
+ assert '<h1 class="logo"><a href="#">Python</a></h1>' not in result
+ assert '<h3>Navigation</h3>' not in result
+ assert '<h3>Related Topics</h3>' in result
+ assert '<h3 id="searchlabel">Quick search</h3>' not in result
+
+ app.builder.add_sidebars('index', ctx)
+ assert ctx['sidebars'] == ['relations.html']
+
+ # no sidebars
+ app.config.html_sidebars = {'**': []}
+ app.build(force_all=True)
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<div class="sphinxsidebar" role="navigation" '
+ 'aria-label="main navigation">' not in result)
+ assert '<h1 class="logo"><a href="#">Python</a></h1>' not in result
+ assert '<h3>Navigation</h3>' not in result
+ assert '<h3>Related Topics</h3>' not in result
+ assert '<h3 id="searchlabel">Quick search</h3>' not in result
+
+ app.builder.add_sidebars('index', ctx)
+ assert ctx['sidebars'] == []
+
+
+@pytest.mark.parametrize(("fname", "expect"), [
+ ('index.html', (".//h1/em/a[@href='https://example.com/cp.1']", '', True)),
+ ('index.html', (".//em/a[@href='https://example.com/man.1']", '', True)),
+ ('index.html', (".//em/a[@href='https://example.com/ls.1']", '', True)),
+ ('index.html', (".//em/a[@href='https://example.com/sphinx.']", '', True)),
+])
+@pytest.mark.sphinx('html', testroot='manpage_url', confoverrides={
+ 'manpages_url': 'https://example.com/{page}.{section}'})
+@pytest.mark.test_params(shared_result='test_build_html_manpage_url')
+def test_html_manpage(app, cached_etree_parse, fname, expect):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, *expect)
+
+
+@pytest.mark.sphinx('html', testroot='toctree-glob',
+ confoverrides={'html_baseurl': 'https://example.com/'})
+def test_html_baseurl(app, status, warning):
+ app.build()
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert '<link rel="canonical" href="https://example.com/index.html" />' in result
+
+ result = (app.outdir / 'qux' / 'index.html').read_text(encoding='utf8')
+ assert '<link rel="canonical" href="https://example.com/qux/index.html" />' in result
+
+
+@pytest.mark.sphinx('html', testroot='toctree-glob',
+ confoverrides={'html_baseurl': 'https://example.com/subdir',
+ 'html_file_suffix': '.htm'})
+def test_html_baseurl_and_html_file_suffix(app, status, warning):
+ app.build()
+
+ result = (app.outdir / 'index.htm').read_text(encoding='utf8')
+ assert '<link rel="canonical" href="https://example.com/subdir/index.htm" />' in result
+
+ result = (app.outdir / 'qux' / 'index.htm').read_text(encoding='utf8')
+ assert '<link rel="canonical" href="https://example.com/subdir/qux/index.htm" />' in result
+
+
+@pytest.mark.sphinx(testroot='basic', srcdir='validate_html_extra_path')
+def test_validate_html_extra_path(app):
+ (app.confdir / '_static').mkdir(parents=True, exist_ok=True)
+ app.config.html_extra_path = [
+ '/path/to/not_found', # not found
+ '_static',
+ app.outdir, # outdir
+ app.outdir / '_static', # inside outdir
+ ]
+ with pytest.warns(RemovedInSphinx80Warning, match='Use "pathlib.Path" or "os.fspath" instead'):
+ validate_html_extra_path(app, app.config)
+ assert app.config.html_extra_path == ['_static']
+
+
+@pytest.mark.sphinx(testroot='basic', srcdir='validate_html_static_path')
+def test_validate_html_static_path(app):
+ (app.confdir / '_static').mkdir(parents=True, exist_ok=True)
+ app.config.html_static_path = [
+ '/path/to/not_found', # not found
+ '_static',
+ app.outdir, # outdir
+ app.outdir / '_static', # inside outdir
+ ]
+ with pytest.warns(RemovedInSphinx80Warning, match='Use "pathlib.Path" or "os.fspath" instead'):
+ validate_html_static_path(app, app.config)
+ assert app.config.html_static_path == ['_static']
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'html_permalinks': False})
+def test_html_permalink_disable(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ assert '<h1>The basic Sphinx documentation for testing</h1>' in content
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'html_permalinks_icon': '<span>[PERMALINK]</span>'})
+def test_html_permalink_icon(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ assert ('<h1>The basic Sphinx documentation for testing<a class="headerlink" '
+ 'href="#the-basic-sphinx-documentation-for-testing" '
+ 'title="Link to this heading"><span>[PERMALINK]</span></a></h1>' in content)
+
+
+@pytest.mark.sphinx('html', testroot='html_signaturereturn_icon')
+def test_html_signaturereturn_icon(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ assert ('<span class="sig-return-icon">&#x2192;</span>' in content)
+
+
+@pytest.mark.sphinx('html', testroot='root', srcdir=os.urandom(4).hex())
+def test_html_remove_sources_before_write_gh_issue_10786(app, warning):
+ # see: https://github.com/sphinx-doc/sphinx/issues/10786
+ target = app.srcdir / 'img.png'
+
+ def handler(app):
+ assert target.exists()
+ target.unlink()
+ return []
+
+ app.connect('html-collect-pages', handler)
+ assert target.exists()
+ app.build()
+ assert not target.exists()
+
+ ws = strip_colors(warning.getvalue()).splitlines()
+ assert len(ws) >= 1
+
+ file = os.fsdecode(target)
+ assert f'WARNING: cannot copy image file {file!r}: {file!s} does not exist' == ws[-1]
diff --git a/tests/test_builders/test_build_html_5_output.py b/tests/test_builders/test_build_html_5_output.py
new file mode 100644
index 0000000..ece6f49
--- /dev/null
+++ b/tests/test_builders/test_build_html_5_output.py
@@ -0,0 +1,276 @@
+"""Test the HTML builder and check output against XPath."""
+
+import re
+
+import pytest
+
+from tests.test_builders.xpath_util import check_xpath
+
+
+def tail_check(check):
+ rex = re.compile(check)
+
+ def checker(nodes):
+ for node in nodes:
+ if node.tail and rex.search(node.tail):
+ return True
+ msg = f'{check!r} not found in tail of any nodes {nodes}'
+ raise AssertionError(msg)
+ return checker
+
+
+@pytest.mark.parametrize(("fname", "path", "check"), [
+ ('images.html', ".//img[@src='_images/img.png']", ''),
+ ('images.html', ".//img[@src='_images/img1.png']", ''),
+ ('images.html', ".//img[@src='_images/simg.png']", ''),
+ ('images.html', ".//img[@src='_images/svgimg.svg']", ''),
+ ('images.html', ".//a[@href='_sources/images.txt']", ''),
+
+ ('subdir/images.html', ".//img[@src='../_images/img1.png']", ''),
+ ('subdir/images.html', ".//img[@src='../_images/rimg.png']", ''),
+
+ ('subdir/includes.html', ".//a[@class='reference download internal']", ''),
+ ('subdir/includes.html', ".//img[@src='../_images/img.png']", ''),
+ ('subdir/includes.html', ".//p", 'This is an include file.'),
+ ('subdir/includes.html', ".//pre/span", 'line 1'),
+ ('subdir/includes.html', ".//pre/span", 'line 2'),
+
+ ('includes.html', ".//pre", 'Max Strauß'),
+ ('includes.html', ".//a[@class='reference download internal']", ''),
+ ('includes.html', ".//pre/span", '"quotes"'),
+ ('includes.html', ".//pre/span", "'included'"),
+ ('includes.html', ".//pre/span[@class='s2']", 'üöä'),
+ ('includes.html', ".//div[@class='inc-pyobj1 highlight-text notranslate']//pre",
+ r'^class Foo:\n pass\n\s*$'),
+ ('includes.html', ".//div[@class='inc-pyobj2 highlight-text notranslate']//pre",
+ r'^ def baz\(\):\n pass\n\s*$'),
+ ('includes.html', ".//div[@class='inc-lines highlight-text notranslate']//pre",
+ r'^class Foo:\n pass\nclass Bar:\n$'),
+ ('includes.html', ".//div[@class='inc-startend highlight-text notranslate']//pre",
+ '^foo = "Including Unicode characters: üöä"\\n$'),
+ ('includes.html', ".//div[@class='inc-preappend highlight-text notranslate']//pre",
+ r'(?m)^START CODE$'),
+ ('includes.html', ".//div[@class='inc-pyobj-dedent highlight-python notranslate']//span",
+ r'def'),
+ ('includes.html', ".//div[@class='inc-tab3 highlight-text notranslate']//pre",
+ r'-| |-'),
+ ('includes.html', ".//div[@class='inc-tab8 highlight-python notranslate']//pre/span",
+ r'-| |-'),
+
+ ('autodoc.html', ".//dl[@class='py class']/dt[@id='autodoc_target.Class']", ''),
+ ('autodoc.html', ".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span/span", r'\*\*'),
+ ('autodoc.html', ".//dl[@class='py function']/dt[@id='autodoc_target.function']/em/span/span", r'kwds'),
+ ('autodoc.html', ".//dd/p", r'Return spam\.'),
+
+ ('extapi.html', ".//strong", 'from class: Bar'),
+
+ ('markup.html', ".//title", 'set by title directive'),
+ ('markup.html', ".//p/em", 'Section author: Georg Brandl'),
+ ('markup.html', ".//p/em", 'Module author: Georg Brandl'),
+ # created by the meta directive
+ ('markup.html', ".//meta[@name='author'][@content='Me']", ''),
+ ('markup.html', ".//meta[@name='keywords'][@content='docs, sphinx']", ''),
+ # a label created by ``.. _label:``
+ ('markup.html', ".//div[@id='label']", ''),
+ # code with standard code blocks
+ ('markup.html', ".//pre", '^some code$'),
+ # an option list
+ ('markup.html', ".//span[@class='option']", '--help'),
+ # admonitions
+ ('markup.html', ".//p[@class='admonition-title']", 'My Admonition'),
+ ('markup.html', ".//div[@class='admonition note']/p", 'Note text.'),
+ ('markup.html', ".//div[@class='admonition warning']/p", 'Warning text.'),
+ # inline markup
+ ('markup.html', ".//li/p/strong", r'^command\\n$'),
+ ('markup.html', ".//li/p/strong", r'^program\\n$'),
+ ('markup.html', ".//li/p/em", r'^dfn\\n$'),
+ ('markup.html', ".//li/p/kbd", r'^kbd\\n$'),
+ ('markup.html', ".//li/p/span", 'File \N{TRIANGULAR BULLET} Close'),
+ ('markup.html', ".//li/p/code/span[@class='pre']", '^a/$'),
+ ('markup.html', ".//li/p/code/em/span[@class='pre']", '^varpart$'),
+ ('markup.html', ".//li/p/code/em/span[@class='pre']", '^i$'),
+ ('markup.html', ".//a[@href='https://peps.python.org/pep-0008/']"
+ "[@class='pep reference external']/strong", 'PEP 8'),
+ ('markup.html', ".//a[@href='https://peps.python.org/pep-0008/']"
+ "[@class='pep reference external']/strong",
+ 'Python Enhancement Proposal #8'),
+ ('markup.html', ".//a[@href='https://datatracker.ietf.org/doc/html/rfc1.html']"
+ "[@class='rfc reference external']/strong", 'RFC 1'),
+ ('markup.html', ".//a[@href='https://datatracker.ietf.org/doc/html/rfc1.html']"
+ "[@class='rfc reference external']/strong", 'Request for Comments #1'),
+ ('markup.html', ".//a[@href='objects.html#envvar-HOME']"
+ "[@class='reference internal']/code/span[@class='pre']", 'HOME'),
+ ('markup.html', ".//a[@href='#with']"
+ "[@class='reference internal']/code/span[@class='pre']", '^with$'),
+ ('markup.html', ".//a[@href='#grammar-token-try_stmt']"
+ "[@class='reference internal']/code/span", '^statement$'),
+ ('markup.html', ".//a[@href='#some-label'][@class='reference internal']/span", '^here$'),
+ ('markup.html', ".//a[@href='#some-label'][@class='reference internal']/span", '^there$'),
+ ('markup.html', ".//a[@href='subdir/includes.html']"
+ "[@class='reference internal']/span", 'Including in subdir'),
+ ('markup.html', ".//a[@href='objects.html#cmdoption-python-c']"
+ "[@class='reference internal']/code/span[@class='pre']", '-c'),
+ # abbreviations
+ ('markup.html', ".//abbr[@title='abbreviation']", '^abbr$'),
+ # version stuff
+ ('markup.html', ".//div[@class='versionadded']/p/span", 'Added in version 0.6: '),
+ ('markup.html', ".//div[@class='versionadded']/p/span",
+ tail_check('First paragraph of versionadded')),
+ ('markup.html', ".//div[@class='versionchanged']/p/span",
+ tail_check('First paragraph of versionchanged')),
+ ('markup.html', ".//div[@class='versionchanged']/p",
+ 'Second paragraph of versionchanged'),
+ ('markup.html', ".//div[@class='versionremoved']/p/span", 'Removed in version 0.6: '),
+ # footnote reference
+ ('markup.html', ".//a[@class='footnote-reference brackets']", r'1'),
+ # created by reference lookup
+ ('markup.html', ".//a[@href='index.html#ref1']", ''),
+ # ``seealso`` directive
+ ('markup.html', ".//div/p[@class='admonition-title']", 'See also'),
+ # a ``hlist`` directive
+ ('markup.html', ".//table[@class='hlist']/tr/td/ul/li/p", '^This$'),
+ # a ``centered`` directive
+ ('markup.html', ".//p[@class='centered']/strong", 'LICENSE'),
+ # a glossary
+ ('markup.html', ".//dl/dt[@id='term-boson']", 'boson'),
+ ('markup.html', ".//dl/dt[@id='term-boson']/a", '¶'),
+ # a production list
+ ('markup.html', ".//pre/strong", 'try_stmt'),
+ ('markup.html', ".//pre/a[@href='#grammar-token-try1_stmt']/code/span", 'try1_stmt'),
+ # tests for ``only`` directive
+ ('markup.html', ".//p", 'A global substitution!'),
+ ('markup.html', ".//p", 'In HTML.'),
+ ('markup.html', ".//p", 'In both.'),
+ ('markup.html', ".//p", 'Always present'),
+ # tests for ``any`` role
+ ('markup.html', ".//a[@href='#with']/span", 'headings'),
+ ('markup.html', ".//a[@href='objects.html#func_without_body']/code/span", 'objects'),
+ # tests for numeric labels
+ ('markup.html', ".//a[@href='#id1'][@class='reference internal']/span", 'Testing various markup'),
+ # tests for smartypants
+ ('markup.html', ".//li/p", 'Smart “quotes†in English ‘text’.'),
+ ('markup.html', ".//li/p", 'Smart — long and – short dashes.'),
+ ('markup.html', ".//li/p", 'Ellipsis…'),
+ ('markup.html', ".//li/p/code/span[@class='pre']", 'foo--"bar"...'),
+ ('markup.html', ".//p", 'Этот «абзац» должен иÑпользовать „руÑÑкие“ кавычки.'),
+ ('markup.html', ".//p", 'Il dit : « C’est “super†! »'),
+
+ ('objects.html', ".//dt[@id='mod.Cls.meth1']", ''),
+ ('objects.html', ".//dt[@id='errmod.Error']", ''),
+ ('objects.html', ".//dt/span[@class='sig-name descname']/span[@class='pre']", r'long\(parameter,'),
+ ('objects.html', ".//dt/span[@class='sig-name descname']/span[@class='pre']", r'list\)'),
+ ('objects.html', ".//dt/span[@class='sig-name descname']/span[@class='pre']", 'another'),
+ ('objects.html', ".//dt/span[@class='sig-name descname']/span[@class='pre']", 'one'),
+ ('objects.html', ".//a[@href='#mod.Cls'][@class='reference internal']", ''),
+ ('objects.html', ".//dl[@class='std userdesc']", ''),
+ ('objects.html', ".//dt[@id='userdesc-myobj']", ''),
+ ('objects.html', ".//a[@href='#userdesc-myobj'][@class='reference internal']", ''),
+ # docfields
+ ('objects.html', ".//a[@class='reference internal'][@href='#TimeInt']/em", 'TimeInt'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#Time']", 'Time'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#errmod.Error']/strong", 'Error'),
+ # C references
+ ('objects.html', ".//span[@class='pre']", 'CFunction()'),
+ ('objects.html', ".//a[@href='#c.Sphinx_DoSomething']", ''),
+ ('objects.html', ".//a[@href='#c.SphinxStruct.member']", ''),
+ ('objects.html', ".//a[@href='#c.SPHINX_USE_PYTHON']", ''),
+ ('objects.html', ".//a[@href='#c.SphinxType']", ''),
+ ('objects.html', ".//a[@href='#c.sphinx_global']", ''),
+ # test global TOC created by toctree()
+ ('objects.html', ".//ul[@class='current']/li[@class='toctree-l1 current']/a[@href='#']",
+ 'Testing object descriptions'),
+ ('objects.html', ".//li[@class='toctree-l1']/a[@href='markup.html']",
+ 'Testing various markup'),
+ # test unknown field names
+ ('objects.html', ".//dt[@class='field-odd']", 'Field_name'),
+ ('objects.html', ".//dt[@class='field-even']", 'Field_name all lower'),
+ ('objects.html', ".//dt[@class='field-odd']", 'FIELD_NAME'),
+ ('objects.html', ".//dt[@class='field-even']", 'FIELD_NAME ALL CAPS'),
+ ('objects.html', ".//dt[@class='field-odd']", 'Field_Name'),
+ ('objects.html', ".//dt[@class='field-even']", 'Field_Name All Word Caps'),
+ # ('objects.html', ".//dt[@class='field-odd']", 'Field_name'), (duplicate)
+ ('objects.html', ".//dt[@class='field-even']", 'Field_name First word cap'),
+ ('objects.html', ".//dt[@class='field-odd']", 'FIELd_name'),
+ ('objects.html', ".//dt[@class='field-even']", 'FIELd_name PARTial caps'),
+ # custom sidebar
+ ('objects.html', ".//h4", 'Custom sidebar'),
+ # docfields
+ ('objects.html', ".//dd[@class='field-odd']/p/strong", '^moo$'),
+ ('objects.html', ".//dd[@class='field-odd']/p/strong", tail_check(r'\(Moo\) .* Moo')),
+ ('objects.html', ".//dd[@class='field-odd']/ul/li/p/strong", '^hour$'),
+ ('objects.html', ".//dd[@class='field-odd']/ul/li/p/em", '^DuplicateType$'),
+ ('objects.html', ".//dd[@class='field-odd']/ul/li/p/em", tail_check(r'.* Some parameter')),
+ # others
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-arg-p']/code/span",
+ 'perl'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-arg-p']/code/span",
+ '\\+p'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-ObjC']/code/span",
+ '--ObjC\\+\\+'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-plugin.option']/code/span",
+ '--plugin.option'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-arg-create-auth-token']"
+ "/code/span",
+ 'create-auth-token'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-arg-arg']/code/span",
+ 'arg'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-perl-j']/code/span",
+ '-j'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-hg-arg-commit']/code/span",
+ 'hg'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-hg-arg-commit']/code/span",
+ 'commit'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-git-commit-p']/code/span",
+ 'git'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-git-commit-p']/code/span",
+ 'commit'),
+ ('objects.html', ".//a[@class='reference internal'][@href='#cmdoption-git-commit-p']/code/span",
+ '-p'),
+
+ ('index.html', ".//meta[@name='hc'][@content='hcval']", ''),
+ ('index.html', ".//meta[@name='hc_co'][@content='hcval_co']", ''),
+ ('index.html', ".//li[@class='toctree-l1']/a", 'Testing various markup'),
+ ('index.html', ".//li[@class='toctree-l2']/a", 'Inline markup'),
+ ('index.html', ".//title", 'Sphinx <Tests>'),
+ ('index.html', ".//div[@class='footer']", 'copyright text credits'),
+ ('index.html', ".//a[@href='https://python.org/']"
+ "[@class='reference external']", ''),
+ ('index.html', ".//li/p/a[@href='genindex.html']/span", 'Index'),
+ ('index.html', ".//li/p/a[@href='py-modindex.html']/span", 'Module Index'),
+ # custom sidebar only for contents
+ ('index.html', ".//h4", 'Contents sidebar'),
+ # custom JavaScript
+ ('index.html', ".//script[@src='file://moo.js']", ''),
+ # URL in contents
+ ('index.html', ".//a[@class='reference external'][@href='https://sphinx-doc.org/']",
+ 'https://sphinx-doc.org/'),
+ ('index.html', ".//a[@class='reference external'][@href='https://sphinx-doc.org/latest/']",
+ 'Latest reference'),
+ # Indirect hyperlink targets across files
+ ('index.html', ".//a[@href='markup.html#some-label'][@class='reference internal']/span",
+ '^indirect hyperref$'),
+
+ ('bom.html', ".//title", " File with UTF-8 BOM"),
+
+ ('extensions.html', ".//a[@href='https://python.org/dev/']", "https://python.org/dev/"),
+ ('extensions.html', ".//a[@href='https://bugs.python.org/issue1000']", "issue 1000"),
+ ('extensions.html', ".//a[@href='https://bugs.python.org/issue1042']", "explicit caption"),
+
+ # index entries
+ ('genindex.html', ".//a/strong", "Main"),
+ ('genindex.html', ".//a/strong", "[1]"),
+ ('genindex.html', ".//a/strong", "Other"),
+ ('genindex.html', ".//a", "entry"),
+ ('genindex.html', ".//li/a", "double"),
+
+ ('otherext.html', ".//h1", "Generated section"),
+ ('otherext.html', ".//a[@href='_sources/otherext.foo.txt']", ''),
+
+ ('search.html', ".//meta[@name='robots'][@content='noindex']", ''),
+])
+@pytest.mark.sphinx('html', tags=['testtag'],
+ confoverrides={'html_context.hckey_co': 'hcval_co'})
+@pytest.mark.test_params(shared_result='test_build_html_output')
+def test_html5_output(app, cached_etree_parse, fname, path, check):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check)
diff --git a/tests/test_builders/test_build_html_assets.py b/tests/test_builders/test_build_html_assets.py
new file mode 100644
index 0000000..fc7a987
--- /dev/null
+++ b/tests/test_builders/test_build_html_assets.py
@@ -0,0 +1,152 @@
+"""Test the HTML builder and check output against XPath."""
+
+import re
+from pathlib import Path
+
+import pytest
+
+import sphinx.builders.html
+from sphinx.builders.html._assets import _file_checksum
+from sphinx.errors import ThemeError
+
+
+@pytest.mark.sphinx('html', testroot='html_assets')
+def test_html_assets(app):
+ app.build(force_all=True)
+
+ # exclude_path and its family
+ assert not (app.outdir / 'static' / 'index.html').exists()
+ assert not (app.outdir / 'extra' / 'index.html').exists()
+
+ # html_static_path
+ assert not (app.outdir / '_static' / '.htaccess').exists()
+ assert not (app.outdir / '_static' / '.htpasswd').exists()
+ assert (app.outdir / '_static' / 'API.html').exists()
+ assert (app.outdir / '_static' / 'API.html').read_text(encoding='utf8') == 'Sphinx-1.4.4'
+ assert (app.outdir / '_static' / 'css' / 'style.css').exists()
+ assert (app.outdir / '_static' / 'js' / 'custom.js').exists()
+ assert (app.outdir / '_static' / 'rimg.png').exists()
+ assert not (app.outdir / '_static' / '_build' / 'index.html').exists()
+ assert (app.outdir / '_static' / 'background.png').exists()
+ assert not (app.outdir / '_static' / 'subdir' / '.htaccess').exists()
+ assert not (app.outdir / '_static' / 'subdir' / '.htpasswd').exists()
+
+ # html_extra_path
+ assert (app.outdir / '.htaccess').exists()
+ assert not (app.outdir / '.htpasswd').exists()
+ assert (app.outdir / 'API.html_t').exists()
+ assert (app.outdir / 'css/style.css').exists()
+ assert (app.outdir / 'rimg.png').exists()
+ assert not (app.outdir / '_build' / 'index.html').exists()
+ assert (app.outdir / 'background.png').exists()
+ assert (app.outdir / 'subdir' / '.htaccess').exists()
+ assert not (app.outdir / 'subdir' / '.htpasswd').exists()
+
+ # html_css_files
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert '<link rel="stylesheet" type="text/css" href="_static/css/style.css" />' in content
+ assert ('<link media="print" rel="stylesheet" title="title" type="text/css" '
+ 'href="https://example.com/custom.css" />' in content)
+
+ # html_js_files
+ assert '<script src="_static/js/custom.js"></script>' in content
+ assert ('<script async="async" src="https://example.com/script.js">'
+ '</script>' in content)
+
+
+@pytest.mark.sphinx('html', testroot='html_assets')
+def test_assets_order(app, monkeypatch):
+ monkeypatch.setattr(sphinx.builders.html, '_file_checksum', lambda o, f: '')
+
+ app.add_css_file('normal.css')
+ app.add_css_file('early.css', priority=100)
+ app.add_css_file('late.css', priority=750)
+ app.add_css_file('lazy.css', priority=900)
+ app.add_js_file('normal.js')
+ app.add_js_file('early.js', priority=100)
+ app.add_js_file('late.js', priority=750)
+ app.add_js_file('lazy.js', priority=900)
+
+ app.build(force_all=True)
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ # css_files
+ expected = [
+ '_static/early.css',
+ '_static/pygments.css',
+ '_static/alabaster.css',
+ 'https://example.com/custom.css',
+ '_static/normal.css',
+ '_static/late.css',
+ '_static/css/style.css',
+ '_static/lazy.css',
+ ]
+ pattern = '.*'.join(f'href="{re.escape(f)}"' for f in expected)
+ assert re.search(pattern, content, re.DOTALL), content
+
+ # js_files
+ expected = [
+ '_static/early.js',
+ '_static/doctools.js',
+ '_static/sphinx_highlight.js',
+ 'https://example.com/script.js',
+ '_static/normal.js',
+ '_static/late.js',
+ '_static/js/custom.js',
+ '_static/lazy.js',
+ ]
+ pattern = '.*'.join(f'src="{re.escape(f)}"' for f in expected)
+ assert re.search(pattern, content, re.DOTALL), content
+
+
+@pytest.mark.sphinx('html', testroot='html_file_checksum')
+def test_file_checksum(app):
+ app.add_css_file('stylesheet-a.css')
+ app.add_css_file('stylesheet-b.css')
+ app.add_css_file('https://example.com/custom.css')
+ app.add_js_file('script.js')
+ app.add_js_file('empty.js')
+ app.add_js_file('https://example.com/script.js')
+
+ app.build(force_all=True)
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ # checksum for local files
+ assert '<link rel="stylesheet" type="text/css" href="_static/stylesheet-a.css?v=e575b6df" />' in content
+ assert '<link rel="stylesheet" type="text/css" href="_static/stylesheet-b.css?v=a2d5cc0f" />' in content
+ assert '<script src="_static/script.js?v=48278d48"></script>' in content
+
+ # empty files have no checksum
+ assert '<script src="_static/empty.js"></script>' in content
+
+ # no checksum for hyperlinks
+ assert '<link rel="stylesheet" type="text/css" href="https://example.com/custom.css" />' in content
+ assert '<script src="https://example.com/script.js"></script>' in content
+
+
+def test_file_checksum_query_string():
+ with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
+ _file_checksum(Path(), 'with_query_string.css?dead_parrots=1')
+
+ with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
+ _file_checksum(Path(), 'with_query_string.js?dead_parrots=1')
+
+ with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
+ _file_checksum(Path.cwd(), '_static/with_query_string.css?dead_parrots=1')
+
+ with pytest.raises(ThemeError, match='Local asset file paths must not contain query strings'):
+ _file_checksum(Path.cwd(), '_static/with_query_string.js?dead_parrots=1')
+
+
+@pytest.mark.sphinx('html', testroot='html_assets')
+def test_javscript_loading_method(app):
+ app.add_js_file('normal.js')
+ app.add_js_file('early.js', loading_method='async')
+ app.add_js_file('late.js', loading_method='defer')
+
+ app.build(force_all=True)
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ assert '<script src="_static/normal.js"></script>' in content
+ assert '<script async="async" src="_static/early.js"></script>' in content
+ assert '<script defer="defer" src="_static/late.js"></script>' in content
diff --git a/tests/test_builders/test_build_html_code.py b/tests/test_builders/test_build_html_code.py
new file mode 100644
index 0000000..f07eb97
--- /dev/null
+++ b/tests/test_builders/test_build_html_code.py
@@ -0,0 +1,46 @@
+import pytest
+
+
+@pytest.mark.sphinx('html', testroot='reST-code-block',
+ confoverrides={'html_codeblock_linenos_style': 'table'})
+def test_html_codeblock_linenos_style_table(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ assert ('<div class="linenodiv"><pre><span class="normal">1</span>\n'
+ '<span class="normal">2</span>\n'
+ '<span class="normal">3</span>\n'
+ '<span class="normal">4</span></pre></div>') in content
+
+
+@pytest.mark.sphinx('html', testroot='reST-code-block',
+ confoverrides={'html_codeblock_linenos_style': 'inline'})
+def test_html_codeblock_linenos_style_inline(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ assert '<span class="linenos">1</span>' in content
+
+
+@pytest.mark.sphinx('html', testroot='reST-code-role')
+def test_html_code_role(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ common_content = (
+ '<span class="k">def</span> <span class="nf">foo</span>'
+ '<span class="p">(</span>'
+ '<span class="mi">1</span> '
+ '<span class="o">+</span> '
+ '<span class="mi">2</span> '
+ '<span class="o">+</span> '
+ '<span class="kc">None</span> '
+ '<span class="o">+</span> '
+ '<span class="s2">&quot;abc&quot;</span>'
+ '<span class="p">):</span> '
+ '<span class="k">pass</span>')
+ assert ('<p>Inline <code class="code highlight python docutils literal highlight-python">' +
+ common_content + '</code> code block</p>') in content
+ assert ('<div class="highlight-python notranslate">' +
+ '<div class="highlight"><pre><span></span>' +
+ common_content) in content
diff --git a/tests/test_builders/test_build_html_download.py b/tests/test_builders/test_build_html_download.py
new file mode 100644
index 0000000..1201c66
--- /dev/null
+++ b/tests/test_builders/test_build_html_download.py
@@ -0,0 +1,62 @@
+import hashlib
+import re
+
+import pytest
+
+
+@pytest.mark.sphinx('html')
+@pytest.mark.test_params(shared_result='test_build_html_output')
+def test_html_download(app):
+ app.build()
+
+ # subdir/includes.html
+ result = (app.outdir / 'subdir' / 'includes.html').read_text(encoding='utf8')
+ pattern = ('<a class="reference download internal" download="" '
+ 'href="../(_downloads/.*/img.png)">')
+ matched = re.search(pattern, result)
+ assert matched
+ assert (app.outdir / matched.group(1)).exists()
+ filename = matched.group(1)
+
+ # includes.html
+ result = (app.outdir / 'includes.html').read_text(encoding='utf8')
+ pattern = ('<a class="reference download internal" download="" '
+ 'href="(_downloads/.*/img.png)">')
+ matched = re.search(pattern, result)
+ assert matched
+ assert (app.outdir / matched.group(1)).exists()
+ assert matched.group(1) == filename
+
+ pattern = ('<a class="reference download internal" download="" '
+ 'href="(_downloads/.*/)(file_with_special_%23_chars.xyz)">')
+ matched = re.search(pattern, result)
+ assert matched
+ assert (app.outdir / matched.group(1) / "file_with_special_#_chars.xyz").exists()
+
+
+@pytest.mark.sphinx('html', testroot='roles-download')
+def test_html_download_role(app, status, warning):
+ app.build()
+ digest = hashlib.md5(b'dummy.dat', usedforsecurity=False).hexdigest()
+ assert (app.outdir / '_downloads' / digest / 'dummy.dat').exists()
+ digest_another = hashlib.md5(b'another/dummy.dat', usedforsecurity=False).hexdigest()
+ assert (app.outdir / '_downloads' / digest_another / 'dummy.dat').exists()
+
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert (('<li><p><a class="reference download internal" download="" '
+ 'href="_downloads/%s/dummy.dat">'
+ '<code class="xref download docutils literal notranslate">'
+ '<span class="pre">dummy.dat</span></code></a></p></li>' % digest)
+ in content)
+ assert (('<li><p><a class="reference download internal" download="" '
+ 'href="_downloads/%s/dummy.dat">'
+ '<code class="xref download docutils literal notranslate">'
+ '<span class="pre">another/dummy.dat</span></code></a></p></li>' %
+ digest_another) in content)
+ assert ('<li><p><code class="xref download docutils literal notranslate">'
+ '<span class="pre">not_found.dat</span></code></p></li>' in content)
+ assert ('<li><p><a class="reference download external" download="" '
+ 'href="https://www.sphinx-doc.org/en/master/_static/sphinx-logo.svg">'
+ '<code class="xref download docutils literal notranslate">'
+ '<span class="pre">Sphinx</span> <span class="pre">logo</span>'
+ '</code></a></p></li>' in content)
diff --git a/tests/test_builders/test_build_html_highlight.py b/tests/test_builders/test_build_html_highlight.py
new file mode 100644
index 0000000..aee1ece
--- /dev/null
+++ b/tests/test_builders/test_build_html_highlight.py
@@ -0,0 +1,61 @@
+from unittest.mock import ANY, call, patch
+
+import pytest
+
+
+@pytest.mark.sphinx('html', testroot='basic')
+def test_html_pygments_style_default(app):
+ style = app.builder.highlighter.formatter_args.get('style')
+ assert style.__name__ == 'Alabaster'
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'pygments_style': 'sphinx'})
+def test_html_pygments_style_manually(app):
+ style = app.builder.highlighter.formatter_args.get('style')
+ assert style.__name__ == 'SphinxStyle'
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'html_theme': 'classic'})
+def test_html_pygments_for_classic_theme(app):
+ style = app.builder.highlighter.formatter_args.get('style')
+ assert style.__name__ == 'SphinxStyle'
+
+
+@pytest.mark.sphinx('html', testroot='basic')
+def test_html_dark_pygments_style_default(app):
+ assert app.builder.dark_highlighter is None
+
+
+@pytest.mark.sphinx('html', testroot='highlight_options')
+def test_highlight_options(app):
+ subject = app.builder.highlighter
+ with patch.object(subject, 'highlight_block', wraps=subject.highlight_block) as highlight:
+ app.build()
+
+ call_args = highlight.call_args_list
+ assert len(call_args) == 3
+ assert call_args[0] == call(ANY, 'default', force=False, linenos=False,
+ location=ANY, opts={'default_option': True})
+ assert call_args[1] == call(ANY, 'python', force=False, linenos=False,
+ location=ANY, opts={'python_option': True})
+ assert call_args[2] == call(ANY, 'java', force=False, linenos=False,
+ location=ANY, opts={})
+
+
+@pytest.mark.sphinx('html', testroot='highlight_options',
+ confoverrides={'highlight_options': {'default_option': True}})
+def test_highlight_options_old(app):
+ subject = app.builder.highlighter
+ with patch.object(subject, 'highlight_block', wraps=subject.highlight_block) as highlight:
+ app.build()
+
+ call_args = highlight.call_args_list
+ assert len(call_args) == 3
+ assert call_args[0] == call(ANY, 'default', force=False, linenos=False,
+ location=ANY, opts={'default_option': True})
+ assert call_args[1] == call(ANY, 'python', force=False, linenos=False,
+ location=ANY, opts={})
+ assert call_args[2] == call(ANY, 'java', force=False, linenos=False,
+ location=ANY, opts={})
diff --git a/tests/test_builders/test_build_html_image.py b/tests/test_builders/test_build_html_image.py
new file mode 100644
index 0000000..08ed618
--- /dev/null
+++ b/tests/test_builders/test_build_html_image.py
@@ -0,0 +1,80 @@
+import re
+from pathlib import Path
+
+import docutils
+import pytest
+
+
+@pytest.mark.sphinx('html', testroot='images')
+def test_html_remote_images(app, status, warning):
+ app.build(force_all=True)
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<img alt="http://localhost:7777/sphinx.png" '
+ 'src="http://localhost:7777/sphinx.png" />' in result)
+ assert not (app.outdir / 'sphinx.png').exists()
+
+
+@pytest.mark.sphinx('html', testroot='image-escape')
+def test_html_encoded_image(app, status, warning):
+ app.build(force_all=True)
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<img alt="_images/img_%231.png" src="_images/img_%231.png" />' in result)
+ assert (app.outdir / '_images/img_#1.png').exists()
+
+
+@pytest.mark.sphinx('html', testroot='remote-logo')
+def test_html_remote_logo(app, status, warning):
+ app.build(force_all=True)
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<img class="logo" src="https://www.python.org/static/img/python-logo.png" alt="Logo"/>' in result)
+ assert ('<link rel="icon" href="https://www.python.org/static/favicon.ico"/>' in result)
+ assert not (app.outdir / 'python-logo.png').exists()
+
+
+@pytest.mark.sphinx('html', testroot='local-logo')
+def test_html_local_logo(app, status, warning):
+ app.build(force_all=True)
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<img class="logo" src="_static/img.png" alt="Logo"/>' in result)
+ assert (app.outdir / '_static/img.png').exists()
+
+
+@pytest.mark.sphinx(testroot='html_scaled_image_link')
+def test_html_scaled_image_link(app):
+ app.build()
+ context = (app.outdir / 'index.html').read_text(encoding='utf8')
+
+ # no scaled parameters
+ assert re.search('\n<img alt="_images/img.png" src="_images/img.png" />', context)
+
+ # scaled_image_link
+ # Docutils 0.21 adds a newline before the closing </a> tag
+ closing_space = "\n" if docutils.__version_info__[:2] >= (0, 21) else ""
+ assert re.search('\n<a class="reference internal image-reference" href="_images/img.png">'
+ '<img alt="_images/img.png" src="_images/img.png" style="[^"]+" />'
+ f'{closing_space}</a>',
+ context)
+
+ # no-scaled-link class disables the feature
+ assert re.search('\n<img alt="_images/img.png" class="no-scaled-link"'
+ ' src="_images/img.png" style="[^"]+" />',
+ context)
+
+
+@pytest.mark.sphinx('html', testroot='images')
+def test_copy_images(app, status, warning):
+ app.build()
+
+ images_dir = Path(app.outdir) / '_images'
+ images = {image.name for image in images_dir.rglob('*')}
+ assert images == {
+ 'img.png',
+ 'rimg.png',
+ 'rimg1.png',
+ 'svgimg.svg',
+ 'testimäge.png',
+ }
diff --git a/tests/test_builders/test_build_html_maths.py b/tests/test_builders/test_build_html_maths.py
new file mode 100644
index 0000000..900846b
--- /dev/null
+++ b/tests/test_builders/test_build_html_maths.py
@@ -0,0 +1,58 @@
+import pytest
+
+from sphinx.errors import ConfigError
+
+
+@pytest.mark.sphinx('html', testroot='basic')
+def test_default_html_math_renderer(app, status, warning):
+ assert app.builder.math_renderer_name == 'mathjax'
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'extensions': ['sphinx.ext.mathjax']})
+def test_html_math_renderer_is_mathjax(app, status, warning):
+ assert app.builder.math_renderer_name == 'mathjax'
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'extensions': ['sphinx.ext.imgmath']})
+def test_html_math_renderer_is_imgmath(app, status, warning):
+ assert app.builder.math_renderer_name == 'imgmath'
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'extensions': ['sphinxcontrib.jsmath',
+ 'sphinx.ext.imgmath']})
+def test_html_math_renderer_is_duplicated(make_app, app_params):
+ args, kwargs = app_params
+ with pytest.raises(
+ ConfigError,
+ match='Many math_renderers are registered. But no math_renderer is selected.',
+ ):
+ make_app(*args, **kwargs)
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'extensions': ['sphinx.ext.imgmath',
+ 'sphinx.ext.mathjax']})
+def test_html_math_renderer_is_duplicated2(app, status, warning):
+ # case of both mathjax and another math_renderer is loaded
+ assert app.builder.math_renderer_name == 'imgmath' # The another one is chosen
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'extensions': ['sphinxcontrib.jsmath',
+ 'sphinx.ext.imgmath'],
+ 'html_math_renderer': 'imgmath'})
+def test_html_math_renderer_is_chosen(app, status, warning):
+ assert app.builder.math_renderer_name == 'imgmath'
+
+
+@pytest.mark.sphinx('html', testroot='basic',
+ confoverrides={'extensions': ['sphinxcontrib.jsmath',
+ 'sphinx.ext.mathjax'],
+ 'html_math_renderer': 'imgmath'})
+def test_html_math_renderer_is_mismatched(make_app, app_params):
+ args, kwargs = app_params
+ with pytest.raises(ConfigError, match="Unknown math_renderer 'imgmath' is given."):
+ make_app(*args, **kwargs)
diff --git a/tests/test_builders/test_build_html_numfig.py b/tests/test_builders/test_build_html_numfig.py
new file mode 100644
index 0000000..62e68cb
--- /dev/null
+++ b/tests/test_builders/test_build_html_numfig.py
@@ -0,0 +1,487 @@
+"""Test the HTML builder and check output against XPath."""
+
+import os
+import re
+
+import pytest
+
+from tests.test_builders.xpath_data import FIGURE_CAPTION
+from tests.test_builders.xpath_util import check_xpath
+
+
+@pytest.mark.sphinx('html', testroot='numfig')
+@pytest.mark.test_params(shared_result='test_build_html_numfig')
+def test_numfig_disabled_warn(app, warning):
+ app.build()
+ warnings = warning.getvalue()
+ assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' in warnings
+ assert 'index.rst:56: WARNING: invalid numfig_format: invalid' not in warnings
+ assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' not in warnings
+
+
+@pytest.mark.parametrize(("fname", "path", "check", "be_found"), [
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
+ ('index.html', ".//table/caption/span[@class='caption-number']", None, True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", None, True),
+ ('index.html', ".//li/p/code/span", '^fig1$', True),
+ ('index.html', ".//li/p/code/span", '^Figure%s$', True),
+ ('index.html', ".//li/p/code/span", '^table-1$', True),
+ ('index.html', ".//li/p/code/span", '^Table:%s$', True),
+ ('index.html', ".//li/p/code/span", '^CODE_1$', True),
+ ('index.html', ".//li/p/code/span", '^Code-%s$', True),
+ ('index.html', ".//li/p/a/span", '^Section 1$', True),
+ ('index.html', ".//li/p/a/span", '^Section 2.1$', True),
+ ('index.html', ".//li/p/code/span", '^Fig.{number}$', True),
+ ('index.html', ".//li/p/a/span", '^Sect.1 Foo$', True),
+
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']", None, True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", None, True),
+
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']", None, True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", None, True),
+
+ ('baz.html', FIGURE_CAPTION + "/span[@class='caption-number']", None, True),
+ ('baz.html', ".//table/caption/span[@class='caption-number']", None, True),
+ ('baz.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", None, True),
+])
+@pytest.mark.sphinx('html', testroot='numfig')
+@pytest.mark.test_params(shared_result='test_build_html_numfig')
+def test_numfig_disabled(app, cached_etree_parse, fname, path, check, be_found):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check, be_found)
+
+
+@pytest.mark.sphinx(
+ 'html', testroot='numfig',
+ srcdir='test_numfig_without_numbered_toctree_warn',
+ confoverrides={'numfig': True})
+def test_numfig_without_numbered_toctree_warn(app, warning):
+ app.build()
+ # remove :numbered: option
+ index = (app.srcdir / 'index.rst').read_text(encoding='utf8')
+ index = re.sub(':numbered:.*', '', index)
+ (app.srcdir / 'index.rst').write_text(index, encoding='utf8')
+ app.build()
+
+ warnings = warning.getvalue()
+ assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
+ assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
+ assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
+ assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
+
+
+@pytest.mark.parametrize(("fname", "path", "check", "be_found"), [
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 9 $', True),
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 10 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 9 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 10 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 9 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 10 $', True),
+ ('index.html', ".//li/p/a/span", '^Fig. 9$', True),
+ ('index.html', ".//li/p/a/span", '^Figure6$', True),
+ ('index.html', ".//li/p/a/span", '^Table 9$', True),
+ ('index.html', ".//li/p/a/span", '^Table:6$', True),
+ ('index.html', ".//li/p/a/span", '^Listing 9$', True),
+ ('index.html', ".//li/p/a/span", '^Code-6$', True),
+ ('index.html', ".//li/p/code/span", '^foo$', True),
+ ('index.html', ".//li/p/code/span", '^bar_a$', True),
+ ('index.html', ".//li/p/a/span", '^Fig.9 should be Fig.1$', True),
+ ('index.html', ".//li/p/code/span", '^Sect.{number}$', True),
+
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 3 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 4 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 3 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 4 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 3 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 4 $', True),
+
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 5 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 7 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 8 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 5 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 7 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 8 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 5 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 7 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 8 $', True),
+
+ ('baz.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 6 $', True),
+ ('baz.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 6 $', True),
+ ('baz.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 6 $', True),
+])
+@pytest.mark.sphinx(
+ 'html', testroot='numfig',
+ srcdir='test_numfig_without_numbered_toctree',
+ confoverrides={'numfig': True})
+def test_numfig_without_numbered_toctree(app, cached_etree_parse, fname, path, check, be_found):
+ # remove :numbered: option
+ index = (app.srcdir / 'index.rst').read_text(encoding='utf8')
+ index = re.sub(':numbered:.*', '', index)
+ (app.srcdir / 'index.rst').write_text(index, encoding='utf8')
+
+ if not os.listdir(app.outdir):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check, be_found)
+
+
+@pytest.mark.sphinx('html', testroot='numfig', confoverrides={'numfig': True})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_on')
+def test_numfig_with_numbered_toctree_warn(app, warning):
+ app.build()
+ warnings = warning.getvalue()
+ assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
+ assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
+ assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
+ assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
+
+
+@pytest.mark.parametrize(("fname", "path", "check", "be_found"), [
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2 $', True),
+ ('index.html', ".//li/p/a/span", '^Fig. 1$', True),
+ ('index.html', ".//li/p/a/span", '^Figure2.2$', True),
+ ('index.html', ".//li/p/a/span", '^Table 1$', True),
+ ('index.html', ".//li/p/a/span", '^Table:2.2$', True),
+ ('index.html', ".//li/p/a/span", '^Listing 1$', True),
+ ('index.html', ".//li/p/a/span", '^Code-2.2$', True),
+ ('index.html', ".//li/p/a/span", '^Section.1$', True),
+ ('index.html', ".//li/p/a/span", '^Section.2.1$', True),
+ ('index.html', ".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
+ ('index.html', ".//li/p/a/span", '^Sect.1 Foo$', True),
+
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.2 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.3 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.4 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.1 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.2 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.3 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.4 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.1 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.2 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.3 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.4 $', True),
+
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.3 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.4 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.1 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.3 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.4 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.1 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.3 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.4 $', True),
+
+ ('baz.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.2 $', True),
+ ('baz.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.2 $', True),
+ ('baz.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.2 $', True),
+])
+@pytest.mark.sphinx('html', testroot='numfig', confoverrides={'numfig': True})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_on')
+def test_numfig_with_numbered_toctree(app, cached_etree_parse, fname, path, check, be_found):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check, be_found)
+
+
+@pytest.mark.sphinx('html', testroot='numfig', confoverrides={
+ 'numfig': True,
+ 'numfig_format': {'figure': 'Figure:%s',
+ 'table': 'Tab_%s',
+ 'code-block': 'Code-%s',
+ 'section': 'SECTION-%s'}})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_format_warn')
+def test_numfig_with_prefix_warn(app, warning):
+ app.build()
+ warnings = warning.getvalue()
+ assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
+ assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
+ assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
+ assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
+
+
+@pytest.mark.parametrize(("fname", "path", "check", "be_found"), [
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1 $', True),
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_1 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_2 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-1 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-2 $', True),
+ ('index.html', ".//li/p/a/span", '^Figure:1$', True),
+ ('index.html', ".//li/p/a/span", '^Figure2.2$', True),
+ ('index.html', ".//li/p/a/span", '^Tab_1$', True),
+ ('index.html', ".//li/p/a/span", '^Table:2.2$', True),
+ ('index.html', ".//li/p/a/span", '^Code-1$', True),
+ ('index.html', ".//li/p/a/span", '^Code-2.2$', True),
+ ('index.html', ".//li/p/a/span", '^SECTION-1$', True),
+ ('index.html', ".//li/p/a/span", '^SECTION-2.1$', True),
+ ('index.html', ".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
+ ('index.html', ".//li/p/a/span", '^Sect.1 Foo$', True),
+
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.1 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.2 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.3 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:1.4 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_1.1 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_1.2 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_1.3 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_1.4 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-1.1 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-1.2 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-1.3 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-1.4 $', True),
+
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.1 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.3 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.4 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_2.1 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_2.3 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_2.4 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-2.1 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-2.3 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-2.4 $', True),
+
+ ('baz.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Figure:2.2 $', True),
+ ('baz.html', ".//table/caption/span[@class='caption-number']",
+ '^Tab_2.2 $', True),
+ ('baz.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Code-2.2 $', True),
+])
+@pytest.mark.sphinx('html', testroot='numfig',
+ confoverrides={'numfig': True,
+ 'numfig_format': {'figure': 'Figure:%s',
+ 'table': 'Tab_%s',
+ 'code-block': 'Code-%s',
+ 'section': 'SECTION-%s'}})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_format_warn')
+def test_numfig_with_prefix(app, cached_etree_parse, fname, path, check, be_found):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check, be_found)
+
+
+@pytest.mark.sphinx('html', testroot='numfig',
+ confoverrides={'numfig': True, 'numfig_secnum_depth': 2})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_depth_2')
+def test_numfig_with_secnum_depth_warn(app, warning):
+ app.build()
+ warnings = warning.getvalue()
+ assert 'index.rst:47: WARNING: numfig is disabled. :numref: is ignored.' not in warnings
+ assert 'index.rst:55: WARNING: Failed to create a cross reference. Any number is not assigned: index' in warnings
+ assert 'index.rst:56: WARNING: invalid numfig_format: invalid' in warnings
+ assert 'index.rst:57: WARNING: invalid numfig_format: Fig %s %s' in warnings
+
+
+@pytest.mark.parametrize(("fname", "path", "check", "be_found"), [
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
+ ('index.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1 $', True),
+ ('index.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1 $', True),
+ ('index.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2 $', True),
+ ('index.html', ".//li/p/a/span", '^Fig. 1$', True),
+ ('index.html', ".//li/p/a/span", '^Figure2.1.2$', True),
+ ('index.html', ".//li/p/a/span", '^Table 1$', True),
+ ('index.html', ".//li/p/a/span", '^Table:2.1.2$', True),
+ ('index.html', ".//li/p/a/span", '^Listing 1$', True),
+ ('index.html', ".//li/p/a/span", '^Code-2.1.2$', True),
+ ('index.html', ".//li/p/a/span", '^Section.1$', True),
+ ('index.html', ".//li/p/a/span", '^Section.2.1$', True),
+ ('index.html', ".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
+ ('index.html', ".//li/p/a/span", '^Sect.1 Foo$', True),
+
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1.1 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1.2 $', True),
+ ('foo.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.2.1 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.1 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.1.1 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.1.2 $', True),
+ ('foo.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 1.2.1 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.1 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.1.1 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.1.2 $', True),
+ ('foo.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.2.1 $', True),
+
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1.1 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1.3 $', True),
+ ('bar.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.2.1 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.1.1 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.1.3 $', True),
+ ('bar.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.2.1 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.1.1 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.1.3 $', True),
+ ('bar.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.2.1 $', True),
+
+ ('baz.html', FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1.2 $', True),
+ ('baz.html', ".//table/caption/span[@class='caption-number']",
+ '^Table 2.1.2 $', True),
+ ('baz.html', ".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.1.2 $', True),
+])
+@pytest.mark.sphinx('html', testroot='numfig',
+ confoverrides={'numfig': True,
+ 'numfig_secnum_depth': 2})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_depth_2')
+def test_numfig_with_secnum_depth(app, cached_etree_parse, fname, path, check, be_found):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check, be_found)
+
+
+@pytest.mark.parametrize("expect", [
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 1 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 2 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2 $', True),
+ (".//li/p/a/span", '^Fig. 1$', True),
+ (".//li/p/a/span", '^Figure2.2$', True),
+ (".//li/p/a/span", '^Table 1$', True),
+ (".//li/p/a/span", '^Table:2.2$', True),
+ (".//li/p/a/span", '^Listing 1$', True),
+ (".//li/p/a/span", '^Code-2.2$', True),
+ (".//li/p/a/span", '^Section.1$', True),
+ (".//li/p/a/span", '^Section.2.1$', True),
+ (".//li/p/a/span", '^Fig.1 should be Fig.1$', True),
+ (".//li/p/a/span", '^Sect.1 Foo$', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.1 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.2 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.3 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 1.4 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 1.1 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 1.2 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 1.3 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 1.4 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.1 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.2 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.3 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 1.4 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.1 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.3 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.4 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 2.1 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 2.3 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 2.4 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.1 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.3 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.4 $', True),
+ (FIGURE_CAPTION + "/span[@class='caption-number']", '^Fig. 2.2 $', True),
+ (".//table/caption/span[@class='caption-number']",
+ '^Table 2.2 $', True),
+ (".//div[@class='code-block-caption']/"
+ "span[@class='caption-number']", '^Listing 2.2 $', True),
+])
+@pytest.mark.sphinx('singlehtml', testroot='numfig', confoverrides={'numfig': True})
+@pytest.mark.test_params(shared_result='test_build_html_numfig_on')
+def test_numfig_with_singlehtml(app, cached_etree_parse, expect):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / 'index.html'), 'index.html', *expect)
diff --git a/tests/test_builders/test_build_html_tocdepth.py b/tests/test_builders/test_build_html_tocdepth.py
new file mode 100644
index 0000000..4d99995
--- /dev/null
+++ b/tests/test_builders/test_build_html_tocdepth.py
@@ -0,0 +1,94 @@
+"""Test the HTML builder and check output against XPath."""
+
+import pytest
+
+from tests.test_builders.xpath_util import check_xpath
+
+
+@pytest.mark.parametrize(("fname", "path", "check", "be_found"), [
+ ('index.html', ".//li[@class='toctree-l3']/a", '1.1.1. Foo A1', True),
+ ('index.html', ".//li[@class='toctree-l3']/a", '1.2.1. Foo B1', True),
+ ('index.html', ".//li[@class='toctree-l3']/a", '2.1.1. Bar A1', False),
+ ('index.html', ".//li[@class='toctree-l3']/a", '2.2.1. Bar B1', False),
+
+ ('foo.html', ".//h1", 'Foo', True),
+ ('foo.html', ".//h2", 'Foo A', True),
+ ('foo.html', ".//h3", 'Foo A1', True),
+ ('foo.html', ".//h2", 'Foo B', True),
+ ('foo.html', ".//h3", 'Foo B1', True),
+
+ ('foo.html', ".//h1//span[@class='section-number']", '1. ', True),
+ ('foo.html', ".//h2//span[@class='section-number']", '1.1. ', True),
+ ('foo.html', ".//h3//span[@class='section-number']", '1.1.1. ', True),
+ ('foo.html', ".//h2//span[@class='section-number']", '1.2. ', True),
+ ('foo.html', ".//h3//span[@class='section-number']", '1.2.1. ', True),
+
+ ('foo.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '1.1. Foo A', True),
+ ('foo.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '1.1.1. Foo A1', True),
+ ('foo.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '1.2. Foo B', True),
+ ('foo.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '1.2.1. Foo B1', True),
+
+ ('bar.html', ".//h1", 'Bar', True),
+ ('bar.html', ".//h2", 'Bar A', True),
+ ('bar.html', ".//h2", 'Bar B', True),
+ ('bar.html', ".//h3", 'Bar B1', True),
+ ('bar.html', ".//h1//span[@class='section-number']", '2. ', True),
+ ('bar.html', ".//h2//span[@class='section-number']", '2.1. ', True),
+ ('bar.html', ".//h2//span[@class='section-number']", '2.2. ', True),
+ ('bar.html', ".//h3//span[@class='section-number']", '2.2.1. ', True),
+ ('bar.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '2. Bar', True),
+ ('bar.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '2.1. Bar A', True),
+ ('bar.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '2.2. Bar B', True),
+ ('bar.html', ".//div[@class='sphinxsidebarwrapper']//li/a", '2.2.1. Bar B1', False),
+
+ ('baz.html', ".//h1", 'Baz A', True),
+ ('baz.html', ".//h1//span[@class='section-number']", '2.1.1. ', True),
+])
+@pytest.mark.sphinx('html', testroot='tocdepth')
+@pytest.mark.test_params(shared_result='test_build_html_tocdepth')
+def test_tocdepth(app, cached_etree_parse, fname, path, check, be_found):
+ app.build()
+ # issue #1251
+ check_xpath(cached_etree_parse(app.outdir / fname), fname, path, check, be_found)
+
+
+@pytest.mark.parametrize("expect", [
+ (".//li[@class='toctree-l3']/a", '1.1.1. Foo A1', True),
+ (".//li[@class='toctree-l3']/a", '1.2.1. Foo B1', True),
+ (".//li[@class='toctree-l3']/a", '2.1.1. Bar A1', False),
+ (".//li[@class='toctree-l3']/a", '2.2.1. Bar B1', False),
+
+ # index.rst
+ (".//h1", 'test-tocdepth', True),
+
+ # foo.rst
+ (".//h2", 'Foo', True),
+ (".//h3", 'Foo A', True),
+ (".//h4", 'Foo A1', True),
+ (".//h3", 'Foo B', True),
+ (".//h4", 'Foo B1', True),
+ (".//h2//span[@class='section-number']", '1. ', True),
+ (".//h3//span[@class='section-number']", '1.1. ', True),
+ (".//h4//span[@class='section-number']", '1.1.1. ', True),
+ (".//h3//span[@class='section-number']", '1.2. ', True),
+ (".//h4//span[@class='section-number']", '1.2.1. ', True),
+
+ # bar.rst
+ (".//h2", 'Bar', True),
+ (".//h3", 'Bar A', True),
+ (".//h3", 'Bar B', True),
+ (".//h4", 'Bar B1', True),
+ (".//h2//span[@class='section-number']", '2. ', True),
+ (".//h3//span[@class='section-number']", '2.1. ', True),
+ (".//h3//span[@class='section-number']", '2.2. ', True),
+ (".//h4//span[@class='section-number']", '2.2.1. ', True),
+
+ # baz.rst
+ (".//h4", 'Baz A', True),
+ (".//h4//span[@class='section-number']", '2.1.1. ', True),
+])
+@pytest.mark.sphinx('singlehtml', testroot='tocdepth')
+@pytest.mark.test_params(shared_result='test_build_html_tocdepth')
+def test_tocdepth_singlehtml(app, cached_etree_parse, expect):
+ app.build()
+ check_xpath(cached_etree_parse(app.outdir / 'index.html'), 'index.html', *expect)
diff --git a/tests/test_build_latex.py b/tests/test_builders/test_build_latex.py
index e37a97e..0776c74 100644
--- a/tests/test_build_latex.py
+++ b/tests/test_builders/test_build_latex.py
@@ -1,9 +1,9 @@
"""Test the build process with LaTeX builder with the test root."""
+import http.server
import os
import re
import subprocess
-from itertools import chain, product
from pathlib import Path
from shutil import copyfile
from subprocess import CalledProcessError
@@ -15,36 +15,26 @@ from sphinx.config import Config
from sphinx.errors import SphinxError
from sphinx.ext.intersphinx import load_mappings, normalize_intersphinx_mapping
from sphinx.ext.intersphinx import setup as intersphinx_setup
-from sphinx.testing.util import strip_escseq
from sphinx.util.osutil import ensuredir
from sphinx.writers.latex import LaTeXTranslator
-from .test_build_html import ENV_WARNINGS
+from tests.utils import http_server
try:
from contextlib import chdir
except ImportError:
from sphinx.util.osutil import _chdir as chdir
-LATEX_ENGINES = ['pdflatex', 'lualatex', 'xelatex']
-DOCCLASSES = ['manual', 'howto']
STYLEFILES = ['article.cls', 'fancyhdr.sty', 'titlesec.sty', 'amsmath.sty',
'framed.sty', 'color.sty', 'fancyvrb.sty',
'fncychap.sty', 'geometry.sty', 'kvoptions.sty', 'hyperref.sty',
'booktabs.sty']
-LATEX_WARNINGS = ENV_WARNINGS + """\
-%(root)s/index.rst:\\d+: WARNING: unknown option: '&option'
-%(root)s/index.rst:\\d+: WARNING: citation not found: missing
-%(root)s/index.rst:\\d+: WARNING: a suitable image for latex builder not found: foo.\\*
-%(root)s/index.rst:\\d+: WARNING: Lexing literal_block ".*" as "c" resulted in an error at token: ".*". Retrying in relaxed mode.
-"""
-
# only run latex if all needed packages are there
def kpsetest(*filenames):
try:
- subprocess.run(['kpsewhich'] + list(filenames), capture_output=True, check=True)
+ subprocess.run(['kpsewhich', *list(filenames)], capture_output=True, check=True)
return True
except (OSError, CalledProcessError):
return False # command not found or exit with non-zero
@@ -64,7 +54,7 @@ def compile_latex_document(app, filename='python.tex', docclass='manual'):
args = [app.config.latex_engine,
'--halt-on-error',
'--interaction=nonstopmode',
- '-output-directory=%s' % latex_outputdir,
+ f'-output-directory={latex_outputdir}',
filename]
subprocess.run(args, capture_output=True, check=True)
except OSError as exc: # most likely the latex executable was not found
@@ -92,6 +82,28 @@ def skip_if_stylefiles_notfound(testfunc):
return testfunc
+class RemoteImageHandler(http.server.BaseHTTPRequestHandler):
+ protocol_version = "HTTP/1.1"
+
+ def do_GET(self):
+ content, content_type = None, None
+ if self.path == "/sphinx.png":
+ with open("tests/roots/test-local-logo/images/img.png", "rb") as f:
+ content = f.read()
+ content_type = "image/png"
+
+ if content:
+ self.send_response(200, "OK")
+ self.send_header("Content-Length", str(len(content)))
+ self.send_header("Content-Type", content_type)
+ self.end_headers()
+ self.wfile.write(content)
+ else:
+ self.send_response(404, "Not Found")
+ self.send_header("Content-Length", "0")
+ self.end_headers()
+
+
@skip_if_requested
@skip_if_stylefiles_notfound
@pytest.mark.parametrize(
@@ -99,13 +111,17 @@ def skip_if_stylefiles_notfound(testfunc):
# Only running test with `python_maximum_signature_line_length` not None with last
# LaTeX engine to reduce testing time, as if this configuration does not fail with
# one engine, it's almost impossible it would fail with another.
- chain(
- product(LATEX_ENGINES[:-1], DOCCLASSES, [None]),
- product([LATEX_ENGINES[-1]], DOCCLASSES, [1]),
- ),
+ [
+ ('pdflatex', 'manual', None),
+ ('pdflatex', 'howto', None),
+ ('lualatex', 'manual', None),
+ ('lualatex', 'howto', None),
+ ('xelatex', 'manual', 1),
+ ('xelatex', 'howto', 1),
+ ],
)
@pytest.mark.sphinx('latex', freshenv=True)
-def test_build_latex_doc(app, status, warning, engine, docclass, python_maximum_signature_line_length):
+def test_build_latex_doc(app, engine, docclass, python_maximum_signature_line_length):
app.config.python_maximum_signature_line_length = python_maximum_signature_line_length
app.config.intersphinx_mapping = {
'sphinx': ('https://www.sphinx-doc.org/en/master/', None),
@@ -121,7 +137,8 @@ def test_build_latex_doc(app, status, warning, engine, docclass, python_maximum_
load_mappings(app)
app.builder.init()
LaTeXTranslator.ignore_missing_images = True
- app.builder.build_all()
+ with http_server(RemoteImageHandler):
+ app.build(force_all=True)
# file from latex_additional_files
assert (app.outdir / 'svgimg.svg').is_file()
@@ -131,7 +148,7 @@ def test_build_latex_doc(app, status, warning, engine, docclass, python_maximum_
@pytest.mark.sphinx('latex')
def test_writer(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'sphinxtests.tex').read_text(encoding='utf8')
assert ('\\begin{sphinxfigure-in-table}\n\\centering\n\\capstart\n'
@@ -165,7 +182,7 @@ def test_writer(app, status, warning):
'\\sphinxAtStartPar\n'
'something, something else, something more\n'
'\\begin{description}\n'
- '\\sphinxlineitem{\\sphinxhref{http://www.google.com}{Google}}\n'
+ '\\sphinxlineitem{\\sphinxhref{https://www.google.com}{Google}}\n'
'\\sphinxAtStartPar\n'
'For everything.\n'
'\n'
@@ -173,22 +190,9 @@ def test_writer(app, status, warning):
'\n\n\\end{sphinxseealso}\n\n' in result)
-@pytest.mark.sphinx('latex', testroot='warnings', freshenv=True)
-def test_latex_warnings(app, status, warning):
- app.builder.build_all()
-
- warnings = strip_escseq(re.sub(re.escape(os.sep) + '{1,2}', '/', warning.getvalue()))
- warnings_exp = LATEX_WARNINGS % {
- 'root': re.escape(app.srcdir.as_posix())}
- assert re.match(warnings_exp + '$', warnings), \
- "Warnings don't match:\n" + \
- '--- Expected (regex):\n' + warnings_exp + \
- '--- Got:\n' + warnings
-
-
@pytest.mark.sphinx('latex', testroot='basic')
def test_latex_basic(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -203,7 +207,7 @@ def test_latex_basic(app, status, warning):
'latex_documents': [('index', 'test.tex', 'title', 'author', 'manual')],
})
def test_latex_basic_manual(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{report}' in result
@@ -215,7 +219,7 @@ def test_latex_basic_manual(app, status, warning):
'latex_documents': [('index', 'test.tex', 'title', 'author', 'howto')],
})
def test_latex_basic_howto(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{article}' in result
@@ -228,7 +232,7 @@ def test_latex_basic_howto(app, status, warning):
'latex_documents': [('index', 'test.tex', 'title', 'author', 'manual')],
})
def test_latex_basic_manual_ja(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{ujbook}' in result
@@ -241,7 +245,7 @@ def test_latex_basic_manual_ja(app, status, warning):
'latex_documents': [('index', 'test.tex', 'title', 'author', 'howto')],
})
def test_latex_basic_howto_ja(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{ujreport}' in result
@@ -250,7 +254,7 @@ def test_latex_basic_howto_ja(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-theme')
def test_latex_theme(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{book}' in result
@@ -261,7 +265,7 @@ def test_latex_theme(app, status, warning):
confoverrides={'latex_elements': {'papersize': 'b5paper',
'pointsize': '9pt'}})
def test_latex_theme_papersize(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{book}' in result
@@ -272,7 +276,7 @@ def test_latex_theme_papersize(app, status, warning):
confoverrides={'latex_theme_options': {'papersize': 'b5paper',
'pointsize': '9pt'}})
def test_latex_theme_options(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
assert r'\def\sphinxdocclass{book}' in result
@@ -281,7 +285,7 @@ def test_latex_theme_options(app, status, warning):
@pytest.mark.sphinx('latex', testroot='basic', confoverrides={'language': 'zh'})
def test_latex_additional_settings_for_language_code(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -291,7 +295,7 @@ def test_latex_additional_settings_for_language_code(app, status, warning):
@pytest.mark.sphinx('latex', testroot='basic', confoverrides={'language': 'el'})
def test_latex_additional_settings_for_greek(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -302,7 +306,7 @@ def test_latex_additional_settings_for_greek(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-title')
def test_latex_title_after_admonitions(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -313,7 +317,7 @@ def test_latex_title_after_admonitions(app, status, warning):
@pytest.mark.sphinx('latex', testroot='basic',
confoverrides={'release': '1.0_0'})
def test_latex_release(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -325,7 +329,7 @@ def test_latex_release(app, status, warning):
@pytest.mark.sphinx('latex', testroot='numfig',
confoverrides={'numfig': True})
def test_numref(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -367,7 +371,7 @@ def test_numref(app, status, warning):
'code-block': 'Code-%s',
'section': 'SECTION-%s'}})
def test_numref_with_prefix1(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -415,7 +419,7 @@ def test_numref_with_prefix1(app, status, warning):
'code-block': 'Code-%s | ',
'section': 'SECTION_%s_'}})
def test_numref_with_prefix2(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -491,7 +495,7 @@ def test_numref_with_language_ja(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-numfig')
def test_latex_obey_numfig_is_false(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'SphinxManual.tex').read_text(encoding='utf8')
assert '\\usepackage{sphinx}' in result
@@ -504,7 +508,7 @@ def test_latex_obey_numfig_is_false(app, status, warning):
'latex', testroot='latex-numfig',
confoverrides={'numfig': True, 'numfig_secnum_depth': 0})
def test_latex_obey_numfig_secnum_depth_is_zero(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'SphinxManual.tex').read_text(encoding='utf8')
assert '\\usepackage[,nonumfigreset,mathnumfig]{sphinx}' in result
@@ -517,7 +521,7 @@ def test_latex_obey_numfig_secnum_depth_is_zero(app, status, warning):
'latex', testroot='latex-numfig',
confoverrides={'numfig': True, 'numfig_secnum_depth': 2})
def test_latex_obey_numfig_secnum_depth_is_two(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'SphinxManual.tex').read_text(encoding='utf8')
assert '\\usepackage[,numfigreset=2,mathnumfig]{sphinx}' in result
@@ -530,7 +534,7 @@ def test_latex_obey_numfig_secnum_depth_is_two(app, status, warning):
'latex', testroot='latex-numfig',
confoverrides={'numfig': True, 'math_numfig': False})
def test_latex_obey_numfig_but_math_numfig_false(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'SphinxManual.tex').read_text(encoding='utf8')
assert '\\usepackage[,numfigreset=1]{sphinx}' in result
@@ -543,7 +547,7 @@ def test_latex_obey_numfig_but_math_numfig_false(app, status, warning):
def test_latex_add_latex_package(app, status, warning):
app.add_latex_package('foo')
app.add_latex_package('bar', 'baz')
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
assert '\\usepackage{foo}' in result
assert '\\usepackage[baz]{bar}' in result
@@ -551,7 +555,7 @@ def test_latex_add_latex_package(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-babel')
def test_babel_with_no_language_settings(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -576,7 +580,7 @@ def test_babel_with_no_language_settings(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'de'})
def test_babel_with_language_de(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -601,7 +605,7 @@ def test_babel_with_language_de(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'ru'})
def test_babel_with_language_ru(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -626,7 +630,7 @@ def test_babel_with_language_ru(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'tr'})
def test_babel_with_language_tr(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -651,7 +655,7 @@ def test_babel_with_language_tr(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'ja'})
def test_babel_with_language_ja(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -675,7 +679,7 @@ def test_babel_with_language_ja(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'unknown'})
def test_babel_with_unknown_language(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -702,7 +706,7 @@ def test_babel_with_unknown_language(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'de', 'latex_engine': 'lualatex'})
def test_polyglossia_with_language_de(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -728,7 +732,7 @@ def test_polyglossia_with_language_de(app, status, warning):
'latex', testroot='latex-babel',
confoverrides={'language': 'de-1901', 'latex_engine': 'lualatex'})
def test_polyglossia_with_language_de_1901(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -752,7 +756,7 @@ def test_polyglossia_with_language_de_1901(app, status, warning):
@pytest.mark.sphinx('latex')
def test_footnote(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'sphinxtests.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -781,7 +785,7 @@ def test_footnote(app, status, warning):
@pytest.mark.sphinx('latex', testroot='footnotes')
def test_reference_in_caption_and_codeblock_in_footnote(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -821,7 +825,7 @@ def test_reference_in_caption_and_codeblock_in_footnote(app, status, warning):
@pytest.mark.sphinx('latex', testroot='footnotes')
def test_footnote_referred_multiple_times(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -843,7 +847,7 @@ def test_footnote_referred_multiple_times(app, status, warning):
'latex', testroot='footnotes',
confoverrides={'latex_show_urls': 'inline'})
def test_latex_show_urls_is_inline(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -866,29 +870,29 @@ def test_latex_show_urls_is_inline(app, status, warning):
assert ('Second footnote: %\n'
'\\begin{footnote}[1]\\sphinxAtStartFootnote\n'
'Second\n%\n\\end{footnote}\n') in result
- assert '\\sphinxhref{http://sphinx-doc.org/}{Sphinx} (http://sphinx\\sphinxhyphen{}doc.org/)' in result
+ assert '\\sphinxhref{https://sphinx-doc.org/}{Sphinx} (https://sphinx\\sphinxhyphen{}doc.org/)' in result
assert ('Third footnote: %\n\\begin{footnote}[3]\\sphinxAtStartFootnote\n'
'Third \\sphinxfootnotemark[4]\n%\n\\end{footnote}%\n'
'\\begin{footnotetext}[4]\\sphinxAtStartFootnote\n'
'Footnote inside footnote\n%\n\\end{footnotetext}\\ignorespaces') in result
assert ('Fourth footnote: %\n\\begin{footnote}[5]\\sphinxAtStartFootnote\n'
'Fourth\n%\n\\end{footnote}\n') in result
- assert ('\\sphinxhref{http://sphinx-doc.org/~test/}{URL including tilde} '
- '(http://sphinx\\sphinxhyphen{}doc.org/\\textasciitilde{}test/)') in result
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}{URL in term} '
- '(http://sphinx\\sphinxhyphen{}doc.org/)}\n'
+ assert ('\\sphinxhref{https://sphinx-doc.org/~test/}{URL including tilde} '
+ '(https://sphinx\\sphinxhyphen{}doc.org/\\textasciitilde{}test/)') in result
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}{URL in term} '
+ '(https://sphinx\\sphinxhyphen{}doc.org/)}\n'
'\\sphinxAtStartPar\nDescription' in result)
assert ('\\sphinxlineitem{Footnote in term \\sphinxfootnotemark[7]}%\n'
'\\begin{footnotetext}[7]\\sphinxAtStartFootnote\n' in result)
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}{URL in term} '
- '(http://sphinx\\sphinxhyphen{}doc.org/)}\n'
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}{URL in term} '
+ '(https://sphinx\\sphinxhyphen{}doc.org/)}\n'
'\\sphinxAtStartPar\nDescription' in result)
assert ('\\sphinxlineitem{Footnote in term \\sphinxfootnotemark[7]}%\n'
'\\begin{footnotetext}[7]\\sphinxAtStartFootnote\n'
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces '
'\n\\sphinxAtStartPar\nDescription') in result
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}{Term in deflist} '
- '(http://sphinx\\sphinxhyphen{}doc.org/)}'
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}{Term in deflist} '
+ '(https://sphinx\\sphinxhyphen{}doc.org/)}'
'\n\\sphinxAtStartPar\nDescription') in result
assert '\\sphinxurl{https://github.com/sphinx-doc/sphinx}\n' in result
assert ('\\sphinxhref{mailto:sphinx-dev@googlegroups.com}'
@@ -900,7 +904,7 @@ def test_latex_show_urls_is_inline(app, status, warning):
'latex', testroot='footnotes',
confoverrides={'latex_show_urls': 'footnote'})
def test_latex_show_urls_is_footnote(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -922,9 +926,9 @@ def test_latex_show_urls_is_footnote(app, status, warning):
assert ('Second footnote: %\n'
'\\begin{footnote}[1]\\sphinxAtStartFootnote\n'
'Second\n%\n\\end{footnote}') in result
- assert ('\\sphinxhref{http://sphinx-doc.org/}{Sphinx}'
+ assert ('\\sphinxhref{https://sphinx-doc.org/}{Sphinx}'
'%\n\\begin{footnote}[4]\\sphinxAtStartFootnote\n'
- '\\sphinxnolinkurl{http://sphinx-doc.org/}\n%\n\\end{footnote}') in result
+ '\\sphinxnolinkurl{https://sphinx-doc.org/}\n%\n\\end{footnote}') in result
assert ('Third footnote: %\n\\begin{footnote}[6]\\sphinxAtStartFootnote\n'
'Third \\sphinxfootnotemark[7]\n%\n\\end{footnote}%\n'
'\\begin{footnotetext}[7]\\sphinxAtStartFootnote\n'
@@ -932,25 +936,25 @@ def test_latex_show_urls_is_footnote(app, status, warning):
'\\end{footnotetext}\\ignorespaces') in result
assert ('Fourth footnote: %\n\\begin{footnote}[8]\\sphinxAtStartFootnote\n'
'Fourth\n%\n\\end{footnote}\n') in result
- assert ('\\sphinxhref{http://sphinx-doc.org/~test/}{URL including tilde}'
+ assert ('\\sphinxhref{https://sphinx-doc.org/~test/}{URL including tilde}'
'%\n\\begin{footnote}[5]\\sphinxAtStartFootnote\n'
- '\\sphinxnolinkurl{http://sphinx-doc.org/~test/}\n%\n\\end{footnote}') in result
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}'
+ '\\sphinxnolinkurl{https://sphinx-doc.org/~test/}\n%\n\\end{footnote}') in result
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}'
'{URL in term}\\sphinxfootnotemark[10]}%\n'
'\\begin{footnotetext}[10]'
'\\sphinxAtStartFootnote\n'
- '\\sphinxnolinkurl{http://sphinx-doc.org/}\n%\n'
+ '\\sphinxnolinkurl{https://sphinx-doc.org/}\n%\n'
'\\end{footnotetext}\\ignorespaces \n\\sphinxAtStartPar\nDescription') in result
assert ('\\sphinxlineitem{Footnote in term \\sphinxfootnotemark[12]}%\n'
'\\begin{footnotetext}[12]'
'\\sphinxAtStartFootnote\n'
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces '
'\n\\sphinxAtStartPar\nDescription') in result
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}{Term in deflist}'
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}{Term in deflist}'
'\\sphinxfootnotemark[11]}%\n'
'\\begin{footnotetext}[11]'
'\\sphinxAtStartFootnote\n'
- '\\sphinxnolinkurl{http://sphinx-doc.org/}\n%\n'
+ '\\sphinxnolinkurl{https://sphinx-doc.org/}\n%\n'
'\\end{footnotetext}\\ignorespaces \n\\sphinxAtStartPar\nDescription') in result
assert ('\\sphinxurl{https://github.com/sphinx-doc/sphinx}\n' in result)
assert ('\\sphinxhref{mailto:sphinx-dev@googlegroups.com}'
@@ -962,7 +966,7 @@ def test_latex_show_urls_is_footnote(app, status, warning):
'latex', testroot='footnotes',
confoverrides={'latex_show_urls': 'no'})
def test_latex_show_urls_is_no(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -984,21 +988,21 @@ def test_latex_show_urls_is_no(app, status, warning):
assert ('Second footnote: %\n'
'\\begin{footnote}[1]\\sphinxAtStartFootnote\n'
'Second\n%\n\\end{footnote}') in result
- assert '\\sphinxhref{http://sphinx-doc.org/}{Sphinx}' in result
+ assert '\\sphinxhref{https://sphinx-doc.org/}{Sphinx}' in result
assert ('Third footnote: %\n\\begin{footnote}[3]\\sphinxAtStartFootnote\n'
'Third \\sphinxfootnotemark[4]\n%\n\\end{footnote}%\n'
'\\begin{footnotetext}[4]\\sphinxAtStartFootnote\n'
'Footnote inside footnote\n%\n\\end{footnotetext}\\ignorespaces') in result
assert ('Fourth footnote: %\n\\begin{footnote}[5]\\sphinxAtStartFootnote\n'
'Fourth\n%\n\\end{footnote}\n') in result
- assert '\\sphinxhref{http://sphinx-doc.org/~test/}{URL including tilde}' in result
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}{URL in term}}\n'
+ assert '\\sphinxhref{https://sphinx-doc.org/~test/}{URL including tilde}' in result
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}{URL in term}}\n'
'\\sphinxAtStartPar\nDescription') in result
assert ('\\sphinxlineitem{Footnote in term \\sphinxfootnotemark[7]}%\n'
'\\begin{footnotetext}[7]\\sphinxAtStartFootnote\n'
'Footnote in term\n%\n\\end{footnotetext}\\ignorespaces '
'\n\\sphinxAtStartPar\nDescription') in result
- assert ('\\sphinxlineitem{\\sphinxhref{http://sphinx-doc.org/}{Term in deflist}}'
+ assert ('\\sphinxlineitem{\\sphinxhref{https://sphinx-doc.org/}{Term in deflist}}'
'\n\\sphinxAtStartPar\nDescription') in result
assert ('\\sphinxurl{https://github.com/sphinx-doc/sphinx}\n' in result)
assert ('\\sphinxhref{mailto:sphinx-dev@googlegroups.com}'
@@ -1009,7 +1013,7 @@ def test_latex_show_urls_is_no(app, status, warning):
@pytest.mark.sphinx(
'latex', testroot='footnotes',
confoverrides={'latex_show_urls': 'footnote',
- 'rst_prolog': '.. |URL| replace:: `text <http://www.example.com/>`__'})
+ 'rst_prolog': '.. |URL| replace:: `text <https://www.example.com/>`__'})
def test_latex_show_urls_footnote_and_substitutions(app, status, warning):
# hyperlinks in substitutions should not effect to make footnotes (refs: #4784)
test_latex_show_urls_is_footnote(app, status, warning)
@@ -1017,7 +1021,7 @@ def test_latex_show_urls_footnote_and_substitutions(app, status, warning):
@pytest.mark.sphinx('latex', testroot='image-in-section')
def test_image_in_section(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1035,12 +1039,12 @@ def test_image_in_section(app, status, warning):
confoverrides={'latex_logo': 'notfound.jpg'})
def test_latex_logo_if_not_found(app, status, warning):
with pytest.raises(SphinxError):
- app.builder.build_all()
+ app.build(force_all=True)
@pytest.mark.sphinx('latex', testroot='toctree-maxdepth')
def test_toctree_maxdepth_manual(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1057,7 +1061,7 @@ def test_toctree_maxdepth_manual(app, status, warning):
'Georg Brandl', 'howto'),
]})
def test_toctree_maxdepth_howto(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1071,7 +1075,7 @@ def test_toctree_maxdepth_howto(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'root_doc': 'foo'})
def test_toctree_not_found(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1085,7 +1089,7 @@ def test_toctree_not_found(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'root_doc': 'bar'})
def test_toctree_without_maxdepth(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1098,7 +1102,7 @@ def test_toctree_without_maxdepth(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'root_doc': 'qux'})
def test_toctree_with_deeper_maxdepth(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1111,7 +1115,7 @@ def test_toctree_with_deeper_maxdepth(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'latex_toplevel_sectioning': None})
def test_latex_toplevel_sectioning_is_None(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1123,7 +1127,7 @@ def test_latex_toplevel_sectioning_is_None(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'latex_toplevel_sectioning': 'part'})
def test_latex_toplevel_sectioning_is_part(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1141,7 +1145,7 @@ def test_latex_toplevel_sectioning_is_part(app, status, warning):
'Georg Brandl', 'howto'),
]})
def test_latex_toplevel_sectioning_is_part_with_howto(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1155,7 +1159,7 @@ def test_latex_toplevel_sectioning_is_part_with_howto(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'latex_toplevel_sectioning': 'chapter'})
def test_latex_toplevel_sectioning_is_chapter(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1171,7 +1175,7 @@ def test_latex_toplevel_sectioning_is_chapter(app, status, warning):
'Georg Brandl', 'howto'),
]})
def test_latex_toplevel_sectioning_is_chapter_with_howto(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1183,7 +1187,7 @@ def test_latex_toplevel_sectioning_is_chapter_with_howto(app, status, warning):
'latex', testroot='toctree-maxdepth',
confoverrides={'latex_toplevel_sectioning': 'section'})
def test_latex_toplevel_sectioning_is_section(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1194,7 +1198,7 @@ def test_latex_toplevel_sectioning_is_section(app, status, warning):
@skip_if_stylefiles_notfound
@pytest.mark.sphinx('latex', testroot='maxlistdepth')
def test_maxlistdepth_at_ten(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
print(status.getvalue())
@@ -1206,7 +1210,7 @@ def test_maxlistdepth_at_ten(app, status, warning):
confoverrides={'latex_table_style': []})
@pytest.mark.test_params(shared_result='latex-table')
def test_latex_table_tabulars(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
tables = {}
for chap in re.split(r'\\(?:section|chapter){', result)[1:]:
@@ -1277,7 +1281,7 @@ def test_latex_table_tabulars(app, status, warning):
confoverrides={'latex_table_style': []})
@pytest.mark.test_params(shared_result='latex-table')
def test_latex_table_longtable(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
tables = {}
for chap in re.split(r'\\(?:section|chapter){', result)[1:]:
@@ -1338,7 +1342,7 @@ def test_latex_table_longtable(app, status, warning):
confoverrides={'latex_table_style': []})
@pytest.mark.test_params(shared_result='latex-table')
def test_latex_table_complex_tables(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
tables = {}
for chap in re.split(r'\\(?:section|renewcommand){', result)[1:]:
@@ -1368,7 +1372,7 @@ def test_latex_table_complex_tables(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-table')
def test_latex_table_with_booktabs_and_colorrows(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert r'\PassOptionsToPackage{booktabs}{sphinx}' in result
assert r'\PassOptionsToPackage{colorrows}{sphinx}' in result
@@ -1384,7 +1388,7 @@ def test_latex_table_with_booktabs_and_colorrows(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-table',
confoverrides={'templates_path': ['_mytemplates/latex']})
def test_latex_table_custom_template_caseA(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert 'SALUT LES COPAINS' in result
@@ -1392,7 +1396,7 @@ def test_latex_table_custom_template_caseA(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-table',
confoverrides={'templates_path': ['_mytemplates']})
def test_latex_table_custom_template_caseB(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert 'SALUT LES COPAINS' not in result
@@ -1400,14 +1404,14 @@ def test_latex_table_custom_template_caseB(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-table')
@pytest.mark.test_params(shared_result='latex-table')
def test_latex_table_custom_template_caseC(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert 'SALUT LES COPAINS' not in result
@pytest.mark.sphinx('latex', testroot='directives-raw')
def test_latex_raw_directive(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
# standard case
@@ -1422,18 +1426,19 @@ def test_latex_raw_directive(app, status, warning):
@pytest.mark.sphinx('latex', testroot='images')
def test_latex_images(app, status, warning):
- app.builder.build_all()
+ with http_server(RemoteImageHandler, port=7777):
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
# images are copied
- assert '\\sphinxincludegraphics{{python-logo}.png}' in result
- assert (app.outdir / 'python-logo.png').exists()
+ assert '\\sphinxincludegraphics{{sphinx}.png}' in result
+ assert (app.outdir / 'sphinx.png').exists()
# not found images
assert '\\sphinxincludegraphics{{NOT_EXIST}.PNG}' not in result
assert ('WARNING: Could not fetch remote image: '
- 'https://www.google.com/NOT_EXIST.PNG [404]' in warning.getvalue())
+ 'http://localhost:7777/NOT_EXIST.PNG [404]' in warning.getvalue())
# an image having target
assert ('\\sphinxhref{https://www.sphinx-doc.org/}'
@@ -1446,7 +1451,7 @@ def test_latex_images(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-index')
def test_latex_index(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert ('A \\index{famous@\\spxentry{famous}}famous '
@@ -1460,7 +1465,7 @@ def test_latex_index(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-equations')
def test_latex_equations(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
expected = (app.srcdir / 'expects' / 'latex-equations.tex').read_text(encoding='utf8').strip()
@@ -1470,7 +1475,7 @@ def test_latex_equations(app, status, warning):
@pytest.mark.sphinx('latex', testroot='image-in-parsed-literal')
def test_latex_image_in_parsed_literal(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert ('{\\sphinxunactivateextrasandspace \\raisebox{-0.5\\height}'
@@ -1480,7 +1485,7 @@ def test_latex_image_in_parsed_literal(app, status, warning):
@pytest.mark.sphinx('latex', testroot='nested-enumerated-list')
def test_latex_nested_enumerated_list(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert ('\\sphinxsetlistlabels{\\arabic}{enumi}{enumii}{}{.}%\n'
@@ -1497,7 +1502,7 @@ def test_latex_nested_enumerated_list(app, status, warning):
@pytest.mark.sphinx('latex', testroot='footnotes')
def test_latex_thebibliography(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
@@ -1510,7 +1515,7 @@ def test_latex_thebibliography(app, status, warning):
@pytest.mark.sphinx('latex', testroot='glossary')
def test_latex_glossary(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert (r'\sphinxlineitem{ähnlich\index{ähnlich@\spxentry{ähnlich}|spxpagem}'
@@ -1534,7 +1539,7 @@ def test_latex_glossary(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-labels')
def test_latex_labels(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
@@ -1583,7 +1588,7 @@ def test_latex_labels(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-figure-in-admonition')
def test_latex_figure_in_admonition(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert r'\begin{figure}[H]' in result
@@ -1594,7 +1599,6 @@ def test_default_latex_documents():
config = Config({'root_doc': 'index',
'project': 'STASIâ„¢ Documentation',
'author': "Wolfgang Schäuble & G'Beckstein."})
- config.init_values()
config.add('latex_engine', None, True, None)
config.add('latex_theme', 'manual', True, None)
expected = [('index', 'stasi.tex', 'STASIâ„¢ Documentation',
@@ -1606,7 +1610,7 @@ def test_default_latex_documents():
@skip_if_stylefiles_notfound
@pytest.mark.sphinx('latex', testroot='latex-includegraphics')
def test_includegraphics_oversized(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
print(status.getvalue())
print(warning.getvalue())
compile_latex_document(app)
@@ -1614,7 +1618,7 @@ def test_includegraphics_oversized(app, status, warning):
@pytest.mark.sphinx('latex', testroot='index_on_title')
def test_index_on_title(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert ('\\chapter{Test for index in top level title}\n'
'\\label{\\detokenize{contents:test-for-index-in-top-level-title}}'
@@ -1625,7 +1629,7 @@ def test_index_on_title(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-unicode',
confoverrides={'latex_engine': 'pdflatex'})
def test_texescape_for_non_unicode_supported_engine(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
assert 'script small e: e' in result
@@ -1637,7 +1641,7 @@ def test_texescape_for_non_unicode_supported_engine(app, status, warning):
@pytest.mark.sphinx('latex', testroot='latex-unicode',
confoverrides={'latex_engine': 'xelatex'})
def test_texescape_for_unicode_supported_engine(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(result)
assert 'script small e: e' in result
@@ -1649,20 +1653,20 @@ def test_texescape_for_unicode_supported_engine(app, status, warning):
@pytest.mark.sphinx('latex', testroot='basic',
confoverrides={'latex_elements': {'extrapackages': r'\usepackage{foo}'}})
def test_latex_elements_extrapackages(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'test.tex').read_text(encoding='utf8')
assert r'\usepackage{foo}' in result
@pytest.mark.sphinx('latex', testroot='nested-tables')
def test_latex_nested_tables(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert warning.getvalue() == ''
@pytest.mark.sphinx('latex', testroot='latex-container')
def test_latex_container(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
assert r'\begin{sphinxuseclass}{classname}' in result
assert r'\end{sphinxuseclass}' in result
@@ -1704,7 +1708,7 @@ def test_copy_images(app, status, warning):
image.name for image in test_dir.rglob('*')
if image.suffix in {'.gif', '.pdf', '.png', '.svg'}
}
- images.discard('python-logo.png')
+ images.discard('sphinx.png')
assert images == {
'img.pdf',
'rimg.png',
@@ -1745,7 +1749,7 @@ def test_duplicated_labels_before_module(app, status, warning):
@pytest.mark.sphinx('latex', testroot='domain-py-python_maximum_signature_line_length',
confoverrides={'python_maximum_signature_line_length': 23})
def test_one_parameter_per_line(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
# TODO: should these asserts check presence or absence of a final \sphinxparamcomma?
diff --git a/tests/test_build_linkcheck.py b/tests/test_builders/test_build_linkcheck.py
index 38a0bd1..c8d8515 100644
--- a/tests/test_build_linkcheck.py
+++ b/tests/test_builders/test_build_linkcheck.py
@@ -2,7 +2,6 @@
from __future__ import annotations
-import http.server
import json
import re
import sys
@@ -10,10 +9,11 @@ import textwrap
import time
import wsgiref.handlers
from base64 import b64encode
-from os import path
+from http.server import BaseHTTPRequestHandler
from queue import Queue
from unittest import mock
+import docutils
import pytest
from urllib3.poolmanager import PoolManager
@@ -23,18 +23,18 @@ from sphinx.builders.linkcheck import (
Hyperlink,
HyperlinkAvailabilityCheckWorker,
RateLimit,
+ compile_linkcheck_allowed_redirects,
)
-from sphinx.testing.util import strip_escseq
+from sphinx.deprecation import RemovedInSphinx80Warning
from sphinx.util import requests
from sphinx.util.console import strip_colors
-from .utils import CERT_FILE, http_server, https_server
+from tests.utils import CERT_FILE, serve_application
ts_re = re.compile(r".*\[(?P<ts>.*)\].*")
-SPHINX_DOCS_INDEX = path.abspath(path.join(__file__, "..", "roots", "test-linkcheck", "sphinx-docs-index.html"))
-class DefaultsHandler(http.server.BaseHTTPRequestHandler):
+class DefaultsHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_HEAD(self):
@@ -102,7 +102,7 @@ class ConnectionMeasurement:
@pytest.mark.sphinx('linkcheck', testroot='linkcheck', freshenv=True)
def test_defaults(app):
- with http_server(DefaultsHandler):
+ with serve_application(app, DefaultsHandler) as address:
with ConnectionMeasurement() as m:
app.build()
assert m.connection_count <= 5
@@ -115,9 +115,9 @@ def test_defaults(app):
assert "Anchor 'top' not found" in content
assert "Anchor 'does-not-exist' not found" in content
# images should fail
- assert "Not Found for url: http://localhost:7777/image.png" in content
- assert "Not Found for url: http://localhost:7777/image2.png" in content
- # looking for local file should fail
+ assert f"Not Found for url: http://{address}/image.png" in content
+ assert f"Not Found for url: http://{address}/image2.png" in content
+ # looking for missing local file should fail
assert "[broken] path/to/notfound" in content
assert len(content.splitlines()) == 5
@@ -135,35 +135,42 @@ def test_defaults(app):
# the output order of the rows is not stable
# due to possible variance in network latency
rowsby = {row["uri"]: row for row in rows}
- assert rowsby["http://localhost:7777#!bar"] == {
+ # looking for local file that exists should succeed
+ assert rowsby["conf.py"]["status"] == "working"
+ assert rowsby[f"http://{address}#!bar"] == {
'filename': 'links.rst',
'lineno': 5,
'status': 'working',
'code': 0,
- 'uri': 'http://localhost:7777#!bar',
+ 'uri': f'http://{address}#!bar',
'info': '',
}
- assert rowsby['http://localhost:7777/image2.png'] == {
- 'filename': 'links.rst',
- 'lineno': 13,
- 'status': 'broken',
- 'code': 0,
- 'uri': 'http://localhost:7777/image2.png',
- 'info': '404 Client Error: Not Found for url: http://localhost:7777/image2.png',
- }
+
+ def _missing_resource(filename: str, lineno: int):
+ return {
+ 'filename': 'links.rst',
+ 'lineno': lineno,
+ 'status': 'broken',
+ 'code': 0,
+ 'uri': f'http://{address}/{filename}',
+ 'info': f'404 Client Error: Not Found for url: http://{address}/{filename}',
+ }
+ accurate_linenumbers = docutils.__version_info__[:2] >= (0, 21)
+ image2_lineno = 12 if accurate_linenumbers else 13
+ assert rowsby[f'http://{address}/image2.png'] == _missing_resource("image2.png", image2_lineno)
# looking for '#top' and '#does-not-exist' not found should fail
- assert rowsby["http://localhost:7777/#top"]["info"] == "Anchor 'top' not found"
- assert rowsby["http://localhost:7777/#top"]["status"] == "broken"
- assert rowsby["http://localhost:7777#does-not-exist"]["info"] == "Anchor 'does-not-exist' not found"
+ assert rowsby[f"http://{address}/#top"]["info"] == "Anchor 'top' not found"
+ assert rowsby[f"http://{address}/#top"]["status"] == "broken"
+ assert rowsby[f"http://{address}#does-not-exist"]["info"] == "Anchor 'does-not-exist' not found"
# images should fail
- assert "Not Found for url: http://localhost:7777/image.png" in rowsby["http://localhost:7777/image.png"]["info"]
+ assert f"Not Found for url: http://{address}/image.png" in rowsby[f"http://{address}/image.png"]["info"]
# anchor should be found
- assert rowsby['http://localhost:7777/anchor.html#found'] == {
+ assert rowsby[f'http://{address}/anchor.html#found'] == {
'filename': 'links.rst',
'lineno': 14,
'status': 'working',
'code': 0,
- 'uri': 'http://localhost:7777/anchor.html#found',
+ 'uri': f'http://{address}/anchor.html#found',
'info': '',
}
@@ -172,7 +179,7 @@ def test_defaults(app):
'linkcheck', testroot='linkcheck', freshenv=True,
confoverrides={'linkcheck_anchors': False})
def test_check_link_response_only(app):
- with http_server(DefaultsHandler):
+ with serve_application(app, DefaultsHandler) as address:
app.build()
# JSON output
@@ -181,12 +188,12 @@ def test_check_link_response_only(app):
rows = [json.loads(x) for x in content.splitlines()]
rowsby = {row["uri"]: row for row in rows}
- assert rowsby["http://localhost:7777/#top"]["status"] == "working"
+ assert rowsby[f"http://{address}/#top"]["status"] == "working"
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-too-many-retries', freshenv=True)
def test_too_many_retries(app):
- with http_server(DefaultsHandler):
+ with serve_application(app, DefaultsHandler) as address:
app.build()
# Text output
@@ -210,12 +217,20 @@ def test_too_many_retries(app):
assert row['lineno'] == 1
assert row['status'] == 'broken'
assert row['code'] == 0
- assert row['uri'] == 'https://localhost:7777/doesnotexist'
+ assert row['uri'] == f'https://{address}/doesnotexist'
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-raw-node', freshenv=True)
def test_raw_node(app):
- with http_server(OKHandler):
+ with serve_application(app, OKHandler) as address:
+ # write an index file that contains a link back to this webserver's root
+ # URL. docutils will replace the raw node with the contents retrieved..
+ # ..and then the linkchecker will check that the root URL is available.
+ index = (app.srcdir / "index.rst")
+ index.write_text(
+ ".. raw:: 'html'\n"
+ " :url: http://{address}/".format(address=address),
+ )
app.build()
# JSON output
@@ -231,7 +246,7 @@ def test_raw_node(app):
'lineno': 1,
'status': 'working',
'code': 0,
- 'uri': 'http://localhost:7777/',
+ 'uri': f'http://{address}/', # the received rST contains a link to its' own URL
'info': '',
}
@@ -240,7 +255,7 @@ def test_raw_node(app):
'linkcheck', testroot='linkcheck-anchors-ignore', freshenv=True,
confoverrides={'linkcheck_anchors_ignore': ["^!", "^top$"]})
def test_anchors_ignored(app):
- with http_server(OKHandler):
+ with serve_application(app, OKHandler):
app.build()
assert (app.outdir / 'output.txt').exists()
@@ -250,7 +265,7 @@ def test_anchors_ignored(app):
assert not content
-class AnchorsIgnoreForUrlHandler(http.server.BaseHTTPRequestHandler):
+class AnchorsIgnoreForUrlHandler(BaseHTTPRequestHandler):
def do_HEAD(self):
if self.path in {'/valid', '/ignored'}:
self.send_response(200, "OK")
@@ -266,14 +281,13 @@ class AnchorsIgnoreForUrlHandler(http.server.BaseHTTPRequestHandler):
self.wfile.write(b"no anchor but page exists\n")
-@pytest.mark.sphinx(
- 'linkcheck', testroot='linkcheck-anchors-ignore-for-url', freshenv=True,
- confoverrides={'linkcheck_anchors_ignore_for_url': [
- 'http://localhost:7777/ignored', # existing page
- 'http://localhost:7777/invalid', # unknown page
- ]})
+@pytest.mark.sphinx('linkcheck', testroot='linkcheck-anchors-ignore-for-url', freshenv=True)
def test_anchors_ignored_for_url(app):
- with http_server(AnchorsIgnoreForUrlHandler):
+ with serve_application(app, AnchorsIgnoreForUrlHandler) as address:
+ app.config.linkcheck_anchors_ignore_for_url = [ # type: ignore[attr-defined]
+ f'http://{address}/ignored', # existing page
+ f'http://{address}/invalid', # unknown page
+ ]
app.build()
assert (app.outdir / 'output.txt').exists()
@@ -288,41 +302,41 @@ def test_anchors_ignored_for_url(app):
# the order the threads are processing the links
rows = {r['uri']: {'status': r['status'], 'info': r['info']} for r in data}
- assert rows['http://localhost:7777/valid']['status'] == 'working'
- assert rows['http://localhost:7777/valid#valid-anchor']['status'] == 'working'
- assert rows['http://localhost:7777/valid#invalid-anchor'] == {
+ assert rows[f'http://{address}/valid']['status'] == 'working'
+ assert rows[f'http://{address}/valid#valid-anchor']['status'] == 'working'
+ assert rows[f'http://{address}/valid#invalid-anchor'] == {
'status': 'broken',
'info': "Anchor 'invalid-anchor' not found",
}
- assert rows['http://localhost:7777/ignored']['status'] == 'working'
- assert rows['http://localhost:7777/ignored#invalid-anchor']['status'] == 'working'
+ assert rows[f'http://{address}/ignored']['status'] == 'working'
+ assert rows[f'http://{address}/ignored#invalid-anchor']['status'] == 'working'
- assert rows['http://localhost:7777/invalid'] == {
+ assert rows[f'http://{address}/invalid'] == {
'status': 'broken',
- 'info': '404 Client Error: Not Found for url: http://localhost:7777/invalid',
+ 'info': f'404 Client Error: Not Found for url: http://{address}/invalid',
}
- assert rows['http://localhost:7777/invalid#anchor'] == {
+ assert rows[f'http://{address}/invalid#anchor'] == {
'status': 'broken',
- 'info': '404 Client Error: Not Found for url: http://localhost:7777/invalid',
+ 'info': f'404 Client Error: Not Found for url: http://{address}/invalid',
}
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-anchor', freshenv=True)
def test_raises_for_invalid_status(app):
- class InternalServerErrorHandler(http.server.BaseHTTPRequestHandler):
+ class InternalServerErrorHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_GET(self):
self.send_error(500, "Internal Server Error")
- with http_server(InternalServerErrorHandler):
+ with serve_application(app, InternalServerErrorHandler) as address:
app.build()
content = (app.outdir / 'output.txt').read_text(encoding='utf8')
assert content == (
- "index.rst:1: [broken] http://localhost:7777/#anchor: "
+ f"index.rst:1: [broken] http://{address}/#anchor: "
"500 Server Error: Internal Server Error "
- "for url: http://localhost:7777/\n"
+ f"for url: http://{address}/\n"
)
@@ -338,13 +352,17 @@ def custom_handler(valid_credentials=(), success_criteria=lambda _: True):
expected_token = b64encode(":".join(valid_credentials).encode()).decode("utf-8")
del valid_credentials
- class CustomHandler(http.server.BaseHTTPRequestHandler):
+ class CustomHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def authenticated(method):
def method_if_authenticated(self):
- if (expected_token is None
- or self.headers["Authorization"] == f"Basic {expected_token}"):
+ if expected_token is None:
+ return method(self)
+ elif not self.headers["Authorization"]:
+ self.send_response(401, "Unauthorized")
+ self.end_headers()
+ elif self.headers["Authorization"] == f"Basic {expected_token}":
return method(self)
else:
self.send_response(403, "Forbidden")
@@ -370,15 +388,14 @@ def custom_handler(valid_credentials=(), success_criteria=lambda _: True):
return CustomHandler
-@pytest.mark.sphinx(
- 'linkcheck', testroot='linkcheck-localserver', freshenv=True,
- confoverrides={'linkcheck_auth': [
- (r'^$', ('no', 'match')),
- (r'^http://localhost:7777/$', ('user1', 'password')),
- (r'.*local.*', ('user2', 'hunter2')),
- ]})
+@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_auth_header_uses_first_match(app):
- with http_server(custom_handler(valid_credentials=("user1", "password"))):
+ with serve_application(app, custom_handler(valid_credentials=("user1", "password"))) as address:
+ app.config.linkcheck_auth = [ # type: ignore[attr-defined]
+ (r'^$', ('no', 'match')),
+ (fr'^http://{re.escape(address)}/$', ('user1', 'password')),
+ (r'.*local.*', ('user2', 'hunter2')),
+ ]
app.build()
with open(app.outdir / "output.json", encoding="utf-8") as fp:
@@ -387,41 +404,51 @@ def test_auth_header_uses_first_match(app):
assert content["status"] == "working"
+@pytest.mark.filterwarnings('ignore::sphinx.deprecation.RemovedInSphinx80Warning')
@pytest.mark.sphinx(
'linkcheck', testroot='linkcheck-localserver', freshenv=True,
- confoverrides={'linkcheck_auth': [(r'^$', ('user1', 'password'))]})
-def test_auth_header_no_match(app):
- with http_server(custom_handler(valid_credentials=("user1", "password"))):
+ confoverrides={'linkcheck_allow_unauthorized': False})
+def test_unauthorized_broken(app):
+ with serve_application(app, custom_handler(valid_credentials=("user1", "password"))):
app.build()
with open(app.outdir / "output.json", encoding="utf-8") as fp:
content = json.load(fp)
- # TODO: should this test's webserver return HTTP 401 here?
- # https://github.com/sphinx-doc/sphinx/issues/11433
- assert content["info"] == "403 Client Error: Forbidden for url: http://localhost:7777/"
+ assert content["info"] == "unauthorized"
assert content["status"] == "broken"
@pytest.mark.sphinx(
'linkcheck', testroot='linkcheck-localserver', freshenv=True,
- confoverrides={'linkcheck_request_headers': {
- "http://localhost:7777/": {
- "Accept": "text/html",
- },
- "*": {
- "X-Secret": "open sesami",
- },
- }})
+ confoverrides={'linkcheck_auth': [(r'^$', ('user1', 'password'))]})
+def test_auth_header_no_match(app):
+ with (
+ serve_application(app, custom_handler(valid_credentials=("user1", "password"))),
+ pytest.warns(RemovedInSphinx80Warning, match='linkcheck builder encountered an HTTP 401'),
+ ):
+ app.build()
+
+ with open(app.outdir / "output.json", encoding="utf-8") as fp:
+ content = json.load(fp)
+
+ # This link is considered working based on the default linkcheck_allow_unauthorized=true
+ assert content["info"] == "unauthorized"
+ assert content["status"] == "working"
+
+
+@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_linkcheck_request_headers(app):
def check_headers(self):
if "X-Secret" in self.headers:
return False
- if self.headers["Accept"] != "text/html":
- return False
- return True
+ return self.headers["Accept"] == "text/html"
- with http_server(custom_handler(success_criteria=check_headers)):
+ with serve_application(app, custom_handler(success_criteria=check_headers)) as address:
+ app.config.linkcheck_request_headers = { # type: ignore[attr-defined]
+ f"http://{address}/": {"Accept": "text/html"},
+ "*": {"X-Secret": "open sesami"},
+ }
app.build()
with open(app.outdir / "output.json", encoding="utf-8") as fp:
@@ -430,21 +457,18 @@ def test_linkcheck_request_headers(app):
assert content["status"] == "working"
-@pytest.mark.sphinx(
- 'linkcheck', testroot='linkcheck-localserver', freshenv=True,
- confoverrides={'linkcheck_request_headers': {
- "http://localhost:7777": {"Accept": "application/json"},
- "*": {"X-Secret": "open sesami"},
- }})
+@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_linkcheck_request_headers_no_slash(app):
def check_headers(self):
if "X-Secret" in self.headers:
return False
- if self.headers["Accept"] != "application/json":
- return False
- return True
+ return self.headers["Accept"] == "application/json"
- with http_server(custom_handler(success_criteria=check_headers)):
+ with serve_application(app, custom_handler(success_criteria=check_headers)) as address:
+ app.config.linkcheck_request_headers = { # type: ignore[attr-defined]
+ f"http://{address}": {"Accept": "application/json"},
+ "*": {"X-Secret": "open sesami"},
+ }
app.build()
with open(app.outdir / "output.json", encoding="utf-8") as fp:
@@ -463,11 +487,9 @@ def test_linkcheck_request_headers_default(app):
def check_headers(self):
if self.headers["X-Secret"] != "open sesami":
return False
- if self.headers["Accept"] == "application/json":
- return False
- return True
+ return self.headers["Accept"] != "application/json"
- with http_server(custom_handler(success_criteria=check_headers)):
+ with serve_application(app, custom_handler(success_criteria=check_headers)):
app.build()
with open(app.outdir / "output.json", encoding="utf-8") as fp:
@@ -477,7 +499,7 @@ def test_linkcheck_request_headers_default(app):
def make_redirect_handler(*, support_head):
- class RedirectOnceHandler(http.server.BaseHTTPRequestHandler):
+ class RedirectOnceHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_HEAD(self):
@@ -493,7 +515,7 @@ def make_redirect_handler(*, support_head):
self.send_response(204, "No content")
else:
self.send_response(302, "Found")
- self.send_header("Location", "http://localhost:7777/?redirected=1")
+ self.send_header("Location", "/?redirected=1")
self.send_header("Content-Length", "0")
self.end_headers()
@@ -506,13 +528,13 @@ def make_redirect_handler(*, support_head):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_follows_redirects_on_HEAD(app, capsys, warning):
- with http_server(make_redirect_handler(support_head=True)):
+ with serve_application(app, make_redirect_handler(support_head=True)) as address:
app.build()
stdout, stderr = capsys.readouterr()
content = (app.outdir / 'output.txt').read_text(encoding='utf8')
assert content == (
"index.rst:1: [redirected with Found] "
- "http://localhost:7777/ to http://localhost:7777/?redirected=1\n"
+ f"http://{address}/ to http://{address}/?redirected=1\n"
)
assert stderr == textwrap.dedent(
"""\
@@ -525,13 +547,13 @@ def test_follows_redirects_on_HEAD(app, capsys, warning):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_follows_redirects_on_GET(app, capsys, warning):
- with http_server(make_redirect_handler(support_head=False)):
+ with serve_application(app, make_redirect_handler(support_head=False)) as address:
app.build()
stdout, stderr = capsys.readouterr()
content = (app.outdir / 'output.txt').read_text(encoding='utf8')
assert content == (
"index.rst:1: [redirected with Found] "
- "http://localhost:7777/ to http://localhost:7777/?redirected=1\n"
+ f"http://{address}/ to http://{address}/?redirected=1\n"
)
assert stderr == textwrap.dedent(
"""\
@@ -543,35 +565,34 @@ def test_follows_redirects_on_GET(app, capsys, warning):
assert warning.getvalue() == ''
-@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-warn-redirects',
- freshenv=True, confoverrides={
- 'linkcheck_allowed_redirects': {'http://localhost:7777/.*1': '.*'},
- })
+@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-warn-redirects')
def test_linkcheck_allowed_redirects(app, warning):
- with http_server(make_redirect_handler(support_head=False)):
+ with serve_application(app, make_redirect_handler(support_head=False)) as address:
+ app.config.linkcheck_allowed_redirects = {f'http://{address}/.*1': '.*'} # type: ignore[attr-defined]
+ compile_linkcheck_allowed_redirects(app, app.config)
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
- rows = [json.loads(l) for l in fp.readlines()]
+ rows = [json.loads(l) for l in fp]
assert len(rows) == 2
records = {row["uri"]: row for row in rows}
- assert records["http://localhost:7777/path1"]["status"] == "working"
- assert records["http://localhost:7777/path2"] == {
+ assert records[f"http://{address}/path1"]["status"] == "working"
+ assert records[f"http://{address}/path2"] == {
'filename': 'index.rst',
'lineno': 3,
'status': 'redirected',
'code': 302,
- 'uri': 'http://localhost:7777/path2',
- 'info': 'http://localhost:7777/?redirected=1',
+ 'uri': f'http://{address}/path2',
+ 'info': f'http://{address}/?redirected=1',
}
- assert ("index.rst:3: WARNING: redirect http://localhost:7777/path2 - with Found to "
- "http://localhost:7777/?redirected=1\n" in strip_escseq(warning.getvalue()))
+ assert (f"index.rst:3: WARNING: redirect http://{address}/path2 - with Found to "
+ f"http://{address}/?redirected=1\n" in strip_colors(warning.getvalue()))
assert len(warning.getvalue().splitlines()) == 1
-class OKHandler(http.server.BaseHTTPRequestHandler):
+class OKHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_HEAD(self):
@@ -591,7 +612,7 @@ class OKHandler(http.server.BaseHTTPRequestHandler):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-https', freshenv=True)
def test_invalid_ssl(get_request, app):
# Link indicates SSL should be used (https) but the server does not handle it.
- with http_server(OKHandler):
+ with serve_application(app, OKHandler) as address:
app.build()
assert not get_request.called
@@ -600,13 +621,13 @@ def test_invalid_ssl(get_request, app):
assert content["status"] == "broken"
assert content["filename"] == "index.rst"
assert content["lineno"] == 1
- assert content["uri"] == "https://localhost:7777/"
+ assert content["uri"] == f"https://{address}/"
assert "SSLError" in content["info"]
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-https', freshenv=True)
def test_connect_to_selfsigned_fails(app):
- with https_server(OKHandler):
+ with serve_application(app, OKHandler, tls_enabled=True) as address:
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
@@ -614,14 +635,14 @@ def test_connect_to_selfsigned_fails(app):
assert content["status"] == "broken"
assert content["filename"] == "index.rst"
assert content["lineno"] == 1
- assert content["uri"] == "https://localhost:7777/"
+ assert content["uri"] == f"https://{address}/"
assert "[SSL: CERTIFICATE_VERIFY_FAILED]" in content["info"]
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-https', freshenv=True)
def test_connect_to_selfsigned_with_tls_verify_false(app):
app.config.tls_verify = False
- with https_server(OKHandler):
+ with serve_application(app, OKHandler, tls_enabled=True) as address:
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
@@ -631,7 +652,7 @@ def test_connect_to_selfsigned_with_tls_verify_false(app):
"status": "working",
"filename": "index.rst",
"lineno": 1,
- "uri": "https://localhost:7777/",
+ "uri": f'https://{address}/',
"info": "",
}
@@ -639,7 +660,7 @@ def test_connect_to_selfsigned_with_tls_verify_false(app):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-https', freshenv=True)
def test_connect_to_selfsigned_with_tls_cacerts(app):
app.config.tls_cacerts = CERT_FILE
- with https_server(OKHandler):
+ with serve_application(app, OKHandler, tls_enabled=True) as address:
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
@@ -649,7 +670,7 @@ def test_connect_to_selfsigned_with_tls_cacerts(app):
"status": "working",
"filename": "index.rst",
"lineno": 1,
- "uri": "https://localhost:7777/",
+ "uri": f'https://{address}/',
"info": "",
}
@@ -657,7 +678,7 @@ def test_connect_to_selfsigned_with_tls_cacerts(app):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-https', freshenv=True)
def test_connect_to_selfsigned_with_requests_env_var(monkeypatch, app):
monkeypatch.setenv("REQUESTS_CA_BUNDLE", CERT_FILE)
- with https_server(OKHandler):
+ with serve_application(app, OKHandler, tls_enabled=True) as address:
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
@@ -667,7 +688,7 @@ def test_connect_to_selfsigned_with_requests_env_var(monkeypatch, app):
"status": "working",
"filename": "index.rst",
"lineno": 1,
- "uri": "https://localhost:7777/",
+ "uri": f'https://{address}/',
"info": "",
}
@@ -675,7 +696,7 @@ def test_connect_to_selfsigned_with_requests_env_var(monkeypatch, app):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver-https', freshenv=True)
def test_connect_to_selfsigned_nonexistent_cert_file(app):
app.config.tls_cacerts = "does/not/exist"
- with https_server(OKHandler):
+ with serve_application(app, OKHandler, tls_enabled=True) as address:
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
@@ -685,17 +706,17 @@ def test_connect_to_selfsigned_nonexistent_cert_file(app):
"status": "broken",
"filename": "index.rst",
"lineno": 1,
- "uri": "https://localhost:7777/",
+ "uri": f'https://{address}/',
"info": "Could not find a suitable TLS CA certificate bundle, invalid path: does/not/exist",
}
-class InfiniteRedirectOnHeadHandler(http.server.BaseHTTPRequestHandler):
+class InfiniteRedirectOnHeadHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_HEAD(self):
self.send_response(302, "Found")
- self.send_header("Location", "http://localhost:7777/")
+ self.send_header("Location", "/")
self.send_header("Content-Length", "0")
self.end_headers()
@@ -714,7 +735,7 @@ def test_TooManyRedirects_on_HEAD(app, monkeypatch):
monkeypatch.setattr(requests.sessions, "DEFAULT_REDIRECT_LIMIT", 5)
- with http_server(InfiniteRedirectOnHeadHandler):
+ with serve_application(app, InfiniteRedirectOnHeadHandler) as address:
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
@@ -724,13 +745,13 @@ def test_TooManyRedirects_on_HEAD(app, monkeypatch):
"status": "working",
"filename": "index.rst",
"lineno": 1,
- "uri": "http://localhost:7777/",
+ "uri": f'http://{address}/',
"info": "",
}
def make_retry_after_handler(responses):
- class RetryAfterHandler(http.server.BaseHTTPRequestHandler):
+ class RetryAfterHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_HEAD(self):
@@ -750,9 +771,11 @@ def make_retry_after_handler(responses):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_too_many_requests_retry_after_int_delay(app, capsys, status):
- with http_server(make_retry_after_handler([(429, "0"), (200, None)])), \
- mock.patch("sphinx.builders.linkcheck.DEFAULT_DELAY", 0), \
- mock.patch("sphinx.builders.linkcheck.QUEUE_POLL_SECS", 0.01):
+ with (
+ serve_application(app, make_retry_after_handler([(429, "0"), (200, None)])) as address,
+ mock.patch("sphinx.builders.linkcheck.DEFAULT_DELAY", 0),
+ mock.patch("sphinx.builders.linkcheck.QUEUE_POLL_SECS", 0.01),
+ ):
app.build()
content = (app.outdir / 'output.json').read_text(encoding='utf8')
assert json.loads(content) == {
@@ -760,10 +783,10 @@ def test_too_many_requests_retry_after_int_delay(app, capsys, status):
"lineno": 1,
"status": "working",
"code": 0,
- "uri": "http://localhost:7777/",
+ "uri": f'http://{address}/',
"info": "",
}
- rate_limit_log = "-rate limited- http://localhost:7777/ | sleeping...\n"
+ rate_limit_log = f"-rate limited- http://{address}/ | sleeping...\n"
assert rate_limit_log in strip_colors(status.getvalue())
_stdout, stderr = capsys.readouterr()
assert stderr == textwrap.dedent(
@@ -787,7 +810,7 @@ def test_too_many_requests_retry_after_HTTP_date(tz, app, monkeypatch, capsys):
m.setattr(sphinx.util.http_date, '_GMT_OFFSET',
float(time.localtime().tm_gmtoff))
- with http_server(make_retry_after_handler([(429, retry_after), (200, None)])):
+ with serve_application(app, make_retry_after_handler([(429, retry_after), (200, None)])) as address:
app.build()
content = (app.outdir / 'output.json').read_text(encoding='utf8')
@@ -796,7 +819,7 @@ def test_too_many_requests_retry_after_HTTP_date(tz, app, monkeypatch, capsys):
"lineno": 1,
"status": "working",
"code": 0,
- "uri": "http://localhost:7777/",
+ "uri": f'http://{address}/',
"info": "",
}
_stdout, stderr = capsys.readouterr()
@@ -810,8 +833,10 @@ def test_too_many_requests_retry_after_HTTP_date(tz, app, monkeypatch, capsys):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_too_many_requests_retry_after_without_header(app, capsys):
- with http_server(make_retry_after_handler([(429, None), (200, None)])), \
- mock.patch("sphinx.builders.linkcheck.DEFAULT_DELAY", 0):
+ with (
+ serve_application(app, make_retry_after_handler([(429, None), (200, None)])) as address,
+ mock.patch("sphinx.builders.linkcheck.DEFAULT_DELAY", 0),
+ ):
app.build()
content = (app.outdir / 'output.json').read_text(encoding='utf8')
assert json.loads(content) == {
@@ -819,7 +844,7 @@ def test_too_many_requests_retry_after_without_header(app, capsys):
"lineno": 1,
"status": "working",
"code": 0,
- "uri": "http://localhost:7777/",
+ "uri": f'http://{address}/',
"info": "",
}
_stdout, stderr = capsys.readouterr()
@@ -831,10 +856,36 @@ def test_too_many_requests_retry_after_without_header(app, capsys):
)
+@pytest.mark.sphinx(
+ 'linkcheck', testroot='linkcheck-localserver', freshenv=True,
+ confoverrides={
+ 'linkcheck_report_timeouts_as_broken': False,
+ 'linkcheck_timeout': 0.01,
+ }
+)
+def test_requests_timeout(app):
+ class DelayedResponseHandler(BaseHTTPRequestHandler):
+ protocol_version = "HTTP/1.1"
+
+ def do_GET(self):
+ time.sleep(0.2) # wait before sending any response data
+ self.send_response(200, "OK")
+ self.send_header("Content-Length", "0")
+ self.end_headers()
+
+ with serve_application(app, DelayedResponseHandler):
+ app.build()
+
+ with open(app.outdir / "output.json", encoding="utf-8") as fp:
+ content = json.load(fp)
+
+ assert content["status"] == "timeout"
+
+
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_too_many_requests_user_timeout(app):
app.config.linkcheck_rate_limit_timeout = 0.0
- with http_server(make_retry_after_handler([(429, None)])):
+ with serve_application(app, make_retry_after_handler([(429, None)])) as address:
app.build()
content = (app.outdir / 'output.json').read_text(encoding='utf8')
assert json.loads(content) == {
@@ -842,8 +893,8 @@ def test_too_many_requests_user_timeout(app):
"lineno": 1,
"status": "broken",
"code": 0,
- "uri": "http://localhost:7777/",
- "info": "429 Client Error: Too Many Requests for url: http://localhost:7777/",
+ "uri": f'http://{address}/',
+ "info": f"429 Client Error: Too Many Requests for url: http://{address}/",
}
@@ -901,14 +952,15 @@ def test_connection_contention(get_adapter, app, capsys):
import socket
socket.setdefaulttimeout(5)
- # Place a workload into the linkcheck queue
- link_count = 10
- rqueue, wqueue = Queue(), Queue()
- for _ in range(link_count):
- wqueue.put(CheckRequest(0, Hyperlink("http://localhost:7777", "test", "test.rst", 1)))
-
# Create parallel consumer threads
- with http_server(make_redirect_handler(support_head=True)):
+ with serve_application(app, make_redirect_handler(support_head=True)) as address:
+
+ # Place a workload into the linkcheck queue
+ link_count = 10
+ rqueue, wqueue = Queue(), Queue()
+ for _ in range(link_count):
+ wqueue.put(CheckRequest(0, Hyperlink(f"http://{address}", "test", "test.rst", 1)))
+
begin, checked = time.time(), []
threads = [
HyperlinkAvailabilityCheckWorker(
@@ -932,7 +984,7 @@ def test_connection_contention(get_adapter, app, capsys):
assert "TimeoutError" not in stderr
-class ConnectionResetHandler(http.server.BaseHTTPRequestHandler):
+class ConnectionResetHandler(BaseHTTPRequestHandler):
protocol_version = "HTTP/1.1"
def do_HEAD(self):
@@ -946,7 +998,7 @@ class ConnectionResetHandler(http.server.BaseHTTPRequestHandler):
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True)
def test_get_after_head_raises_connection_error(app):
- with http_server(ConnectionResetHandler):
+ with serve_application(app, ConnectionResetHandler) as address:
app.build()
content = (app.outdir / 'output.txt').read_text(encoding='utf8')
assert not content
@@ -956,34 +1008,33 @@ def test_get_after_head_raises_connection_error(app):
"lineno": 1,
"status": "working",
"code": 0,
- "uri": "http://localhost:7777/",
+ "uri": f'http://{address}/',
"info": "",
}
@pytest.mark.sphinx('linkcheck', testroot='linkcheck-documents_exclude', freshenv=True)
def test_linkcheck_exclude_documents(app):
- with http_server(DefaultsHandler):
+ with serve_application(app, DefaultsHandler):
app.build()
with open(app.outdir / 'output.json', encoding='utf-8') as fp:
content = [json.loads(record) for record in fp]
- assert content == [
- {
- 'filename': 'broken_link.rst',
- 'lineno': 4,
- 'status': 'ignored',
- 'code': 0,
- 'uri': 'https://www.sphinx-doc.org/this-is-a-broken-link',
- 'info': 'broken_link matched ^broken_link$ from linkcheck_exclude_documents',
- },
- {
- 'filename': 'br0ken_link.rst',
- 'lineno': 4,
- 'status': 'ignored',
- 'code': 0,
- 'uri': 'https://www.sphinx-doc.org/this-is-another-broken-link',
- 'info': 'br0ken_link matched br[0-9]ken_link from linkcheck_exclude_documents',
- },
- ]
+ assert len(content) == 2
+ assert {
+ 'filename': 'broken_link.rst',
+ 'lineno': 4,
+ 'status': 'ignored',
+ 'code': 0,
+ 'uri': 'https://www.sphinx-doc.org/this-is-a-broken-link',
+ 'info': 'broken_link matched ^broken_link$ from linkcheck_exclude_documents',
+ } in content
+ assert {
+ 'filename': 'br0ken_link.rst',
+ 'lineno': 4,
+ 'status': 'ignored',
+ 'code': 0,
+ 'uri': 'https://www.sphinx-doc.org/this-is-another-broken-link',
+ 'info': 'br0ken_link matched br[0-9]ken_link from linkcheck_exclude_documents',
+ } in content
diff --git a/tests/test_build_manpage.py b/tests/test_builders/test_build_manpage.py
index e765644..7172281 100644
--- a/tests/test_build_manpage.py
+++ b/tests/test_builders/test_build_manpage.py
@@ -9,7 +9,7 @@ from sphinx.config import Config
@pytest.mark.sphinx('man')
def test_all(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / 'sphinxtests.1').exists()
content = (app.outdir / 'sphinxtests.1').read_text(encoding='utf8')
@@ -34,7 +34,7 @@ def test_all(app, status, warning):
@pytest.mark.sphinx('man', testroot='basic',
confoverrides={'man_pages': [('index', 'title', None, [], 1)]})
def test_man_pages_empty_description(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'title.1').read_text(encoding='utf8')
assert r'title \-' not in content
@@ -49,7 +49,7 @@ def test_man_make_section_directory(app, status, warning):
@pytest.mark.sphinx('man', testroot='directive-code')
def test_captioned_code_block(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.1').read_text(encoding='utf8')
if docutils.__version_info__[:2] < (0, 21):
@@ -92,7 +92,6 @@ def test_default_man_pages():
config = Config({'project': 'STASIâ„¢ Documentation',
'author': "Wolfgang Schäuble & G'Beckstein",
'release': '1.0'})
- config.init_values()
expected = [('index', 'stasi', 'STASIâ„¢ Documentation 1.0',
["Wolfgang Schäuble & G'Beckstein"], 1)]
assert default_man_pages(config) == expected
diff --git a/tests/test_build_texinfo.py b/tests/test_builders/test_build_texinfo.py
index 9964382..f9effb2 100644
--- a/tests/test_build_texinfo.py
+++ b/tests/test_builders/test_build_texinfo.py
@@ -1,6 +1,5 @@
"""Test the build process with Texinfo builder with the test root."""
-import os
import re
import subprocess
from pathlib import Path
@@ -11,37 +10,14 @@ import pytest
from sphinx.builders.texinfo import default_texinfo_documents
from sphinx.config import Config
-from sphinx.testing.util import strip_escseq
from sphinx.util.docutils import new_document
from sphinx.writers.texinfo import TexinfoTranslator
-from .test_build_html import ENV_WARNINGS
-
-TEXINFO_WARNINGS = ENV_WARNINGS + """\
-%(root)s/index.rst:\\d+: WARNING: unknown option: '&option'
-%(root)s/index.rst:\\d+: WARNING: citation not found: missing
-%(root)s/index.rst:\\d+: WARNING: a suitable image for texinfo builder not found: foo.\\*
-%(root)s/index.rst:\\d+: WARNING: a suitable image for texinfo builder not found: \
-\\['application/pdf', 'image/svg\\+xml'\\] \\(svgimg.\\*\\)
-"""
-
-
-@pytest.mark.sphinx('texinfo', testroot='warnings', freshenv=True)
-def test_texinfo_warnings(app, status, warning):
- app.builder.build_all()
- warnings = strip_escseq(re.sub(re.escape(os.sep) + '{1,2}', '/', warning.getvalue()))
- warnings_exp = TEXINFO_WARNINGS % {
- 'root': re.escape(app.srcdir.as_posix())}
- assert re.match(warnings_exp + '$', warnings), \
- "Warnings don't match:\n" + \
- '--- Expected (regex):\n' + warnings_exp + \
- '--- Got:\n' + warnings
-
@pytest.mark.sphinx('texinfo')
def test_texinfo(app, status, warning):
TexinfoTranslator.ignore_missing_images = True
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'sphinxtests.texi').read_text(encoding='utf8')
assert ('@anchor{markup doc}@anchor{11}'
'@anchor{markup id1}@anchor{12}'
@@ -71,7 +47,7 @@ def test_texinfo_rubric(app, status, warning):
@pytest.mark.sphinx('texinfo', testroot='markup-citation')
def test_texinfo_citation(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
output = (app.outdir / 'python.texi').read_text(encoding='utf8')
assert 'This is a citation ref; @ref{1,,[CITE1]} and @ref{2,,[CITE2]}.' in output
@@ -84,7 +60,6 @@ def test_texinfo_citation(app, status, warning):
def test_default_texinfo_documents():
config = Config({'project': 'STASIâ„¢ Documentation',
'author': "Wolfgang Schäuble & G'Beckstein"})
- config.init_values()
expected = [('index', 'stasi', 'STASIâ„¢ Documentation',
"Wolfgang Schäuble & G'Beckstein", 'stasi',
'One line description of project', 'Miscellaneous')]
@@ -110,7 +85,7 @@ def test_texinfo_escape_id(app, status, warning):
@pytest.mark.sphinx('texinfo', testroot='footnotes')
def test_texinfo_footnote(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
output = (app.outdir / 'python.texi').read_text(encoding='utf8')
assert 'First footnote: @footnote{\nFirst\n}' in output
@@ -118,13 +93,13 @@ def test_texinfo_footnote(app, status, warning):
@pytest.mark.sphinx('texinfo')
def test_texinfo_xrefs(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
output = (app.outdir / 'sphinxtests.texi').read_text(encoding='utf8')
assert re.search(r'@ref{\w+,,--plugin\.option}', output)
# Now rebuild it without xrefs
app.config.texinfo_cross_references = False
- app.builder.build_all()
+ app.build(force_all=True)
output = (app.outdir / 'sphinxtests.texi').read_text(encoding='utf8')
assert not re.search(r'@ref{\w+,,--plugin\.option}', output)
assert 'Link to perl +p, --ObjC++, --plugin.option, create-auth-token, arg and -j' in output
diff --git a/tests/test_build_text.py b/tests/test_builders/test_build_text.py
index 4a53be3..6dc0d03 100644
--- a/tests/test_build_text.py
+++ b/tests/test_builders/test_build_text.py
@@ -17,7 +17,7 @@ def with_text_app(*args, **kw):
@with_text_app()
def test_maxwitdh_with_prefix(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'maxwidth.txt').read_text(encoding='utf8')
lines = result.splitlines()
@@ -40,7 +40,7 @@ def test_maxwitdh_with_prefix(app, status, warning):
@with_text_app()
def test_lineblock(app, status, warning):
# regression test for #1109: need empty line after line block
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'lineblock.txt').read_text(encoding='utf8')
expect = (
"* one\n"
@@ -55,7 +55,7 @@ def test_lineblock(app, status, warning):
@with_text_app()
def test_nonascii_title_line(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'nonascii_title.txt').read_text(encoding='utf8')
expect_underline = '*********'
result_underline = result.splitlines()[1].strip()
@@ -64,7 +64,7 @@ def test_nonascii_title_line(app, status, warning):
@with_text_app()
def test_nonascii_table(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'nonascii_table.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
line_widths = [column_width(line) for line in lines]
@@ -73,7 +73,7 @@ def test_nonascii_table(app, status, warning):
@with_text_app()
def test_nonascii_maxwidth(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'nonascii_maxwidth.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
line_widths = [column_width(line) for line in lines]
@@ -117,7 +117,7 @@ def test_table_cell():
@with_text_app()
def test_table_with_empty_cell(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'table.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
assert lines[0] == "+-------+-------+"
@@ -131,7 +131,7 @@ def test_table_with_empty_cell(app, status, warning):
@with_text_app()
def test_table_with_rowspan(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'table_rowspan.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
assert lines[0] == "+-------+-------+"
@@ -145,7 +145,7 @@ def test_table_with_rowspan(app, status, warning):
@with_text_app()
def test_table_with_colspan(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'table_colspan.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
assert lines[0] == "+-------+-------+"
@@ -159,7 +159,7 @@ def test_table_with_colspan(app, status, warning):
@with_text_app()
def test_table_with_colspan_left(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'table_colspan_left.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
assert lines[0] == "+-------+-------+"
@@ -173,7 +173,7 @@ def test_table_with_colspan_left(app, status, warning):
@with_text_app()
def test_table_with_colspan_and_rowspan(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'table_colspan_and_rowspan.txt').read_text(encoding='utf8')
lines = [line.strip() for line in result.splitlines() if line.strip()]
assert result
@@ -188,7 +188,7 @@ def test_table_with_colspan_and_rowspan(app, status, warning):
@with_text_app()
def test_list_items_in_admonition(app, status, warning):
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'listitems.txt').read_text(encoding='utf8')
lines = [line.rstrip() for line in result.splitlines()]
assert lines[0] == "See also:"
@@ -200,7 +200,7 @@ def test_list_items_in_admonition(app, status, warning):
@with_text_app()
def test_secnums(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
index = (app.outdir / 'index.txt').read_text(encoding='utf8')
lines = index.splitlines()
assert lines[0] == "* 1. Section A"
@@ -226,7 +226,7 @@ def test_secnums(app, status, warning):
assert doc2 == expect
app.config.text_secnumber_suffix = " "
- app.builder.build_all()
+ app.build(force_all=True)
index = (app.outdir / 'index.txt').read_text(encoding='utf8')
lines = index.splitlines()
assert lines[0] == "* 1 Section A"
@@ -252,7 +252,7 @@ def test_secnums(app, status, warning):
assert doc2 == expect
app.config.text_add_secnumbers = False
- app.builder.build_all()
+ app.build(force_all=True)
index = (app.outdir / 'index.txt').read_text(encoding='utf8')
lines = index.splitlines()
assert lines[0] == "* Section A"
diff --git a/tests/test_builders/test_build_warnings.py b/tests/test_builders/test_build_warnings.py
new file mode 100644
index 0000000..eeb7e9d
--- /dev/null
+++ b/tests/test_builders/test_build_warnings.py
@@ -0,0 +1,89 @@
+import os
+import re
+import sys
+
+import pytest
+
+from sphinx.util.console import strip_colors
+
+ENV_WARNINGS = """\
+{root}/autodoc_fodder.py:docstring of autodoc_fodder.MarkupError:\\d+: \
+WARNING: Explicit markup ends without a blank line; unexpected unindent.
+{root}/index.rst:\\d+: WARNING: Encoding 'utf-8-sig' used for reading included \
+file '{root}/wrongenc.inc' seems to be wrong, try giving an :encoding: option
+{root}/index.rst:\\d+: WARNING: invalid single index entry ''
+{root}/index.rst:\\d+: WARNING: image file not readable: foo.png
+{root}/index.rst:\\d+: WARNING: download file not readable: {root}/nonexisting.png
+{root}/undecodable.rst:\\d+: WARNING: undecodable source characters, replacing \
+with "\\?": b?'here: >>>(\\\\|/)xbb<<<((\\\\|/)r)?'
+"""
+
+HTML_WARNINGS = ENV_WARNINGS + """\
+{root}/index.rst:\\d+: WARNING: unknown option: '&option'
+{root}/index.rst:\\d+: WARNING: citation not found: missing
+{root}/index.rst:\\d+: WARNING: a suitable image for html builder not found: foo.\\*
+{root}/index.rst:\\d+: WARNING: Lexing literal_block ".*" as "c" resulted in an error at token: ".*". Retrying in relaxed mode.
+"""
+
+LATEX_WARNINGS = ENV_WARNINGS + """\
+{root}/index.rst:\\d+: WARNING: unknown option: '&option'
+{root}/index.rst:\\d+: WARNING: citation not found: missing
+{root}/index.rst:\\d+: WARNING: a suitable image for latex builder not found: foo.\\*
+{root}/index.rst:\\d+: WARNING: Lexing literal_block ".*" as "c" resulted in an error at token: ".*". Retrying in relaxed mode.
+"""
+
+TEXINFO_WARNINGS = ENV_WARNINGS + """\
+{root}/index.rst:\\d+: WARNING: unknown option: '&option'
+{root}/index.rst:\\d+: WARNING: citation not found: missing
+{root}/index.rst:\\d+: WARNING: a suitable image for texinfo builder not found: foo.\\*
+{root}/index.rst:\\d+: WARNING: a suitable image for texinfo builder not found: \
+\\['application/pdf', 'image/svg\\+xml'\\] \\(svgimg.\\*\\)
+"""
+
+
+def _check_warnings(expected_warnings: str, warning: str) -> None:
+ warnings = strip_colors(re.sub(re.escape(os.sep) + '{1,2}', '/', warning))
+ assert re.match(f'{expected_warnings}$', warnings), (
+ "Warnings don't match:\n"
+ + f'--- Expected (regex):\n{expected_warnings}\n'
+ + f'--- Got:\n{warnings}'
+ )
+ sys.modules.pop('autodoc_fodder', None)
+
+
+@pytest.mark.sphinx('html', testroot='warnings', freshenv=True)
+def test_html_warnings(app, warning):
+ app.build(force_all=True)
+ warnings_exp = HTML_WARNINGS.format(root=re.escape(app.srcdir.as_posix()))
+ _check_warnings(warnings_exp, warning.getvalue())
+
+
+@pytest.mark.sphinx('latex', testroot='warnings', freshenv=True)
+def test_latex_warnings(app, warning):
+ app.build(force_all=True)
+ warnings_exp = LATEX_WARNINGS.format(root=re.escape(app.srcdir.as_posix()))
+ _check_warnings(warnings_exp, warning.getvalue())
+
+
+@pytest.mark.sphinx('texinfo', testroot='warnings', freshenv=True)
+def test_texinfo_warnings(app, warning):
+ app.build(force_all=True)
+ warnings_exp = TEXINFO_WARNINGS.format(root=re.escape(app.srcdir.as_posix()))
+ _check_warnings(warnings_exp, warning.getvalue())
+
+
+def test_uncacheable_config_warning(make_app, tmp_path):
+ """Test that an unpickleable config value raises a warning."""
+ tmp_path.joinpath('conf.py').write_text("""\
+my_config = lambda: None
+show_warning_types = True
+def setup(app):
+ app.add_config_value('my_config', None, 'env')
+ """, encoding='utf-8')
+ tmp_path.joinpath('index.rst').write_text('Test\n====\n', encoding='utf-8')
+ app = make_app(srcdir=tmp_path)
+ app.build()
+ assert strip_colors(app.warning.getvalue()).strip() == (
+ "WARNING: cannot cache unpickable configuration value: 'my_config' "
+ "(because it contains a function, class, or module object) [config.cache]"
+ )
diff --git a/tests/test_builder.py b/tests/test_builders/test_builder.py
index 1ff8aea..ee946a5 100644
--- a/tests/test_builder.py
+++ b/tests/test_builders/test_builder.py
@@ -1,4 +1,7 @@
"""Test the Builder class."""
+
+import sys
+
import pytest
@@ -37,3 +40,5 @@ def test_incremental_reading_for_missing_files(app):
# "index" is listed up to updated because it contains references
# to nonexisting downloadable or image files
assert set(updated) == {'index'}
+
+ sys.modules.pop('autodoc_fodder', None)
diff --git a/tests/test_builders/xpath_data.py b/tests/test_builders/xpath_data.py
new file mode 100644
index 0000000..30f8e07
--- /dev/null
+++ b/tests/test_builders/xpath_data.py
@@ -0,0 +1,8 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from typing import Final
+
+FIGURE_CAPTION: Final[str] = ".//figure/figcaption/p"
diff --git a/tests/test_builders/xpath_util.py b/tests/test_builders/xpath_util.py
new file mode 100644
index 0000000..7525c19
--- /dev/null
+++ b/tests/test_builders/xpath_util.py
@@ -0,0 +1,79 @@
+from __future__ import annotations
+
+import re
+import textwrap
+from typing import TYPE_CHECKING
+from xml.etree.ElementTree import tostring
+
+if TYPE_CHECKING:
+ import os
+ from collections.abc import Callable, Iterable, Sequence
+ from xml.etree.ElementTree import Element, ElementTree
+
+
+def _get_text(node: Element) -> str:
+ if node.text is not None:
+ # the node has only one text
+ return node.text
+
+ # the node has tags and text; gather texts just under the node
+ return ''.join(n.tail or '' for n in node)
+
+
+def _prettify(nodes: Iterable[Element]) -> str:
+ def pformat(node: Element) -> str:
+ return tostring(node, encoding='unicode', method='html')
+
+ return ''.join(f'(i={index}) {pformat(node)}\n' for index, node in enumerate(nodes))
+
+
+def check_xpath(
+ etree: ElementTree,
+ filename: str | os.PathLike[str],
+ xpath: str,
+ check: str | re.Pattern[str] | Callable[[Sequence[Element]], None] | None,
+ be_found: bool = True,
+ *,
+ min_count: int = 1,
+) -> None:
+ """Check that one or more nodes satisfy a predicate.
+
+ :param etree: The element tree.
+ :param filename: The element tree source name (for errors only).
+ :param xpath: An XPath expression to use.
+ :param check: Optional regular expression or a predicate the nodes must validate.
+ :param be_found: If false, negate the predicate.
+ :param min_count: Minimum number of nodes expected to satisfy the predicate.
+
+ * If *check* is empty (``''``), only the minimum count is checked.
+ * If *check* is ``None``, no node should satisfy the XPath expression.
+ """
+ nodes = etree.findall(xpath)
+ assert isinstance(nodes, list)
+
+ if check is None:
+ # use == to have a nice pytest diff
+ assert nodes == [], f'found nodes matching xpath {xpath!r} in file {filename}'
+ return
+
+ assert len(nodes) >= min_count, (f'expecting at least {min_count} node(s) '
+ f'to satisfy {xpath!r} in file {filename}')
+
+ if check == '':
+ return
+
+ if callable(check):
+ check(nodes)
+ return
+
+ rex = re.compile(check)
+ if be_found:
+ if any(rex.search(_get_text(node)) for node in nodes):
+ return
+ else:
+ if all(not rex.search(_get_text(node)) for node in nodes):
+ return
+
+ ctx = textwrap.indent(_prettify(nodes), ' ' * 2)
+ msg = f'{check!r} not found in any node matching {xpath!r} in file {filename}:\n{ctx}'
+ raise AssertionError(msg)
diff --git a/tests/test_config/__init__.py b/tests/test_config/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_config/__init__.py
diff --git a/tests/test_config.py b/tests/test_config/test_config.py
index 0be0a58..e1cb1b0 100644
--- a/tests/test_config.py
+++ b/tests/test_config/test_config.py
@@ -1,15 +1,81 @@
"""Test the sphinx.config.Config class."""
+from __future__ import annotations
+import pickle
import time
+from collections import Counter
from pathlib import Path
+from typing import TYPE_CHECKING, Any
from unittest import mock
import pytest
import sphinx
-from sphinx.config import ENUM, Config, check_confval_types
+from sphinx.builders.gettext import _gettext_compact_validator
+from sphinx.config import (
+ ENUM,
+ Config,
+ _Opt,
+ check_confval_types,
+ correct_copyright_year,
+ is_serializable,
+)
+from sphinx.deprecation import RemovedInSphinx90Warning
from sphinx.errors import ConfigError, ExtensionError, VersionRequirementError
+if TYPE_CHECKING:
+ from collections.abc import Iterable
+ from typing import Union
+
+ CircularList = list[Union[int, 'CircularList']]
+ CircularDict = dict[str, Union[int, 'CircularDict']]
+
+
+def check_is_serializable(subject: object, *, circular: bool) -> None:
+ assert is_serializable(subject)
+
+ if circular:
+ class UselessGuard(frozenset[int]):
+ def __or__(self, other: object, /) -> UselessGuard:
+ # do nothing
+ return self
+
+ def union(self, *args: Iterable[object]) -> UselessGuard:
+ # do nothing
+ return self
+
+ # check that without recursive guards, a recursion error occurs
+ with pytest.raises(RecursionError):
+ assert is_serializable(subject, _seen=UselessGuard())
+
+
+def test_is_serializable() -> None:
+ subject = [1, [2, {3, 'a'}], {'x': {'y': frozenset((4, 5))}}]
+ check_is_serializable(subject, circular=False)
+
+ a, b = [1], [2] # type: (CircularList, CircularList)
+ a.append(b)
+ b.append(a)
+ check_is_serializable(a, circular=True)
+ check_is_serializable(b, circular=True)
+
+ x: CircularDict = {'a': 1, 'b': {'c': 1}}
+ x['b'] = x
+ check_is_serializable(x, circular=True)
+
+
+def test_config_opt_deprecated(recwarn):
+ opt = _Opt('default', '', ())
+
+ with pytest.warns(RemovedInSphinx90Warning):
+ default, rebuild, valid_types = opt
+
+ with pytest.warns(RemovedInSphinx90Warning):
+ _ = opt[0]
+
+ with pytest.warns(RemovedInSphinx90Warning):
+ _ = list(opt)
+
@pytest.mark.sphinx(testroot='config', confoverrides={
'root_doc': 'root',
@@ -30,7 +96,7 @@ def test_core_config(app, status, warning):
assert cfg.modindex_common_prefix == ['path1', 'path2']
# simple default values
- assert 'locale_dirs' not in cfg.__dict__
+ assert 'locale_dirs' in cfg.__dict__
assert cfg.locale_dirs == ['locales']
assert cfg.trim_footnote_reference_space is False
@@ -71,6 +137,161 @@ def test_config_not_found(tmp_path):
Config.read(tmp_path)
+@pytest.mark.parametrize("protocol", list(range(pickle.HIGHEST_PROTOCOL)))
+def test_config_pickle_protocol(tmp_path, protocol: int):
+ config = Config()
+
+ pickled_config = pickle.loads(pickle.dumps(config, protocol))
+
+ assert list(config._options) == list(pickled_config._options)
+ assert repr(config) == repr(pickled_config)
+
+
+def test_config_pickle_circular_reference_in_list():
+ a, b = [1], [2] # type: (CircularList, CircularList)
+ a.append(b)
+ b.append(a)
+
+ check_is_serializable(a, circular=True)
+ check_is_serializable(b, circular=True)
+
+ config = Config()
+ config.add('a', [], '', types=list)
+ config.add('b', [], '', types=list)
+ config.a, config.b = a, b
+
+ actual = pickle.loads(pickle.dumps(config))
+ assert isinstance(actual.a, list)
+ check_is_serializable(actual.a, circular=True)
+
+ assert isinstance(actual.b, list)
+ check_is_serializable(actual.b, circular=True)
+
+ assert actual.a[0] == 1
+ assert actual.a[1][0] == 2
+ assert actual.a[1][1][0] == 1
+ assert actual.a[1][1][1][0] == 2
+
+ assert actual.b[0] == 2
+ assert actual.b[1][0] == 1
+ assert actual.b[1][1][0] == 2
+ assert actual.b[1][1][1][0] == 1
+
+ assert len(actual.a) == 2
+ assert len(actual.a[1]) == 2
+ assert len(actual.a[1][1]) == 2
+ assert len(actual.a[1][1][1]) == 2
+ assert len(actual.a[1][1][1][1]) == 2
+
+ assert len(actual.b) == 2
+ assert len(actual.b[1]) == 2
+ assert len(actual.b[1][1]) == 2
+ assert len(actual.b[1][1][1]) == 2
+ assert len(actual.b[1][1][1][1]) == 2
+
+ def check(
+ u: list[list[object] | int],
+ v: list[list[object] | int],
+ *,
+ counter: Counter[type, int] | None = None,
+ guard: frozenset[int] = frozenset(),
+ ) -> Counter[type, int]:
+ counter = Counter() if counter is None else counter
+
+ if id(u) in guard and id(v) in guard:
+ return counter
+
+ if isinstance(u, int):
+ assert v.__class__ is u.__class__
+ assert u == v
+ counter[type(u)] += 1
+ return counter
+
+ assert isinstance(u, list)
+ assert v.__class__ is u.__class__
+ assert len(u) == len(v)
+
+ for u_i, v_i in zip(u, v):
+ counter[type(u)] += 1
+ check(u_i, v_i, counter=counter, guard=guard | {id(u), id(v)})
+
+ return counter
+
+ counter = check(actual.a, a)
+ # check(actual.a, a)
+ # check(actual.a[0], a[0]) -> ++counter[dict]
+ # ++counter[int] (a[0] is an int)
+ # check(actual.a[1], a[1]) -> ++counter[dict]
+ # check(actual.a[1][0], a[1][0]) -> ++counter[dict]
+ # ++counter[int] (a[1][0] is an int)
+ # check(actual.a[1][1], a[1][1]) -> ++counter[dict]
+ # recursive guard since a[1][1] == a
+ assert counter[type(a[0])] == 2
+ assert counter[type(a[1])] == 4
+
+ # same logic as above
+ counter = check(actual.b, b)
+ assert counter[type(b[0])] == 2
+ assert counter[type(b[1])] == 4
+
+
+def test_config_pickle_circular_reference_in_dict():
+ x: CircularDict = {'a': 1, 'b': {'c': 1}}
+ x['b'] = x
+ check_is_serializable(x, circular=True)
+
+ config = Config()
+ config.add('x', [], '', types=dict)
+ config.x = x
+
+ actual = pickle.loads(pickle.dumps(config))
+ check_is_serializable(actual.x, circular=True)
+ assert isinstance(actual.x, dict)
+
+ assert actual.x['a'] == 1
+ assert actual.x['b']['a'] == 1
+
+ assert len(actual.x) == 2
+ assert len(actual.x['b']) == 2
+ assert len(actual.x['b']['b']) == 2
+
+ def check(
+ u: dict[str, dict[str, object] | int],
+ v: dict[str, dict[str, object] | int],
+ *,
+ counter: Counter[type, int] | None = None,
+ guard: frozenset[int] = frozenset(),
+ ) -> Counter:
+ counter = Counter() if counter is None else counter
+
+ if id(u) in guard and id(v) in guard:
+ return counter
+
+ if isinstance(u, int):
+ assert v.__class__ is u.__class__
+ assert u == v
+ counter[type(u)] += 1
+ return counter
+
+ assert isinstance(u, dict)
+ assert v.__class__ is u.__class__
+ assert len(u) == len(v)
+
+ for u_i, v_i in zip(u, v):
+ counter[type(u)] += 1
+ check(u[u_i], v[v_i], counter=counter, guard=guard | {id(u), id(v)})
+ return counter
+
+ counters = check(actual.x, x, counter=Counter())
+ # check(actual.x, x)
+ # check(actual.x['a'], x['a']) -> ++counter[dict]
+ # ++counter[int] (x['a'] is an int)
+ # check(actual.x['b'], x['b']) -> ++counter[dict]
+ # recursive guard since x['b'] == x
+ assert counters[type(x['a'])] == 1
+ assert counters[type(x['b'])] == 2
+
+
def test_extension_values():
config = Config()
@@ -104,7 +325,6 @@ def test_overrides():
config.add('value6', {'default': 0}, 'env', ())
config.add('value7', None, 'env', ())
config.add('value8', [], 'env', ())
- config.init_values()
assert config.value1 == '1'
assert config.value2 == 999
@@ -123,7 +343,6 @@ def test_overrides_boolean():
config.add('value1', None, 'env', [bool])
config.add('value2', None, 'env', [bool])
config.add('value3', True, 'env', ())
- config.init_values()
assert config.value1 is True
assert config.value2 is False
@@ -131,6 +350,37 @@ def test_overrides_boolean():
@mock.patch("sphinx.config.logger")
+def test_overrides_dict_str(logger):
+ config = Config({}, {'spam': 'lobster'})
+
+ config.add('spam', {'ham': 'eggs'}, 'env', {dict, str})
+
+ assert config.spam == {'ham': 'eggs'}
+
+ # assert len(caplog.records) == 1
+ # msg = caplog.messages[0]
+ assert logger.method_calls
+ msg = str(logger.method_calls[0].args[1])
+ assert msg == ("cannot override dictionary config setting 'spam', "
+ "ignoring (use 'spam.key=value' to set individual elements)")
+
+
+def test_callable_defer():
+ config = Config()
+ config.add('alias', lambda c: c.master_doc, '', str)
+
+ assert config.master_doc == 'index'
+ assert config.alias == 'index'
+
+ config.master_doc = 'contents'
+ assert config.alias == 'contents'
+
+ config.master_doc = 'master_doc'
+ config.alias = 'spam'
+ assert config.alias == 'spam'
+
+
+@mock.patch("sphinx.config.logger")
def test_errors_warnings(logger, tmp_path):
# test the error for syntax errors in the config file
(tmp_path / 'conf.py').write_text('project = \n', encoding='ascii')
@@ -141,7 +391,6 @@ def test_errors_warnings(logger, tmp_path):
# test the automatic conversion of 2.x only code in configs
(tmp_path / 'conf.py').write_text('project = u"Jägermeister"\n', encoding='utf8')
cfg = Config.read(tmp_path, {}, None)
- cfg.init_values()
assert cfg.project == 'Jägermeister'
assert logger.called is False
@@ -193,7 +442,6 @@ def test_config_eol(logger, tmp_path):
for eol in (b'\n', b'\r\n'):
configfile.write_bytes(b'project = "spam"' + eol)
cfg = Config.read(tmp_path, {}, None)
- cfg.init_values()
assert cfg.project == 'spam'
assert logger.called is False
@@ -248,7 +496,6 @@ TYPECHECK_WARNINGS = [
def test_check_types(logger, name, default, annotation, actual, warned):
config = Config({name: actual})
config.add(name, default, 'env', annotation or ())
- config.init_values()
check_confval_types(None, config)
assert logger.warning.called == warned
@@ -257,9 +504,9 @@ TYPECHECK_WARNING_MESSAGES = [
('value1', 'string', [str], ['foo', 'bar'],
"The config value `value1' has type `list'; expected `str'."),
('value1', 'string', [str, int], ['foo', 'bar'],
- "The config value `value1' has type `list'; expected `str' or `int'."),
+ "The config value `value1' has type `list'; expected `int' or `str'."),
('value1', 'string', [str, int, tuple], ['foo', 'bar'],
- "The config value `value1' has type `list'; expected `str', `int', or `tuple'."),
+ "The config value `value1' has type `list'; expected `int', `str', or `tuple'."),
]
@@ -268,7 +515,6 @@ TYPECHECK_WARNING_MESSAGES = [
def test_conf_warning_message(logger, name, default, annotation, actual, message):
config = Config({name: actual})
config.add(name, default, False, annotation or ())
- config.init_values()
check_confval_types(None, config)
assert logger.warning.called
assert logger.warning.call_args[0][0] == message
@@ -278,7 +524,6 @@ def test_conf_warning_message(logger, name, default, annotation, actual, message
def test_check_enum(logger):
config = Config()
config.add('value', 'default', False, ENUM('default', 'one', 'two'))
- config.init_values()
check_confval_types(None, config)
logger.warning.assert_not_called() # not warned
@@ -287,7 +532,6 @@ def test_check_enum(logger):
def test_check_enum_failed(logger):
config = Config({'value': 'invalid'})
config.add('value', 'default', False, ENUM('default', 'one', 'two'))
- config.init_values()
check_confval_types(None, config)
assert logger.warning.called
@@ -296,7 +540,6 @@ def test_check_enum_failed(logger):
def test_check_enum_for_list(logger):
config = Config({'value': ['one', 'two']})
config.add('value', 'default', False, ENUM('default', 'one', 'two'))
- config.init_values()
check_confval_types(None, config)
logger.warning.assert_not_called() # not warned
@@ -305,11 +548,18 @@ def test_check_enum_for_list(logger):
def test_check_enum_for_list_failed(logger):
config = Config({'value': ['one', 'two', 'invalid']})
config.add('value', 'default', False, ENUM('default', 'one', 'two'))
- config.init_values()
check_confval_types(None, config)
assert logger.warning.called
+@mock.patch("sphinx.config.logger")
+def test_check_any(logger):
+ config = Config({'value': None})
+ config.add('value', 'default', '', Any)
+ check_confval_types(None, config)
+ logger.warning.assert_not_called() # not warned
+
+
nitpick_warnings = [
"WARNING: py:const reference target not found: prefix.anything.postfix",
"WARNING: py:class reference target not found: prefix.anything",
@@ -320,7 +570,7 @@ nitpick_warnings = [
@pytest.mark.sphinx(testroot='nitpicky-warnings')
def test_nitpick_base(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
warning = warning.getvalue().strip().split('\n')
assert len(warning) == len(nitpick_warnings)
@@ -337,7 +587,7 @@ def test_nitpick_base(app, status, warning):
},
})
def test_nitpick_ignore(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert not len(warning.getvalue().strip())
@@ -348,7 +598,7 @@ def test_nitpick_ignore(app, status, warning):
],
})
def test_nitpick_ignore_regex1(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert not len(warning.getvalue().strip())
@@ -359,7 +609,7 @@ def test_nitpick_ignore_regex1(app, status, warning):
],
})
def test_nitpick_ignore_regex2(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert not len(warning.getvalue().strip())
@@ -376,7 +626,7 @@ def test_nitpick_ignore_regex2(app, status, warning):
],
})
def test_nitpick_ignore_regex_fullmatch(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
warning = warning.getvalue().strip().split('\n')
assert len(warning) == len(nitpick_warnings)
@@ -386,13 +636,11 @@ def test_nitpick_ignore_regex_fullmatch(app, status, warning):
def test_conf_py_language_none(tmp_path):
"""Regression test for #10474."""
-
# Given a conf.py file with language = None
(tmp_path / 'conf.py').write_text("language = None", encoding='utf-8')
# When we load conf.py into a Config object
cfg = Config.read(tmp_path, {}, None)
- cfg.init_values()
# Then the language is coerced to English
assert cfg.language == "en"
@@ -401,7 +649,6 @@ def test_conf_py_language_none(tmp_path):
@mock.patch("sphinx.config.logger")
def test_conf_py_language_none_warning(logger, tmp_path):
"""Regression test for #10474."""
-
# Given a conf.py file with language = None
(tmp_path / 'conf.py').write_text("language = None", encoding='utf-8')
@@ -418,13 +665,11 @@ def test_conf_py_language_none_warning(logger, tmp_path):
def test_conf_py_no_language(tmp_path):
"""Regression test for #10474."""
-
# Given a conf.py file with no language attribute
(tmp_path / 'conf.py').write_text("", encoding='utf-8')
# When we load conf.py into a Config object
cfg = Config.read(tmp_path, {}, None)
- cfg.init_values()
# Then the language is coerced to English
assert cfg.language == "en"
@@ -432,13 +677,11 @@ def test_conf_py_no_language(tmp_path):
def test_conf_py_nitpick_ignore_list(tmp_path):
"""Regression test for #11355."""
-
# Given a conf.py file with no language attribute
(tmp_path / 'conf.py').write_text("", encoding='utf-8')
# When we load conf.py into a Config object
cfg = Config.read(tmp_path, {}, None)
- cfg.init_values()
# Then the default nitpick_ignore[_regex] is an empty list
assert cfg.nitpick_ignore == []
@@ -465,7 +708,7 @@ def source_date_year(request, monkeypatch):
@pytest.mark.sphinx(testroot='copyright-multiline')
def test_multi_line_copyright(source_date_year, app, monkeypatch):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf-8')
@@ -515,3 +758,48 @@ def test_multi_line_copyright(source_date_year, app, monkeypatch):
f' \n'
f' &#169; Copyright 2022-{source_date_year}, Eve.'
) in content
+
+
+@pytest.mark.parametrize(('conf_copyright', 'expected_copyright'), [
+ ('1970', '{current_year}'),
+ # https://github.com/sphinx-doc/sphinx/issues/11913
+ ('1970-1990', '1970-{current_year}'),
+ ('1970-1990 Alice', '1970-{current_year} Alice'),
+])
+def test_correct_copyright_year(conf_copyright, expected_copyright, source_date_year):
+ config = Config({}, {'copyright': conf_copyright})
+ correct_copyright_year(_app=None, config=config)
+ actual_copyright = config['copyright']
+
+ if source_date_year is None:
+ expected_copyright = conf_copyright
+ else:
+ expected_copyright = expected_copyright.format(current_year=source_date_year)
+ assert actual_copyright == expected_copyright
+
+
+def test_gettext_compact_command_line_true():
+ config = Config({}, {'gettext_compact': '1'})
+ config.add('gettext_compact', True, '', {bool, str})
+ _gettext_compact_validator(..., config)
+
+ # regression test for #8549 (-D gettext_compact=1)
+ assert config.gettext_compact is True
+
+
+def test_gettext_compact_command_line_false():
+ config = Config({}, {'gettext_compact': '0'})
+ config.add('gettext_compact', True, '', {bool, str})
+ _gettext_compact_validator(..., config)
+
+ # regression test for #8549 (-D gettext_compact=0)
+ assert config.gettext_compact is False
+
+
+def test_gettext_compact_command_line_str():
+ config = Config({}, {'gettext_compact': 'spam'})
+ config.add('gettext_compact', True, '', {bool, str})
+ _gettext_compact_validator(..., config)
+
+ # regression test for #8549 (-D gettext_compact=spam)
+ assert config.gettext_compact == 'spam'
diff --git a/tests/test_correct_year.py b/tests/test_config/test_correct_year.py
index 4ef77a6..4ef77a6 100644
--- a/tests/test_correct_year.py
+++ b/tests/test_config/test_correct_year.py
diff --git a/tests/test_directives/__init__.py b/tests/test_directives/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_directives/__init__.py
diff --git a/tests/test_directive_code.py b/tests/test_directives/test_directive_code.py
index df7de57..2783d8f 100644
--- a/tests/test_directive_code.py
+++ b/tests/test_directives/test_directive_code.py
@@ -295,7 +295,7 @@ def test_LiteralIncludeReader_diff(testroot, literal_inc_path):
@pytest.mark.sphinx('xml', testroot='directive-code')
def test_code_block(app, status, warning):
- app.builder.build('index')
+ app.build(filenames=[app.srcdir / 'index.rst'])
et = etree_parse(app.outdir / 'index.xml')
secs = et.findall('./section/section')
code_block = secs[0].findall('literal_block')
@@ -311,13 +311,13 @@ def test_code_block(app, status, warning):
@pytest.mark.sphinx('html', testroot='directive-code')
def test_force_option(app, status, warning):
- app.builder.build(['force'])
+ app.build(filenames=[app.srcdir / 'force.rst'])
assert 'force.rst' not in warning.getvalue()
@pytest.mark.sphinx('html', testroot='directive-code')
def test_code_block_caption_html(app, status, warning):
- app.builder.build(['caption'])
+ app.build(filenames=[app.srcdir / 'caption.rst'])
html = (app.outdir / 'caption.html').read_text(encoding='utf8')
caption = ('<div class="code-block-caption">'
'<span class="caption-number">Listing 1 </span>'
@@ -329,7 +329,7 @@ def test_code_block_caption_html(app, status, warning):
@pytest.mark.sphinx('latex', testroot='directive-code')
def test_code_block_caption_latex(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
latex = (app.outdir / 'python.tex').read_text(encoding='utf8')
caption = '\\sphinxSetupCaptionForVerbatim{caption \\sphinxstyleemphasis{test} rb}'
label = '\\def\\sphinxLiteralBlockLabel{\\label{\\detokenize{caption:id1}}}'
@@ -342,7 +342,7 @@ def test_code_block_caption_latex(app, status, warning):
@pytest.mark.sphinx('latex', testroot='directive-code')
def test_code_block_namedlink_latex(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
latex = (app.outdir / 'python.tex').read_text(encoding='utf8')
label1 = '\\def\\sphinxLiteralBlockLabel{\\label{\\detokenize{caption:name-test-rb}}}'
link1 = '\\hyperref[\\detokenize{caption:name-test-rb}]'\
@@ -359,7 +359,7 @@ def test_code_block_namedlink_latex(app, status, warning):
@pytest.mark.sphinx('latex', testroot='directive-code')
def test_code_block_emphasize_latex(app, status, warning):
- app.builder.build(['emphasize'])
+ app.build(filenames=[app.srcdir / 'emphasize.rst'])
latex = (app.outdir / 'python.tex').read_text(encoding='utf8').replace('\r\n', '\n')
includes = '\\fvset{hllines={, 5, 6, 13, 14, 15, 24, 25, 26,}}%\n'
assert includes in latex
@@ -369,7 +369,7 @@ def test_code_block_emphasize_latex(app, status, warning):
@pytest.mark.sphinx('xml', testroot='directive-code')
def test_literal_include(app, status, warning):
- app.builder.build(['index'])
+ app.build(filenames=[app.srcdir / 'index.rst'])
et = etree_parse(app.outdir / 'index.xml')
secs = et.findall('./section/section')
literal_include = secs[1].findall('literal_block')
@@ -381,7 +381,7 @@ def test_literal_include(app, status, warning):
@pytest.mark.sphinx('xml', testroot='directive-code')
def test_literal_include_block_start_with_comment_or_brank(app, status, warning):
- app.builder.build(['python'])
+ app.build(filenames=[app.srcdir / 'python.rst'])
et = etree_parse(app.outdir / 'python.xml')
secs = et.findall('./section/section')
literal_include = secs[0].findall('literal_block')
@@ -405,7 +405,7 @@ def test_literal_include_block_start_with_comment_or_brank(app, status, warning)
@pytest.mark.sphinx('html', testroot='directive-code')
def test_literal_include_linenos(app, status, warning):
- app.builder.build(['linenos'])
+ app.build(filenames=[app.srcdir / 'linenos.rst'])
html = (app.outdir / 'linenos.html').read_text(encoding='utf8')
# :linenos:
@@ -423,7 +423,7 @@ def test_literal_include_linenos(app, status, warning):
@pytest.mark.sphinx('latex', testroot='directive-code')
def test_literalinclude_file_whole_of_emptyline(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
latex = (app.outdir / 'python.tex').read_text(encoding='utf8').replace('\r\n', '\n')
includes = (
'\\begin{sphinxVerbatim}'
@@ -437,7 +437,7 @@ def test_literalinclude_file_whole_of_emptyline(app, status, warning):
@pytest.mark.sphinx('html', testroot='directive-code')
def test_literalinclude_caption_html(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
html = (app.outdir / 'caption.html').read_text(encoding='utf8')
caption = ('<div class="code-block-caption">'
'<span class="caption-number">Listing 2 </span>'
@@ -449,7 +449,7 @@ def test_literalinclude_caption_html(app, status, warning):
@pytest.mark.sphinx('latex', testroot='directive-code')
def test_literalinclude_caption_latex(app, status, warning):
- app.builder.build('index')
+ app.build(filenames='index')
latex = (app.outdir / 'python.tex').read_text(encoding='utf8')
caption = '\\sphinxSetupCaptionForVerbatim{caption \\sphinxstylestrong{test} py}'
label = '\\def\\sphinxLiteralBlockLabel{\\label{\\detokenize{caption:id2}}}'
@@ -462,7 +462,7 @@ def test_literalinclude_caption_latex(app, status, warning):
@pytest.mark.sphinx('latex', testroot='directive-code')
def test_literalinclude_namedlink_latex(app, status, warning):
- app.builder.build('index')
+ app.build(filenames='index')
latex = (app.outdir / 'python.tex').read_text(encoding='utf8')
label1 = '\\def\\sphinxLiteralBlockLabel{\\label{\\detokenize{caption:name-test-py}}}'
link1 = '\\hyperref[\\detokenize{caption:name-test-py}]'\
@@ -479,7 +479,7 @@ def test_literalinclude_namedlink_latex(app, status, warning):
@pytest.mark.sphinx('xml', testroot='directive-code')
def test_literalinclude_classes(app, status, warning):
- app.builder.build(['classes'])
+ app.build(filenames=[app.srcdir / 'classes.rst'])
et = etree_parse(app.outdir / 'classes.xml')
secs = et.findall('./section/section')
@@ -496,7 +496,7 @@ def test_literalinclude_classes(app, status, warning):
@pytest.mark.sphinx('xml', testroot='directive-code')
def test_literalinclude_pydecorators(app, status, warning):
- app.builder.build(['py-decorators'])
+ app.build(filenames=[app.srcdir / 'py-decorators.rst'])
et = etree_parse(app.outdir / 'py-decorators.xml')
secs = et.findall('./section/section')
@@ -537,7 +537,7 @@ def test_literalinclude_pydecorators(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='directive-code')
def test_code_block_highlighted(app, status, warning):
- app.builder.build(['highlight'])
+ app.build(filenames=[app.srcdir / 'highlight.rst'])
doctree = app.env.get_doctree('highlight')
codeblocks = list(doctree.findall(nodes.literal_block))
@@ -549,7 +549,7 @@ def test_code_block_highlighted(app, status, warning):
@pytest.mark.sphinx('html', testroot='directive-code')
def test_linenothreshold(app, status, warning):
- app.builder.build(['linenothreshold'])
+ app.build(filenames=[app.srcdir / 'linenothreshold.rst'])
html = (app.outdir / 'linenothreshold.html').read_text(encoding='utf8')
# code-block using linenothreshold
@@ -570,7 +570,7 @@ def test_linenothreshold(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='directive-code')
def test_code_block_dedent(app, status, warning):
- app.builder.build(['dedent'])
+ app.build(filenames=[app.srcdir / 'dedent.rst'])
doctree = app.env.get_doctree('dedent')
codeblocks = list(doctree.findall(nodes.literal_block))
# Note: comparison string should not have newlines at the beginning or end
diff --git a/tests/test_directive_object_description.py b/tests/test_directives/test_directive_object_description.py
index f2c9f9d..f2c9f9d 100644
--- a/tests/test_directive_object_description.py
+++ b/tests/test_directives/test_directive_object_description.py
diff --git a/tests/test_directive_only.py b/tests/test_directives/test_directive_only.py
index 2e9ea63..bf03c7b 100644
--- a/tests/test_directive_only.py
+++ b/tests/test_directives/test_directive_only.py
@@ -34,7 +34,7 @@ def test_sectioning(app, status, warning):
'Unnumbered section: %r' % subsect[0]
testsects(prefix + str(i + 1) + '.', subsect, indent + 4)
- app.builder.build(['only'])
+ app.build(filenames=[app.srcdir / 'only.rst'])
doctree = app.env.get_doctree('only')
app.env.apply_post_transforms(doctree, 'only')
@@ -43,4 +43,4 @@ def test_sectioning(app, status, warning):
for i, s in enumerate(parts):
testsects(str(i + 1) + '.', s, 4)
assert len(parts) == 4, 'Expected 4 document level headings, got:\n%s' % \
- '\n'.join([p[0] for p in parts])
+ '\n'.join(p[0] for p in parts)
diff --git a/tests/test_directives/test_directive_option.py b/tests/test_directives/test_directive_option.py
new file mode 100644
index 0000000..76448cd
--- /dev/null
+++ b/tests/test_directives/test_directive_option.py
@@ -0,0 +1,40 @@
+import pytest
+
+
+@pytest.mark.sphinx('html', testroot='root',
+ confoverrides={'option_emphasise_placeholders': True})
+def test_option_emphasise_placeholders(app, status, warning):
+ app.build()
+ content = (app.outdir / 'objects.html').read_text(encoding='utf8')
+ assert '<em><span class="pre">TYPE</span></em>' in content
+ assert '{TYPE}' not in content
+ assert ('<em><span class="pre">WHERE</span></em>'
+ '<span class="pre">-</span>'
+ '<em><span class="pre">COUNT</span></em>' in content)
+ assert '<span class="pre">{{value}}</span>' in content
+ assert ('<span class="pre">--plugin.option</span></span>'
+ '<a class="headerlink" href="#cmdoption-perl-plugin.option" title="Link to this definition">¶</a></dt>') in content
+
+
+@pytest.mark.sphinx('html', testroot='root')
+def test_option_emphasise_placeholders_default(app, status, warning):
+ app.build()
+ content = (app.outdir / 'objects.html').read_text(encoding='utf8')
+ assert '<span class="pre">={TYPE}</span>' in content
+ assert '<span class="pre">={WHERE}-{COUNT}</span></span>' in content
+ assert '<span class="pre">{client_name}</span>' in content
+ assert ('<span class="pre">--plugin.option</span></span>'
+ '<span class="sig-prename descclassname"></span>'
+ '<a class="headerlink" href="#cmdoption-perl-plugin.option" title="Link to this definition">¶</a></dt>') in content
+
+
+@pytest.mark.sphinx('html', testroot='root')
+def test_option_reference_with_value(app, status, warning):
+ app.build()
+ content = (app.outdir / 'objects.html').read_text(encoding='utf-8')
+ assert ('<span class="pre">-mapi</span></span><span class="sig-prename descclassname">'
+ '</span><a class="headerlink" href="#cmdoption-git-commit-mapi"') in content
+ assert 'first option <a class="reference internal" href="#cmdoption-git-commit-mapi">' in content
+ assert ('<a class="reference internal" href="#cmdoption-git-commit-mapi">'
+ '<code class="xref std std-option docutils literal notranslate"><span class="pre">-mapi[=xxx]</span></code></a>') in content
+ assert '<span class="pre">-mapi</span> <span class="pre">with_space</span>' in content
diff --git a/tests/test_directive_other.py b/tests/test_directives/test_directive_other.py
index 1feb251..1feb251 100644
--- a/tests/test_directive_other.py
+++ b/tests/test_directives/test_directive_other.py
diff --git a/tests/test_directive_patch.py b/tests/test_directives/test_directive_patch.py
index f4eb8f9..f4eb8f9 100644
--- a/tests/test_directive_patch.py
+++ b/tests/test_directives/test_directive_patch.py
diff --git a/tests/test_directives_no_typesetting.py b/tests/test_directives/test_directives_no_typesetting.py
index fd101fb..fd101fb 100644
--- a/tests/test_directives_no_typesetting.py
+++ b/tests/test_directives/test_directives_no_typesetting.py
diff --git a/tests/test_domain_py.py b/tests/test_domain_py.py
deleted file mode 100644
index c5a044b..0000000
--- a/tests/test_domain_py.py
+++ /dev/null
@@ -1,2123 +0,0 @@
-"""Tests the Python Domain"""
-
-from __future__ import annotations
-
-import re
-from unittest.mock import Mock
-
-import docutils.utils
-import pytest
-from docutils import nodes
-
-from sphinx import addnodes
-from sphinx.addnodes import (
- desc,
- desc_addname,
- desc_annotation,
- desc_content,
- desc_name,
- desc_optional,
- desc_parameter,
- desc_parameterlist,
- desc_returns,
- desc_sig_keyword,
- desc_sig_literal_number,
- desc_sig_literal_string,
- desc_sig_name,
- desc_sig_operator,
- desc_sig_punctuation,
- desc_sig_space,
- desc_signature,
- desc_type_parameter,
- desc_type_parameter_list,
- pending_xref,
-)
-from sphinx.domains import IndexEntry
-from sphinx.domains.python import (
- PythonDomain,
- PythonModuleIndex,
- _parse_annotation,
- _pseudo_parse_arglist,
- py_sig_re,
-)
-from sphinx.testing import restructuredtext
-from sphinx.testing.util import assert_node
-from sphinx.writers.text import STDINDENT
-
-
-def parse(sig):
- m = py_sig_re.match(sig)
- if m is None:
- raise ValueError
- name_prefix, tp_list, name, arglist, retann = m.groups()
- signode = addnodes.desc_signature(sig, '')
- _pseudo_parse_arglist(signode, arglist)
- return signode.astext()
-
-
-def test_function_signatures():
- rv = parse('func(a=1) -> int object')
- assert rv == '(a=1)'
-
- rv = parse('func(a=1, [b=None])')
- assert rv == '(a=1, [b=None])'
-
- rv = parse('func(a=1[, b=None])')
- assert rv == '(a=1, [b=None])'
-
- rv = parse("compile(source : string, filename, symbol='file')")
- assert rv == "(source : string, filename, symbol='file')"
-
- rv = parse('func(a=[], [b=None])')
- assert rv == '(a=[], [b=None])'
-
- rv = parse('func(a=[][, b=None])')
- assert rv == '(a=[], [b=None])'
-
-
-@pytest.mark.sphinx('dummy', testroot='domain-py')
-def test_domain_py_xrefs(app, status, warning):
- """Domain objects have correct prefixes when looking up xrefs"""
- app.builder.build_all()
-
- def assert_refnode(node, module_name, class_name, target, reftype=None,
- domain='py'):
- attributes = {
- 'refdomain': domain,
- 'reftarget': target,
- }
- if reftype is not None:
- attributes['reftype'] = reftype
- if module_name is not False:
- attributes['py:module'] = module_name
- if class_name is not False:
- attributes['py:class'] = class_name
- assert_node(node, **attributes)
-
- doctree = app.env.get_doctree('roles')
- refnodes = list(doctree.findall(pending_xref))
- assert_refnode(refnodes[0], None, None, 'TopLevel', 'class')
- assert_refnode(refnodes[1], None, None, 'top_level', 'meth')
- assert_refnode(refnodes[2], None, 'NestedParentA', 'child_1', 'meth')
- assert_refnode(refnodes[3], None, 'NestedParentA', 'NestedChildA.subchild_2', 'meth')
- assert_refnode(refnodes[4], None, 'NestedParentA', 'child_2', 'meth')
- assert_refnode(refnodes[5], False, 'NestedParentA', 'any_child', domain='')
- assert_refnode(refnodes[6], None, 'NestedParentA', 'NestedChildA', 'class')
- assert_refnode(refnodes[7], None, 'NestedParentA.NestedChildA', 'subchild_2', 'meth')
- assert_refnode(refnodes[8], None, 'NestedParentA.NestedChildA',
- 'NestedParentA.child_1', 'meth')
- assert_refnode(refnodes[9], None, 'NestedParentA', 'NestedChildA.subchild_1', 'meth')
- assert_refnode(refnodes[10], None, 'NestedParentB', 'child_1', 'meth')
- assert_refnode(refnodes[11], None, 'NestedParentB', 'NestedParentB', 'class')
- assert_refnode(refnodes[12], None, None, 'NestedParentA.NestedChildA', 'class')
- assert len(refnodes) == 13
-
- doctree = app.env.get_doctree('module')
- refnodes = list(doctree.findall(pending_xref))
- assert_refnode(refnodes[0], 'module_a.submodule', None,
- 'ModTopLevel', 'class')
- assert_refnode(refnodes[1], 'module_a.submodule', 'ModTopLevel',
- 'mod_child_1', 'meth')
- assert_refnode(refnodes[2], 'module_a.submodule', 'ModTopLevel',
- 'ModTopLevel.mod_child_1', 'meth')
- assert_refnode(refnodes[3], 'module_a.submodule', 'ModTopLevel',
- 'mod_child_2', 'meth')
- assert_refnode(refnodes[4], 'module_a.submodule', 'ModTopLevel',
- 'module_a.submodule.ModTopLevel.mod_child_1', 'meth')
- assert_refnode(refnodes[5], 'module_a.submodule', 'ModTopLevel',
- 'prop', 'attr')
- assert_refnode(refnodes[6], 'module_a.submodule', 'ModTopLevel',
- 'prop', 'meth')
- assert_refnode(refnodes[7], 'module_b.submodule', None,
- 'ModTopLevel', 'class')
- assert_refnode(refnodes[8], 'module_b.submodule', 'ModTopLevel',
- 'ModNoModule', 'class')
- assert_refnode(refnodes[9], False, False, 'int', 'class')
- assert_refnode(refnodes[10], False, False, 'tuple', 'class')
- assert_refnode(refnodes[11], False, False, 'str', 'class')
- assert_refnode(refnodes[12], False, False, 'float', 'class')
- assert_refnode(refnodes[13], False, False, 'list', 'class')
- assert_refnode(refnodes[14], False, False, 'ModTopLevel', 'class')
- assert_refnode(refnodes[15], False, False, 'index', 'doc', domain='std')
- assert len(refnodes) == 16
-
- doctree = app.env.get_doctree('module_option')
- refnodes = list(doctree.findall(pending_xref))
- print(refnodes)
- print(refnodes[0])
- print(refnodes[1])
- assert_refnode(refnodes[0], 'test.extra', 'B', 'foo', 'meth')
- assert_refnode(refnodes[1], 'test.extra', 'B', 'foo', 'meth')
- assert len(refnodes) == 2
-
-
-@pytest.mark.sphinx('html', testroot='domain-py')
-def test_domain_py_xrefs_abbreviations(app, status, warning):
- app.builder.build_all()
-
- content = (app.outdir / 'abbr.html').read_text(encoding='utf8')
- assert re.search(r'normal: <a .* href="module.html#module_a.submodule.ModTopLevel.'
- r'mod_child_1" .*><.*>module_a.submodule.ModTopLevel.mod_child_1\(\)'
- r'<.*></a>',
- content)
- assert re.search(r'relative: <a .* href="module.html#module_a.submodule.ModTopLevel.'
- r'mod_child_1" .*><.*>ModTopLevel.mod_child_1\(\)<.*></a>',
- content)
- assert re.search(r'short name: <a .* href="module.html#module_a.submodule.ModTopLevel.'
- r'mod_child_1" .*><.*>mod_child_1\(\)<.*></a>',
- content)
- assert re.search(r'relative \+ short name: <a .* href="module.html#module_a.submodule.'
- r'ModTopLevel.mod_child_1" .*><.*>mod_child_1\(\)<.*></a>',
- content)
- assert re.search(r'short name \+ relative: <a .* href="module.html#module_a.submodule.'
- r'ModTopLevel.mod_child_1" .*><.*>mod_child_1\(\)<.*></a>',
- content)
-
-
-@pytest.mark.sphinx('dummy', testroot='domain-py')
-def test_domain_py_objects(app, status, warning):
- app.builder.build_all()
-
- modules = app.env.domains['py'].data['modules']
- objects = app.env.domains['py'].data['objects']
-
- assert 'module_a.submodule' in modules
- assert 'module_a.submodule' in objects
- assert 'module_b.submodule' in modules
- assert 'module_b.submodule' in objects
-
- assert objects['module_a.submodule.ModTopLevel'][2] == 'class'
- assert objects['module_a.submodule.ModTopLevel.mod_child_1'][2] == 'method'
- assert objects['module_a.submodule.ModTopLevel.mod_child_2'][2] == 'method'
- assert 'ModTopLevel.ModNoModule' not in objects
- assert objects['ModNoModule'][2] == 'class'
- assert objects['module_b.submodule.ModTopLevel'][2] == 'class'
-
- assert objects['TopLevel'][2] == 'class'
- assert objects['top_level'][2] == 'method'
- assert objects['NestedParentA'][2] == 'class'
- assert objects['NestedParentA.child_1'][2] == 'method'
- assert objects['NestedParentA.any_child'][2] == 'method'
- assert objects['NestedParentA.NestedChildA'][2] == 'class'
- assert objects['NestedParentA.NestedChildA.subchild_1'][2] == 'method'
- assert objects['NestedParentA.NestedChildA.subchild_2'][2] == 'method'
- assert objects['NestedParentA.child_2'][2] == 'method'
- assert objects['NestedParentB'][2] == 'class'
- assert objects['NestedParentB.child_1'][2] == 'method'
-
-
-@pytest.mark.sphinx('html', testroot='domain-py')
-def test_resolve_xref_for_properties(app, status, warning):
- app.builder.build_all()
-
- content = (app.outdir / 'module.html').read_text(encoding='utf8')
- assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"'
- ' title="module_a.submodule.ModTopLevel.prop">'
- '<code class="xref py py-attr docutils literal notranslate"><span class="pre">'
- 'prop</span> <span class="pre">attribute</span></code></a>' in content)
- assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"'
- ' title="module_a.submodule.ModTopLevel.prop">'
- '<code class="xref py py-meth docutils literal notranslate"><span class="pre">'
- 'prop</span> <span class="pre">method</span></code></a>' in content)
- assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"'
- ' title="module_a.submodule.ModTopLevel.prop">'
- '<code class="xref py py-attr docutils literal notranslate"><span class="pre">'
- 'prop</span> <span class="pre">attribute</span></code></a>' in content)
-
-
-@pytest.mark.sphinx('dummy', testroot='domain-py')
-def test_domain_py_find_obj(app, status, warning):
-
- def find_obj(modname, prefix, obj_name, obj_type, searchmode=0):
- return app.env.domains['py'].find_obj(
- app.env, modname, prefix, obj_name, obj_type, searchmode)
-
- app.builder.build_all()
-
- assert (find_obj(None, None, 'NONEXISTANT', 'class') == [])
- assert (find_obj(None, None, 'NestedParentA', 'class') ==
- [('NestedParentA', ('roles', 'NestedParentA', 'class', False))])
- assert (find_obj(None, None, 'NestedParentA.NestedChildA', 'class') ==
- [('NestedParentA.NestedChildA',
- ('roles', 'NestedParentA.NestedChildA', 'class', False))])
- assert (find_obj(None, 'NestedParentA', 'NestedChildA', 'class') ==
- [('NestedParentA.NestedChildA',
- ('roles', 'NestedParentA.NestedChildA', 'class', False))])
- assert (find_obj(None, None, 'NestedParentA.NestedChildA.subchild_1', 'meth') ==
- [('NestedParentA.NestedChildA.subchild_1',
- ('roles', 'NestedParentA.NestedChildA.subchild_1', 'method', False))])
- assert (find_obj(None, 'NestedParentA', 'NestedChildA.subchild_1', 'meth') ==
- [('NestedParentA.NestedChildA.subchild_1',
- ('roles', 'NestedParentA.NestedChildA.subchild_1', 'method', False))])
- assert (find_obj(None, 'NestedParentA.NestedChildA', 'subchild_1', 'meth') ==
- [('NestedParentA.NestedChildA.subchild_1',
- ('roles', 'NestedParentA.NestedChildA.subchild_1', 'method', False))])
-
-
-@pytest.mark.sphinx('html', testroot='domain-py', freshenv=True)
-def test_domain_py_canonical(app, status, warning):
- app.builder.build_all()
-
- content = (app.outdir / 'canonical.html').read_text(encoding='utf8')
- assert ('<a class="reference internal" href="#canonical.Foo" title="canonical.Foo">'
- '<code class="xref py py-class docutils literal notranslate">'
- '<span class="pre">Foo</span></code></a>' in content)
- assert warning.getvalue() == ''
-
-
-def test_get_full_qualified_name():
- env = Mock(domaindata={})
- domain = PythonDomain(env)
-
- # non-python references
- node = nodes.reference()
- assert domain.get_full_qualified_name(node) is None
-
- # simple reference
- node = nodes.reference(reftarget='func')
- assert domain.get_full_qualified_name(node) == 'func'
-
- # with py:module context
- kwargs = {'py:module': 'module1'}
- node = nodes.reference(reftarget='func', **kwargs)
- assert domain.get_full_qualified_name(node) == 'module1.func'
-
- # with py:class context
- kwargs = {'py:class': 'Class'}
- node = nodes.reference(reftarget='func', **kwargs)
- assert domain.get_full_qualified_name(node) == 'Class.func'
-
- # with both py:module and py:class context
- kwargs = {'py:module': 'module1', 'py:class': 'Class'}
- node = nodes.reference(reftarget='func', **kwargs)
- assert domain.get_full_qualified_name(node) == 'module1.Class.func'
-
-
-def test_parse_annotation(app):
- doctree = _parse_annotation("int", app.env)
- assert_node(doctree, ([pending_xref, "int"],))
- assert_node(doctree[0], pending_xref, refdomain="py", reftype="class", reftarget="int")
-
- doctree = _parse_annotation("List[int]", app.env)
- assert_node(doctree, ([pending_xref, "List"],
- [desc_sig_punctuation, "["],
- [pending_xref, "int"],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("Tuple[int, int]", app.env)
- assert_node(doctree, ([pending_xref, "Tuple"],
- [desc_sig_punctuation, "["],
- [pending_xref, "int"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [pending_xref, "int"],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("Tuple[()]", app.env)
- assert_node(doctree, ([pending_xref, "Tuple"],
- [desc_sig_punctuation, "["],
- [desc_sig_punctuation, "("],
- [desc_sig_punctuation, ")"],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("Tuple[int, ...]", app.env)
- assert_node(doctree, ([pending_xref, "Tuple"],
- [desc_sig_punctuation, "["],
- [pending_xref, "int"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [desc_sig_punctuation, "..."],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("Callable[[int, int], int]", app.env)
- assert_node(doctree, ([pending_xref, "Callable"],
- [desc_sig_punctuation, "["],
- [desc_sig_punctuation, "["],
- [pending_xref, "int"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [pending_xref, "int"],
- [desc_sig_punctuation, "]"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [pending_xref, "int"],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("Callable[[], int]", app.env)
- assert_node(doctree, ([pending_xref, "Callable"],
- [desc_sig_punctuation, "["],
- [desc_sig_punctuation, "["],
- [desc_sig_punctuation, "]"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [pending_xref, "int"],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("List[None]", app.env)
- assert_node(doctree, ([pending_xref, "List"],
- [desc_sig_punctuation, "["],
- [pending_xref, "None"],
- [desc_sig_punctuation, "]"]))
-
- # None type makes an object-reference (not a class reference)
- doctree = _parse_annotation("None", app.env)
- assert_node(doctree, ([pending_xref, "None"],))
- assert_node(doctree[0], pending_xref, refdomain="py", reftype="obj", reftarget="None")
-
- # Literal type makes an object-reference (not a class reference)
- doctree = _parse_annotation("typing.Literal['a', 'b']", app.env)
- assert_node(doctree, ([pending_xref, "Literal"],
- [desc_sig_punctuation, "["],
- [desc_sig_literal_string, "'a'"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [desc_sig_literal_string, "'b'"],
- [desc_sig_punctuation, "]"]))
- assert_node(doctree[0], pending_xref, refdomain="py", reftype="obj", reftarget="typing.Literal")
-
-
-def test_parse_annotation_suppress(app):
- doctree = _parse_annotation("~typing.Dict[str, str]", app.env)
- assert_node(doctree, ([pending_xref, "Dict"],
- [desc_sig_punctuation, "["],
- [pending_xref, "str"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [pending_xref, "str"],
- [desc_sig_punctuation, "]"]))
- assert_node(doctree[0], pending_xref, refdomain="py", reftype="obj", reftarget="typing.Dict")
-
-
-def test_parse_annotation_Literal(app):
- doctree = _parse_annotation("Literal[True, False]", app.env)
- assert_node(doctree, ([pending_xref, "Literal"],
- [desc_sig_punctuation, "["],
- [desc_sig_keyword, "True"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [desc_sig_keyword, "False"],
- [desc_sig_punctuation, "]"]))
-
- doctree = _parse_annotation("typing.Literal[0, 1, 'abc']", app.env)
- assert_node(doctree, ([pending_xref, "Literal"],
- [desc_sig_punctuation, "["],
- [desc_sig_literal_number, "0"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [desc_sig_literal_number, "1"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [desc_sig_literal_string, "'abc'"],
- [desc_sig_punctuation, "]"]))
-
-
-def test_pyfunction_signature(app):
- text = ".. py:function:: hello(name: str) -> str"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"])],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, desc_parameter, ([desc_sig_name, "name"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"])])
-
-
-def test_pyfunction_signature_full(app):
- text = (".. py:function:: hello(a: str, b = 1, *args: str, "
- "c: bool = True, d: tuple = (1, 2), **kwargs: str) -> str")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"])],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "a"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [desc_sig_name, pending_xref, "str"])],
- [desc_parameter, ([desc_sig_name, "b"],
- [desc_sig_operator, "="],
- [nodes.inline, "1"])],
- [desc_parameter, ([desc_sig_operator, "*"],
- [desc_sig_name, "args"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [desc_sig_name, pending_xref, "str"])],
- [desc_parameter, ([desc_sig_name, "c"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [desc_sig_name, pending_xref, "bool"],
- desc_sig_space,
- [desc_sig_operator, "="],
- desc_sig_space,
- [nodes.inline, "True"])],
- [desc_parameter, ([desc_sig_name, "d"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [desc_sig_name, pending_xref, "tuple"],
- desc_sig_space,
- [desc_sig_operator, "="],
- desc_sig_space,
- [nodes.inline, "(1, 2)"])],
- [desc_parameter, ([desc_sig_operator, "**"],
- [desc_sig_name, "kwargs"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [desc_sig_name, pending_xref, "str"])])])
- # case: separator at head
- text = ".. py:function:: hello(*, a)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, nodes.inline, "*"],
- [desc_parameter, desc_sig_name, "a"])])
-
- # case: separator in the middle
- text = ".. py:function:: hello(a, /, b, *, c)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, desc_sig_name, "a"],
- [desc_parameter, desc_sig_operator, "/"],
- [desc_parameter, desc_sig_name, "b"],
- [desc_parameter, desc_sig_operator, "*"],
- [desc_parameter, desc_sig_name, "c"])])
-
- # case: separator in the middle (2)
- text = ".. py:function:: hello(a, /, *, b)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, desc_sig_name, "a"],
- [desc_parameter, desc_sig_operator, "/"],
- [desc_parameter, desc_sig_operator, "*"],
- [desc_parameter, desc_sig_name, "b"])])
-
- # case: separator at tail
- text = ".. py:function:: hello(a, /)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, desc_sig_name, "a"],
- [desc_parameter, desc_sig_operator, "/"])])
-
-
-def test_pyfunction_with_unary_operators(app):
- text = ".. py:function:: menu(egg=+1, bacon=-1, sausage=~1, spam=not spam)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "egg"],
- [desc_sig_operator, "="],
- [nodes.inline, "+1"])],
- [desc_parameter, ([desc_sig_name, "bacon"],
- [desc_sig_operator, "="],
- [nodes.inline, "-1"])],
- [desc_parameter, ([desc_sig_name, "sausage"],
- [desc_sig_operator, "="],
- [nodes.inline, "~1"])],
- [desc_parameter, ([desc_sig_name, "spam"],
- [desc_sig_operator, "="],
- [nodes.inline, "not spam"])])])
-
-
-def test_pyfunction_with_binary_operators(app):
- text = ".. py:function:: menu(spam=2**64)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "spam"],
- [desc_sig_operator, "="],
- [nodes.inline, "2**64"])])])
-
-
-def test_pyfunction_with_number_literals(app):
- text = ".. py:function:: hello(age=0x10, height=1_6_0)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "age"],
- [desc_sig_operator, "="],
- [nodes.inline, "0x10"])],
- [desc_parameter, ([desc_sig_name, "height"],
- [desc_sig_operator, "="],
- [nodes.inline, "1_6_0"])])])
-
-
-def test_pyfunction_with_union_type_operator(app):
- text = ".. py:function:: hello(age: int | None)"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0][1],
- [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "age"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [desc_sig_name, ([pending_xref, "int"],
- desc_sig_space,
- [desc_sig_punctuation, "|"],
- desc_sig_space,
- [pending_xref, "None"])])])])
-
-
-def test_optional_pyfunction_signature(app):
- text = ".. py:function:: compile(source [, filename [, symbol]]) -> ast object"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "compile"],
- desc_parameterlist,
- [desc_returns, pending_xref, "ast object"])],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1],
- ([desc_parameter, ([desc_sig_name, "source"])],
- [desc_optional, ([desc_parameter, ([desc_sig_name, "filename"])],
- [desc_optional, desc_parameter, ([desc_sig_name, "symbol"])])]))
-
-
-def test_pyexception_signature(app):
- text = ".. py:exception:: builtins.IOError"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ('exception', desc_sig_space)],
- [desc_addname, "builtins."],
- [desc_name, "IOError"])],
- desc_content)]))
- assert_node(doctree[1], desc, desctype="exception",
- domain="py", objtype="exception", no_index=False)
-
-
-def test_pydata_signature(app):
- text = (".. py:data:: version\n"
- " :type: int\n"
- " :value: 1\n")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "version"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "int"])],
- [desc_annotation, (
- desc_sig_space,
- [desc_sig_punctuation, '='],
- desc_sig_space,
- "1")],
- )],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="data",
- domain="py", objtype="data", no_index=False)
-
-
-def test_pydata_signature_old(app):
- text = (".. py:data:: version\n"
- " :annotation: = 1\n")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "version"],
- [desc_annotation, (desc_sig_space,
- "= 1")])],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="data",
- domain="py", objtype="data", no_index=False)
-
-
-def test_pydata_with_union_type_operator(app):
- text = (".. py:data:: version\n"
- " :type: int | str")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree[1][0],
- ([desc_name, "version"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "int"],
- desc_sig_space,
- [desc_sig_punctuation, "|"],
- desc_sig_space,
- [pending_xref, "str"])]))
-
-
-def test_pyobject_prefix(app):
- text = (".. py:class:: Foo\n"
- "\n"
- " .. py:method:: Foo.say\n"
- " .. py:method:: FooBar.say")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ('class', desc_sig_space)],
- [desc_name, "Foo"])],
- [desc_content, (addnodes.index,
- desc,
- addnodes.index,
- desc)])]))
- assert doctree[1][1][1].astext().strip() == 'say()' # prefix is stripped
- assert doctree[1][1][3].astext().strip() == 'FooBar.say()' # not stripped
-
-
-def test_pydata(app):
- text = (".. py:module:: example\n"
- ".. py:data:: var\n"
- " :type: int\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- addnodes.index,
- nodes.target,
- [desc, ([desc_signature, ([desc_addname, "example."],
- [desc_name, "var"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "int"])])],
- [desc_content, ()])]))
- assert_node(doctree[3][0][2][2], pending_xref, **{"py:module": "example"})
- assert 'example.var' in domain.objects
- assert domain.objects['example.var'] == ('index', 'example.var', 'data', False)
-
-
-def test_pyfunction(app):
- text = (".. py:function:: func1\n"
- ".. py:module:: example\n"
- ".. py:function:: func2\n"
- " :async:\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "func1"],
- [desc_parameterlist, ()])],
- [desc_content, ()])],
- addnodes.index,
- addnodes.index,
- nodes.target,
- [desc, ([desc_signature, ([desc_annotation, ([desc_sig_keyword, 'async'],
- desc_sig_space)],
- [desc_addname, "example."],
- [desc_name, "func2"],
- [desc_parameterlist, ()])],
- [desc_content, ()])]))
- assert_node(doctree[0], addnodes.index,
- entries=[('pair', 'built-in function; func1()', 'func1', '', None)])
- assert_node(doctree[2], addnodes.index,
- entries=[('pair', 'module; example', 'module-example', '', None)])
- assert_node(doctree[3], addnodes.index,
- entries=[('single', 'func2() (in module example)', 'example.func2', '', None)])
-
- assert 'func1' in domain.objects
- assert domain.objects['func1'] == ('index', 'func1', 'function', False)
- assert 'example.func2' in domain.objects
- assert domain.objects['example.func2'] == ('index', 'example.func2', 'function', False)
-
-
-def test_pyclass_options(app):
- text = (".. py:class:: Class1\n"
- ".. py:class:: Class2\n"
- " :final:\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_name, "Class1"])],
- [desc_content, ()])],
- addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("final",
- desc_sig_space,
- "class",
- desc_sig_space)],
- [desc_name, "Class2"])],
- [desc_content, ()])]))
-
- # class
- assert_node(doctree[0], addnodes.index,
- entries=[('single', 'Class1 (built-in class)', 'Class1', '', None)])
- assert 'Class1' in domain.objects
- assert domain.objects['Class1'] == ('index', 'Class1', 'class', False)
-
- # :final:
- assert_node(doctree[2], addnodes.index,
- entries=[('single', 'Class2 (built-in class)', 'Class2', '', None)])
- assert 'Class2' in domain.objects
- assert domain.objects['Class2'] == ('index', 'Class2', 'class', False)
-
-
-def test_pymethod_options(app):
- text = (".. py:class:: Class\n"
- "\n"
- " .. py:method:: meth1\n"
- " .. py:method:: meth2\n"
- " :classmethod:\n"
- " .. py:method:: meth3\n"
- " :staticmethod:\n"
- " .. py:method:: meth4\n"
- " :async:\n"
- " .. py:method:: meth5\n"
- " :abstractmethod:\n"
- " .. py:method:: meth6\n"
- " :final:\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_name, "Class"])],
- [desc_content, (addnodes.index,
- desc,
- addnodes.index,
- desc,
- addnodes.index,
- desc,
- addnodes.index,
- desc,
- addnodes.index,
- desc,
- addnodes.index,
- desc)])]))
-
- # method
- assert_node(doctree[1][1][0], addnodes.index,
- entries=[('single', 'meth1() (Class method)', 'Class.meth1', '', None)])
- assert_node(doctree[1][1][1], ([desc_signature, ([desc_name, "meth1"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth1' in domain.objects
- assert domain.objects['Class.meth1'] == ('index', 'Class.meth1', 'method', False)
-
- # :classmethod:
- assert_node(doctree[1][1][2], addnodes.index,
- entries=[('single', 'meth2() (Class class method)', 'Class.meth2', '', None)])
- assert_node(doctree[1][1][3], ([desc_signature, ([desc_annotation, ("classmethod", desc_sig_space)],
- [desc_name, "meth2"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth2' in domain.objects
- assert domain.objects['Class.meth2'] == ('index', 'Class.meth2', 'method', False)
-
- # :staticmethod:
- assert_node(doctree[1][1][4], addnodes.index,
- entries=[('single', 'meth3() (Class static method)', 'Class.meth3', '', None)])
- assert_node(doctree[1][1][5], ([desc_signature, ([desc_annotation, ("static", desc_sig_space)],
- [desc_name, "meth3"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth3' in domain.objects
- assert domain.objects['Class.meth3'] == ('index', 'Class.meth3', 'method', False)
-
- # :async:
- assert_node(doctree[1][1][6], addnodes.index,
- entries=[('single', 'meth4() (Class method)', 'Class.meth4', '', None)])
- assert_node(doctree[1][1][7], ([desc_signature, ([desc_annotation, ("async", desc_sig_space)],
- [desc_name, "meth4"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth4' in domain.objects
- assert domain.objects['Class.meth4'] == ('index', 'Class.meth4', 'method', False)
-
- # :abstractmethod:
- assert_node(doctree[1][1][8], addnodes.index,
- entries=[('single', 'meth5() (Class method)', 'Class.meth5', '', None)])
- assert_node(doctree[1][1][9], ([desc_signature, ([desc_annotation, ("abstract", desc_sig_space)],
- [desc_name, "meth5"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth5' in domain.objects
- assert domain.objects['Class.meth5'] == ('index', 'Class.meth5', 'method', False)
-
- # :final:
- assert_node(doctree[1][1][10], addnodes.index,
- entries=[('single', 'meth6() (Class method)', 'Class.meth6', '', None)])
- assert_node(doctree[1][1][11], ([desc_signature, ([desc_annotation, ("final", desc_sig_space)],
- [desc_name, "meth6"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth6' in domain.objects
- assert domain.objects['Class.meth6'] == ('index', 'Class.meth6', 'method', False)
-
-
-def test_pyclassmethod(app):
- text = (".. py:class:: Class\n"
- "\n"
- " .. py:classmethod:: meth\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_name, "Class"])],
- [desc_content, (addnodes.index,
- desc)])]))
- assert_node(doctree[1][1][0], addnodes.index,
- entries=[('single', 'meth() (Class class method)', 'Class.meth', '', None)])
- assert_node(doctree[1][1][1], ([desc_signature, ([desc_annotation, ("classmethod", desc_sig_space)],
- [desc_name, "meth"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth' in domain.objects
- assert domain.objects['Class.meth'] == ('index', 'Class.meth', 'method', False)
-
-
-def test_pystaticmethod(app):
- text = (".. py:class:: Class\n"
- "\n"
- " .. py:staticmethod:: meth\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_name, "Class"])],
- [desc_content, (addnodes.index,
- desc)])]))
- assert_node(doctree[1][1][0], addnodes.index,
- entries=[('single', 'meth() (Class static method)', 'Class.meth', '', None)])
- assert_node(doctree[1][1][1], ([desc_signature, ([desc_annotation, ("static", desc_sig_space)],
- [desc_name, "meth"],
- [desc_parameterlist, ()])],
- [desc_content, ()]))
- assert 'Class.meth' in domain.objects
- assert domain.objects['Class.meth'] == ('index', 'Class.meth', 'method', False)
-
-
-def test_pyattribute(app):
- text = (".. py:class:: Class\n"
- "\n"
- " .. py:attribute:: attr\n"
- " :type: Optional[str]\n"
- " :value: ''\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_name, "Class"])],
- [desc_content, (addnodes.index,
- desc)])]))
- assert_node(doctree[1][1][0], addnodes.index,
- entries=[('single', 'attr (Class attribute)', 'Class.attr', '', None)])
- assert_node(doctree[1][1][1], ([desc_signature, ([desc_name, "attr"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "str"],
- desc_sig_space,
- [desc_sig_punctuation, "|"],
- desc_sig_space,
- [pending_xref, "None"])],
- [desc_annotation, (desc_sig_space,
- [desc_sig_punctuation, '='],
- desc_sig_space,
- "''")],
- )],
- [desc_content, ()]))
- assert_node(doctree[1][1][1][0][1][2], pending_xref, **{"py:class": "Class"})
- assert_node(doctree[1][1][1][0][1][6], pending_xref, **{"py:class": "Class"})
- assert 'Class.attr' in domain.objects
- assert domain.objects['Class.attr'] == ('index', 'Class.attr', 'attribute', False)
-
-
-def test_pyproperty(app):
- text = (".. py:class:: Class\n"
- "\n"
- " .. py:property:: prop1\n"
- " :abstractmethod:\n"
- " :type: str\n"
- "\n"
- " .. py:property:: prop2\n"
- " :classmethod:\n"
- " :type: str\n")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_name, "Class"])],
- [desc_content, (addnodes.index,
- desc,
- addnodes.index,
- desc)])]))
- assert_node(doctree[1][1][0], addnodes.index,
- entries=[('single', 'prop1 (Class property)', 'Class.prop1', '', None)])
- assert_node(doctree[1][1][1], ([desc_signature, ([desc_annotation, ("abstract", desc_sig_space,
- "property", desc_sig_space)],
- [desc_name, "prop1"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "str"])])],
- [desc_content, ()]))
- assert_node(doctree[1][1][2], addnodes.index,
- entries=[('single', 'prop2 (Class property)', 'Class.prop2', '', None)])
- assert_node(doctree[1][1][3], ([desc_signature, ([desc_annotation, ("class", desc_sig_space,
- "property", desc_sig_space)],
- [desc_name, "prop2"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "str"])])],
- [desc_content, ()]))
- assert 'Class.prop1' in domain.objects
- assert domain.objects['Class.prop1'] == ('index', 'Class.prop1', 'property', False)
- assert 'Class.prop2' in domain.objects
- assert domain.objects['Class.prop2'] == ('index', 'Class.prop2', 'property', False)
-
-
-def test_pydecorator_signature(app):
- text = ".. py:decorator:: deco"
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_addname, "@"],
- [desc_name, "deco"])],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
-
- assert 'deco' in domain.objects
- assert domain.objects['deco'] == ('index', 'deco', 'function', False)
-
-
-def test_pydecoratormethod_signature(app):
- text = ".. py:decoratormethod:: deco"
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_addname, "@"],
- [desc_name, "deco"])],
- desc_content)]))
- assert_node(doctree[1], addnodes.desc, desctype="method",
- domain="py", objtype="method", no_index=False)
-
- assert 'deco' in domain.objects
- assert domain.objects['deco'] == ('index', 'deco', 'method', False)
-
-
-def test_canonical(app):
- text = (".. py:class:: io.StringIO\n"
- " :canonical: _io.StringIO")
- domain = app.env.get_domain('py')
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_addname, "io."],
- [desc_name, "StringIO"])],
- desc_content)]))
- assert 'io.StringIO' in domain.objects
- assert domain.objects['io.StringIO'] == ('index', 'io.StringIO', 'class', False)
- assert domain.objects['_io.StringIO'] == ('index', 'io.StringIO', 'class', True)
-
-
-def test_canonical_definition_overrides(app, warning):
- text = (".. py:class:: io.StringIO\n"
- " :canonical: _io.StringIO\n"
- ".. py:class:: _io.StringIO\n")
- restructuredtext.parse(app, text)
- assert warning.getvalue() == ""
-
- domain = app.env.get_domain('py')
- assert domain.objects['_io.StringIO'] == ('index', 'id0', 'class', False)
-
-
-def test_canonical_definition_skip(app, warning):
- text = (".. py:class:: _io.StringIO\n"
- ".. py:class:: io.StringIO\n"
- " :canonical: _io.StringIO\n")
-
- restructuredtext.parse(app, text)
- assert warning.getvalue() == ""
-
- domain = app.env.get_domain('py')
- assert domain.objects['_io.StringIO'] == ('index', 'io.StringIO', 'class', False)
-
-
-def test_canonical_duplicated(app, warning):
- text = (".. py:class:: mypackage.StringIO\n"
- " :canonical: _io.StringIO\n"
- ".. py:class:: io.StringIO\n"
- " :canonical: _io.StringIO\n")
-
- restructuredtext.parse(app, text)
- assert warning.getvalue() != ""
-
-
-def test_info_field_list(app):
- text = (".. py:module:: example\n"
- ".. py:class:: Class\n"
- "\n"
- " :meta blah: this meta-field must not show up in the toc-tree\n"
- " :param str name: blah blah\n"
- " :meta another meta field:\n"
- " :param age: blah blah\n"
- " :type age: int\n"
- " :param items: blah blah\n"
- " :type items: Tuple[str, ...]\n"
- " :param Dict[str, str] params: blah blah\n")
- doctree = restructuredtext.parse(app, text)
- print(doctree)
-
- assert_node(doctree, (addnodes.index,
- addnodes.index,
- nodes.target,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_addname, "example."],
- [desc_name, "Class"])],
- [desc_content, nodes.field_list, nodes.field])]))
- assert_node(doctree[3][1][0][0],
- ([nodes.field_name, "Parameters"],
- [nodes.field_body, nodes.bullet_list, ([nodes.list_item, nodes.paragraph],
- [nodes.list_item, nodes.paragraph],
- [nodes.list_item, nodes.paragraph],
- [nodes.list_item, nodes.paragraph])]))
-
- # :param str name:
- assert_node(doctree[3][1][0][0][1][0][0][0],
- ([addnodes.literal_strong, "name"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "str"],
- ")",
- " -- ",
- "blah blah"))
- assert_node(doctree[3][1][0][0][1][0][0][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="str",
- **{"py:module": "example", "py:class": "Class"})
-
- # :param age: + :type age:
- assert_node(doctree[3][1][0][0][1][0][1][0],
- ([addnodes.literal_strong, "age"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "int"],
- ")",
- " -- ",
- "blah blah"))
- assert_node(doctree[3][1][0][0][1][0][1][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="int",
- **{"py:module": "example", "py:class": "Class"})
-
- # :param items: + :type items:
- assert_node(doctree[3][1][0][0][1][0][2][0],
- ([addnodes.literal_strong, "items"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "Tuple"],
- [addnodes.literal_emphasis, "["],
- [pending_xref, addnodes.literal_emphasis, "str"],
- [addnodes.literal_emphasis, ", "],
- [addnodes.literal_emphasis, "..."],
- [addnodes.literal_emphasis, "]"],
- ")",
- " -- ",
- "blah blah"))
- assert_node(doctree[3][1][0][0][1][0][2][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="Tuple",
- **{"py:module": "example", "py:class": "Class"})
- assert_node(doctree[3][1][0][0][1][0][2][0][4], pending_xref,
- refdomain="py", reftype="class", reftarget="str",
- **{"py:module": "example", "py:class": "Class"})
-
- # :param Dict[str, str] params:
- assert_node(doctree[3][1][0][0][1][0][3][0],
- ([addnodes.literal_strong, "params"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "Dict"],
- [addnodes.literal_emphasis, "["],
- [pending_xref, addnodes.literal_emphasis, "str"],
- [addnodes.literal_emphasis, ", "],
- [pending_xref, addnodes.literal_emphasis, "str"],
- [addnodes.literal_emphasis, "]"],
- ")",
- " -- ",
- "blah blah"))
- assert_node(doctree[3][1][0][0][1][0][3][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="Dict",
- **{"py:module": "example", "py:class": "Class"})
- assert_node(doctree[3][1][0][0][1][0][3][0][4], pending_xref,
- refdomain="py", reftype="class", reftarget="str",
- **{"py:module": "example", "py:class": "Class"})
- assert_node(doctree[3][1][0][0][1][0][3][0][6], pending_xref,
- refdomain="py", reftype="class", reftarget="str",
- **{"py:module": "example", "py:class": "Class"})
-
-
-def test_info_field_list_piped_type(app):
- text = (".. py:module:: example\n"
- ".. py:class:: Class\n"
- "\n"
- " :param age: blah blah\n"
- " :type age: int | str\n")
- doctree = restructuredtext.parse(app, text)
-
- assert_node(doctree,
- (addnodes.index,
- addnodes.index,
- nodes.target,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_addname, "example."],
- [desc_name, "Class"])],
- [desc_content, nodes.field_list, nodes.field, (nodes.field_name,
- nodes.field_body)])]))
- assert_node(doctree[3][1][0][0][1],
- ([nodes.paragraph, ([addnodes.literal_strong, "age"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "int"],
- [addnodes.literal_emphasis, " | "],
- [pending_xref, addnodes.literal_emphasis, "str"],
- ")",
- " -- ",
- "blah blah")],))
- assert_node(doctree[3][1][0][0][1][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="int",
- **{"py:module": "example", "py:class": "Class"})
- assert_node(doctree[3][1][0][0][1][0][4], pending_xref,
- refdomain="py", reftype="class", reftarget="str",
- **{"py:module": "example", "py:class": "Class"})
-
-
-def test_info_field_list_Literal(app):
- text = (".. py:module:: example\n"
- ".. py:class:: Class\n"
- "\n"
- " :param age: blah blah\n"
- " :type age: Literal['foo', 'bar', 'baz']\n")
- doctree = restructuredtext.parse(app, text)
-
- assert_node(doctree,
- (addnodes.index,
- addnodes.index,
- nodes.target,
- [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
- [desc_addname, "example."],
- [desc_name, "Class"])],
- [desc_content, nodes.field_list, nodes.field, (nodes.field_name,
- nodes.field_body)])]))
- assert_node(doctree[3][1][0][0][1],
- ([nodes.paragraph, ([addnodes.literal_strong, "age"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "Literal"],
- [addnodes.literal_emphasis, "["],
- [addnodes.literal_emphasis, "'foo'"],
- [addnodes.literal_emphasis, ", "],
- [addnodes.literal_emphasis, "'bar'"],
- [addnodes.literal_emphasis, ", "],
- [addnodes.literal_emphasis, "'baz'"],
- [addnodes.literal_emphasis, "]"],
- ")",
- " -- ",
- "blah blah")],))
- assert_node(doctree[3][1][0][0][1][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="Literal",
- **{"py:module": "example", "py:class": "Class"})
-
-
-def test_info_field_list_var(app):
- text = (".. py:class:: Class\n"
- "\n"
- " :var int attr: blah blah\n")
- doctree = restructuredtext.parse(app, text)
-
- assert_node(doctree, (addnodes.index,
- [desc, (desc_signature,
- [desc_content, nodes.field_list, nodes.field])]))
- assert_node(doctree[1][1][0][0], ([nodes.field_name, "Variables"],
- [nodes.field_body, nodes.paragraph]))
-
- # :var int attr:
- assert_node(doctree[1][1][0][0][1][0],
- ([addnodes.literal_strong, "attr"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "int"],
- ")",
- " -- ",
- "blah blah"))
- assert_node(doctree[1][1][0][0][1][0][2], pending_xref,
- refdomain="py", reftype="class", reftarget="int", **{"py:class": "Class"})
-
-
-def test_info_field_list_napoleon_deliminator_of(app):
- text = (".. py:module:: example\n"
- ".. py:class:: Class\n"
- "\n"
- " :param list_str_var: example description.\n"
- " :type list_str_var: list of str\n"
- " :param tuple_int_var: example description.\n"
- " :type tuple_int_var: tuple of tuple of int\n"
- )
- doctree = restructuredtext.parse(app, text)
-
- # :param list of str list_str_var:
- assert_node(doctree[3][1][0][0][1][0][0][0],
- ([addnodes.literal_strong, "list_str_var"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "list"],
- [addnodes.literal_emphasis, " of "],
- [pending_xref, addnodes.literal_emphasis, "str"],
- ")",
- " -- ",
- "example description."))
-
- # :param tuple of tuple of int tuple_int_var:
- assert_node(doctree[3][1][0][0][1][0][1][0],
- ([addnodes.literal_strong, "tuple_int_var"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "tuple"],
- [addnodes.literal_emphasis, " of "],
- [pending_xref, addnodes.literal_emphasis, "tuple"],
- [addnodes.literal_emphasis, " of "],
- [pending_xref, addnodes.literal_emphasis, "int"],
- ")",
- " -- ",
- "example description."))
-
-
-def test_info_field_list_napoleon_deliminator_or(app):
- text = (".. py:module:: example\n"
- ".. py:class:: Class\n"
- "\n"
- " :param bool_str_var: example description.\n"
- " :type bool_str_var: bool or str\n"
- " :param str_float_int_var: example description.\n"
- " :type str_float_int_var: str or float or int\n"
- )
- doctree = restructuredtext.parse(app, text)
-
- # :param bool or str bool_str_var:
- assert_node(doctree[3][1][0][0][1][0][0][0],
- ([addnodes.literal_strong, "bool_str_var"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "bool"],
- [addnodes.literal_emphasis, " or "],
- [pending_xref, addnodes.literal_emphasis, "str"],
- ")",
- " -- ",
- "example description."))
-
- # :param str or float or int str_float_int_var:
- assert_node(doctree[3][1][0][0][1][0][1][0],
- ([addnodes.literal_strong, "str_float_int_var"],
- " (",
- [pending_xref, addnodes.literal_emphasis, "str"],
- [addnodes.literal_emphasis, " or "],
- [pending_xref, addnodes.literal_emphasis, "float"],
- [addnodes.literal_emphasis, " or "],
- [pending_xref, addnodes.literal_emphasis, "int"],
- ")",
- " -- ",
- "example description."))
-
-
-def test_type_field(app):
- text = (".. py:data:: var1\n"
- " :type: .int\n"
- ".. py:data:: var2\n"
- " :type: ~builtins.int\n"
- ".. py:data:: var3\n"
- " :type: typing.Optional[typing.Tuple[int, typing.Any]]\n")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "var1"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "int"])])],
- [desc_content, ()])],
- addnodes.index,
- [desc, ([desc_signature, ([desc_name, "var2"],
- [desc_annotation, ([desc_sig_punctuation, ':'],
- desc_sig_space,
- [pending_xref, "int"])])],
- [desc_content, ()])],
- addnodes.index,
- [desc, ([desc_signature, ([desc_name, "var3"],
- [desc_annotation, ([desc_sig_punctuation, ":"],
- desc_sig_space,
- [pending_xref, "Optional"],
- [desc_sig_punctuation, "["],
- [pending_xref, "Tuple"],
- [desc_sig_punctuation, "["],
- [pending_xref, "int"],
- [desc_sig_punctuation, ","],
- desc_sig_space,
- [pending_xref, "Any"],
- [desc_sig_punctuation, "]"],
- [desc_sig_punctuation, "]"])])],
- [desc_content, ()])]))
- assert_node(doctree[1][0][1][2], pending_xref, reftarget='int', refspecific=True)
- assert_node(doctree[3][0][1][2], pending_xref, reftarget='builtins.int', refspecific=False)
- assert_node(doctree[5][0][1][2], pending_xref, reftarget='typing.Optional', refspecific=False)
- assert_node(doctree[5][0][1][4], pending_xref, reftarget='typing.Tuple', refspecific=False)
- assert_node(doctree[5][0][1][6], pending_xref, reftarget='int', refspecific=False)
- assert_node(doctree[5][0][1][9], pending_xref, reftarget='typing.Any', refspecific=False)
-
-
-@pytest.mark.sphinx(freshenv=True)
-def test_module_index(app):
- text = (".. py:module:: docutils\n"
- ".. py:module:: sphinx\n"
- ".. py:module:: sphinx.config\n"
- ".. py:module:: sphinx.builders\n"
- ".. py:module:: sphinx.builders.html\n"
- ".. py:module:: sphinx_intl\n")
- restructuredtext.parse(app, text)
- index = PythonModuleIndex(app.env.get_domain('py'))
- assert index.generate() == (
- [('d', [IndexEntry('docutils', 0, 'index', 'module-docutils', '', '', '')]),
- ('s', [IndexEntry('sphinx', 1, 'index', 'module-sphinx', '', '', ''),
- IndexEntry('sphinx.builders', 2, 'index', 'module-sphinx.builders', '', '', ''),
- IndexEntry('sphinx.builders.html', 2, 'index', 'module-sphinx.builders.html', '', '', ''),
- IndexEntry('sphinx.config', 2, 'index', 'module-sphinx.config', '', '', ''),
- IndexEntry('sphinx_intl', 0, 'index', 'module-sphinx_intl', '', '', '')])],
- False,
- )
-
-
-@pytest.mark.sphinx(freshenv=True)
-def test_module_index_submodule(app):
- text = ".. py:module:: sphinx.config\n"
- restructuredtext.parse(app, text)
- index = PythonModuleIndex(app.env.get_domain('py'))
- assert index.generate() == (
- [('s', [IndexEntry('sphinx', 1, '', '', '', '', ''),
- IndexEntry('sphinx.config', 2, 'index', 'module-sphinx.config', '', '', '')])],
- False,
- )
-
-
-@pytest.mark.sphinx(freshenv=True)
-def test_module_index_not_collapsed(app):
- text = (".. py:module:: docutils\n"
- ".. py:module:: sphinx\n")
- restructuredtext.parse(app, text)
- index = PythonModuleIndex(app.env.get_domain('py'))
- assert index.generate() == (
- [('d', [IndexEntry('docutils', 0, 'index', 'module-docutils', '', '', '')]),
- ('s', [IndexEntry('sphinx', 0, 'index', 'module-sphinx', '', '', '')])],
- True,
- )
-
-
-@pytest.mark.sphinx(freshenv=True, confoverrides={'modindex_common_prefix': ['sphinx.']})
-def test_modindex_common_prefix(app):
- text = (".. py:module:: docutils\n"
- ".. py:module:: sphinx\n"
- ".. py:module:: sphinx.config\n"
- ".. py:module:: sphinx.builders\n"
- ".. py:module:: sphinx.builders.html\n"
- ".. py:module:: sphinx_intl\n")
- restructuredtext.parse(app, text)
- index = PythonModuleIndex(app.env.get_domain('py'))
- assert index.generate() == (
- [('b', [IndexEntry('sphinx.builders', 1, 'index', 'module-sphinx.builders', '', '', ''),
- IndexEntry('sphinx.builders.html', 2, 'index', 'module-sphinx.builders.html', '', '', '')]),
- ('c', [IndexEntry('sphinx.config', 0, 'index', 'module-sphinx.config', '', '', '')]),
- ('d', [IndexEntry('docutils', 0, 'index', 'module-docutils', '', '', '')]),
- ('s', [IndexEntry('sphinx', 0, 'index', 'module-sphinx', '', '', ''),
- IndexEntry('sphinx_intl', 0, 'index', 'module-sphinx_intl', '', '', '')])],
- True,
- )
-
-
-def test_no_index_entry(app):
- text = (".. py:function:: f()\n"
- ".. py:function:: g()\n"
- " :no-index-entry:\n")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index, desc, addnodes.index, desc))
- assert_node(doctree[0], addnodes.index, entries=[('pair', 'built-in function; f()', 'f', '', None)])
- assert_node(doctree[2], addnodes.index, entries=[])
-
- text = (".. py:class:: f\n"
- ".. py:class:: g\n"
- " :no-index-entry:\n")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (addnodes.index, desc, addnodes.index, desc))
- assert_node(doctree[0], addnodes.index, entries=[('single', 'f (built-in class)', 'f', '', None)])
- assert_node(doctree[2], addnodes.index, entries=[])
-
-
-@pytest.mark.sphinx('html', testroot='domain-py-python_use_unqualified_type_names')
-def test_python_python_use_unqualified_type_names(app, status, warning):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<span class="n"><a class="reference internal" href="#foo.Name" title="foo.Name">'
- '<span class="pre">Name</span></a></span>' in content)
- assert '<span class="n"><span class="pre">foo.Age</span></span>' in content
- assert ('<p><strong>name</strong> (<a class="reference internal" href="#foo.Name" '
- 'title="foo.Name"><em>Name</em></a>) – blah blah</p>' in content)
- assert '<p><strong>age</strong> (<em>foo.Age</em>) – blah blah</p>' in content
-
-
-@pytest.mark.sphinx('html', testroot='domain-py-python_use_unqualified_type_names',
- confoverrides={'python_use_unqualified_type_names': False})
-def test_python_python_use_unqualified_type_names_disabled(app, status, warning):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert ('<span class="n"><a class="reference internal" href="#foo.Name" title="foo.Name">'
- '<span class="pre">foo.Name</span></a></span>' in content)
- assert '<span class="n"><span class="pre">foo.Age</span></span>' in content
- assert ('<p><strong>name</strong> (<a class="reference internal" href="#foo.Name" '
- 'title="foo.Name"><em>foo.Name</em></a>) – blah blah</p>' in content)
- assert '<p><strong>age</strong> (<em>foo.Age</em>) – blah blah</p>' in content
-
-
-@pytest.mark.sphinx('dummy', testroot='domain-py-xref-warning')
-def test_warn_missing_reference(app, status, warning):
- app.build()
- assert "index.rst:6: WARNING: undefined label: 'no-label'" in warning.getvalue()
- assert ("index.rst:6: WARNING: Failed to create a cross reference. "
- "A title or caption not found: 'existing-label'") in warning.getvalue()
-
-
-@pytest.mark.sphinx(confoverrides={'nitpicky': True})
-@pytest.mark.parametrize('include_options', [True, False])
-def test_signature_line_number(app, include_options):
- text = (".. py:function:: foo(bar : string)\n" +
- (" :no-index-entry:\n" if include_options else ""))
- doc = restructuredtext.parse(app, text)
- xrefs = list(doc.findall(condition=addnodes.pending_xref))
- assert len(xrefs) == 1
- source, line = docutils.utils.get_source_line(xrefs[0])
- assert 'index.rst' in source
- assert line == 1
-
-
-@pytest.mark.sphinx('html', confoverrides={
- 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
-})
-def test_pyfunction_signature_with_python_maximum_signature_line_length_equal(app):
- text = ".. py:function:: hello(name: str) -> str"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"],
- )],
- desc_content,
- )],
- ))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
- [desc_sig_name, "name"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"],
- )])
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
-
-
-@pytest.mark.sphinx('html', confoverrides={
- 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
-})
-def test_pyfunction_signature_with_python_maximum_signature_line_length_force_single(app):
- text = (".. py:function:: hello(names: str) -> str\n"
- " :single-line-parameter-list:")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"],
- )],
- desc_content,
- )],
- ))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
- [desc_sig_name, "names"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"],
- )])
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
-
-
-@pytest.mark.sphinx('html', confoverrides={
- 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
-})
-def test_pyfunction_signature_with_python_maximum_signature_line_length_break(app):
- text = ".. py:function:: hello(names: str) -> str"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"],
- )],
- desc_content,
- )],
- ))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
- [desc_sig_name, "names"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"],
- )])
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=True)
-
-
-@pytest.mark.sphinx('html', confoverrides={
- 'maximum_signature_line_length': len("hello(name: str) -> str"),
-})
-def test_pyfunction_signature_with_maximum_signature_line_length_equal(app):
- text = ".. py:function:: hello(name: str) -> str"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"],
- )],
- desc_content,
- )],
- ))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
- [desc_sig_name, "name"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"],
- )])
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
-
-
-@pytest.mark.sphinx('html', confoverrides={
- 'maximum_signature_line_length': len("hello(name: str) -> str"),
-})
-def test_pyfunction_signature_with_maximum_signature_line_length_force_single(app):
- text = (".. py:function:: hello(names: str) -> str\n"
- " :single-line-parameter-list:")
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"],
- )],
- desc_content,
- )],
- ))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
- [desc_sig_name, "names"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"],
- )])
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
-
-
-@pytest.mark.sphinx('html', confoverrides={
- 'maximum_signature_line_length': len("hello(name: str) -> str"),
-})
-def test_pyfunction_signature_with_maximum_signature_line_length_break(app):
- text = ".. py:function:: hello(names: str) -> str"
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"],
- )],
- desc_content,
- )],
- ))
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
- [desc_sig_name, "names"],
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"],
- )])
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=True)
-
-
-@pytest.mark.sphinx(
- 'html',
- confoverrides={
- 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
- 'maximum_signature_line_length': 1,
- },
-)
-def test_python_maximum_signature_line_length_overrides_global(app):
- text = ".. py:function:: hello(name: str) -> str"
- doctree = restructuredtext.parse(app, text)
- expected_doctree = (addnodes.index,
- [desc, ([desc_signature, ([desc_name, "hello"],
- desc_parameterlist,
- [desc_returns, pending_xref, "str"])],
- desc_content)])
- assert_node(doctree, expected_doctree)
- assert_node(doctree[1], addnodes.desc, desctype="function",
- domain="py", objtype="function", no_index=False)
- signame_node = [desc_sig_name, "name"]
- expected_sig = [desc_parameterlist, desc_parameter, (signame_node,
- [desc_sig_punctuation, ":"],
- desc_sig_space,
- [nodes.inline, pending_xref, "str"])]
- assert_node(doctree[1][0][1], expected_sig)
- assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
-
-
-@pytest.mark.sphinx(
- 'html', testroot='domain-py-python_maximum_signature_line_length',
-)
-def test_domain_py_python_maximum_signature_line_length_in_html(app, status, warning):
- app.build()
- content = (app.outdir / 'index.html').read_text(encoding='utf8')
- expected_parameter_list_hello = """\
-
-<dl>
-<dd>\
-<em class="sig-param">\
-<span class="n"><span class="pre">name</span></span>\
-<span class="p"><span class="pre">:</span></span>\
-<span class="w"> </span>\
-<span class="n"><span class="pre">str</span></span>\
-</em>,\
-</dd>
-</dl>
-
-<span class="sig-paren">)</span> \
-<span class="sig-return">\
-<span class="sig-return-icon">&#x2192;</span> \
-<span class="sig-return-typehint"><span class="pre">str</span></span>\
-</span>\
-<a class="headerlink" href="#hello" title="Link to this definition">¶</a>\
-</dt>\
-"""
- assert expected_parameter_list_hello in content
-
- param_line_fmt = '<dd>{}</dd>\n'
- param_name_fmt = (
- '<em class="sig-param"><span class="n"><span class="pre">{}</span></span></em>'
- )
- optional_fmt = '<span class="optional">{}</span>'
-
- expected_a = param_line_fmt.format(
- optional_fmt.format("[") + param_name_fmt.format("a") + "," + optional_fmt.format("["),
- )
- assert expected_a in content
-
- expected_b = param_line_fmt.format(
- param_name_fmt.format("b") + "," + optional_fmt.format("]") + optional_fmt.format("]"),
- )
- assert expected_b in content
-
- expected_c = param_line_fmt.format(param_name_fmt.format("c") + ",")
- assert expected_c in content
-
- expected_d = param_line_fmt.format(param_name_fmt.format("d") + optional_fmt.format("[") + ",")
- assert expected_d in content
-
- expected_e = param_line_fmt.format(param_name_fmt.format("e") + ",")
- assert expected_e in content
-
- expected_f = param_line_fmt.format(param_name_fmt.format("f") + "," + optional_fmt.format("]"))
- assert expected_f in content
-
- expected_parameter_list_foo = """\
-
-<dl>
-{}{}{}{}{}{}</dl>
-
-<span class="sig-paren">)</span>\
-<a class="headerlink" href="#foo" title="Link to this definition">¶</a>\
-</dt>\
-""".format(expected_a, expected_b, expected_c, expected_d, expected_e, expected_f)
- assert expected_parameter_list_foo in content
-
-
-@pytest.mark.sphinx(
- 'text', testroot='domain-py-python_maximum_signature_line_length',
-)
-def test_domain_py_python_maximum_signature_line_length_in_text(app, status, warning):
- app.build()
- content = (app.outdir / 'index.txt').read_text(encoding='utf8')
- param_line_fmt = STDINDENT * " " + "{}\n"
-
- expected_parameter_list_hello = "(\n{}) -> str".format(param_line_fmt.format("name: str,"))
-
- assert expected_parameter_list_hello in content
-
- expected_a = param_line_fmt.format("[a,[")
- assert expected_a in content
-
- expected_b = param_line_fmt.format("b,]]")
- assert expected_b in content
-
- expected_c = param_line_fmt.format("c,")
- assert expected_c in content
-
- expected_d = param_line_fmt.format("d[,")
- assert expected_d in content
-
- expected_e = param_line_fmt.format("e,")
- assert expected_e in content
-
- expected_f = param_line_fmt.format("f,]")
- assert expected_f in content
-
- expected_parameter_list_foo = "(\n{}{}{}{}{}{})".format(
- expected_a, expected_b, expected_c, expected_d, expected_e, expected_f,
- )
- assert expected_parameter_list_foo in content
-
-
-def test_module_content_line_number(app):
- text = (".. py:module:: foo\n" +
- "\n" +
- " Some link here: :ref:`abc`\n")
- doc = restructuredtext.parse(app, text)
- xrefs = list(doc.findall(condition=addnodes.pending_xref))
- assert len(xrefs) == 1
- source, line = docutils.utils.get_source_line(xrefs[0])
- assert 'index.rst' in source
- assert line == 3
-
-
-@pytest.mark.sphinx(freshenv=True, confoverrides={'python_display_short_literal_types': True})
-def test_short_literal_types(app):
- text = """\
-.. py:function:: literal_ints(x: Literal[1, 2, 3] = 1) -> None
-.. py:function:: literal_union(x: Union[Literal["a"], Literal["b"], Literal["c"]]) -> None
-"""
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, 'literal_ints'],
- [desc_parameterlist, (
- [desc_parameter, (
- [desc_sig_name, 'x'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, (
- [desc_sig_literal_number, '1'],
- desc_sig_space,
- [desc_sig_punctuation, '|'],
- desc_sig_space,
- [desc_sig_literal_number, '2'],
- desc_sig_space,
- [desc_sig_punctuation, '|'],
- desc_sig_space,
- [desc_sig_literal_number, '3'],
- )],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, '1'],
- )],
- )],
- [desc_returns, pending_xref, 'None'],
- )],
- [desc_content, ()],
- )],
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, 'literal_union'],
- [desc_parameterlist, (
- [desc_parameter, (
- [desc_sig_name, 'x'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, (
- [desc_sig_literal_string, "'a'"],
- desc_sig_space,
- [desc_sig_punctuation, '|'],
- desc_sig_space,
- [desc_sig_literal_string, "'b'"],
- desc_sig_space,
- [desc_sig_punctuation, '|'],
- desc_sig_space,
- [desc_sig_literal_string, "'c'"],
- )],
- )],
- )],
- [desc_returns, pending_xref, 'None'],
- )],
- [desc_content, ()],
- )],
- ))
-
-
-def test_function_pep_695(app):
- text = """.. py:function:: func[\
- S,\
- T: int,\
- U: (int, str),\
- R: int | int,\
- A: int | Annotated[int, ctype("char")],\
- *V,\
- **P\
- ]
- """
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_name, 'func'],
- [desc_type_parameter_list, (
- [desc_type_parameter, ([desc_sig_name, 'S'])],
- [desc_type_parameter, (
- [desc_sig_name, 'T'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, ([pending_xref, 'int'])],
- )],
- [desc_type_parameter, (
- [desc_sig_name, 'U'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_punctuation, '('],
- [desc_sig_name, (
- [pending_xref, 'int'],
- [desc_sig_punctuation, ','],
- desc_sig_space,
- [pending_xref, 'str'],
- )],
- [desc_sig_punctuation, ')'],
- )],
- [desc_type_parameter, (
- [desc_sig_name, 'R'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, (
- [pending_xref, 'int'],
- desc_sig_space,
- [desc_sig_punctuation, '|'],
- desc_sig_space,
- [pending_xref, 'int'],
- )],
- )],
- [desc_type_parameter, (
- [desc_sig_name, 'A'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, ([pending_xref, 'int | Annotated[int, ctype("char")]'])],
- )],
- [desc_type_parameter, (
- [desc_sig_operator, '*'],
- [desc_sig_name, 'V'],
- )],
- [desc_type_parameter, (
- [desc_sig_operator, '**'],
- [desc_sig_name, 'P'],
- )],
- )],
- [desc_parameterlist, ()],
- )],
- [desc_content, ()],
- )],
- ))
-
-
-def test_class_def_pep_695(app):
- # Non-concrete unbound generics are allowed at runtime but type checkers
- # should fail (https://peps.python.org/pep-0695/#type-parameter-scopes)
- text = """.. py:class:: Class[S: Sequence[T], T, KT, VT](Dict[KT, VT])"""
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_annotation, ('class', desc_sig_space)],
- [desc_name, 'Class'],
- [desc_type_parameter_list, (
- [desc_type_parameter, (
- [desc_sig_name, 'S'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, (
- [pending_xref, 'Sequence'],
- [desc_sig_punctuation, '['],
- [pending_xref, 'T'],
- [desc_sig_punctuation, ']'],
- )],
- )],
- [desc_type_parameter, ([desc_sig_name, 'T'])],
- [desc_type_parameter, ([desc_sig_name, 'KT'])],
- [desc_type_parameter, ([desc_sig_name, 'VT'])],
- )],
- [desc_parameterlist, ([desc_parameter, 'Dict[KT, VT]'])],
- )],
- [desc_content, ()],
- )],
- ))
-
-
-def test_class_def_pep_696(app):
- # test default values for type variables without using PEP 696 AST parser
- text = """.. py:class:: Class[\
- T, KT, VT,\
- J: int,\
- K = list,\
- S: str = str,\
- L: (T, tuple[T, ...], collections.abc.Iterable[T]) = set[T],\
- Q: collections.abc.Mapping[KT, VT] = dict[KT, VT],\
- *V = *tuple[*Ts, bool],\
- **P = [int, Annotated[int, ValueRange(3, 10), ctype("char")]]\
- ](Other[T, KT, VT, J, S, L, Q, *V, **P])
- """
- doctree = restructuredtext.parse(app, text)
- assert_node(doctree, (
- addnodes.index,
- [desc, (
- [desc_signature, (
- [desc_annotation, ('class', desc_sig_space)],
- [desc_name, 'Class'],
- [desc_type_parameter_list, (
- [desc_type_parameter, ([desc_sig_name, 'T'])],
- [desc_type_parameter, ([desc_sig_name, 'KT'])],
- [desc_type_parameter, ([desc_sig_name, 'VT'])],
- # J: int
- [desc_type_parameter, (
- [desc_sig_name, 'J'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, ([pending_xref, 'int'])],
- )],
- # K = list
- [desc_type_parameter, (
- [desc_sig_name, 'K'],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, 'list'],
- )],
- # S: str = str
- [desc_type_parameter, (
- [desc_sig_name, 'S'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, ([pending_xref, 'str'])],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, 'str'],
- )],
- [desc_type_parameter, (
- [desc_sig_name, 'L'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_punctuation, '('],
- [desc_sig_name, (
- # T
- [pending_xref, 'T'],
- [desc_sig_punctuation, ','],
- desc_sig_space,
- # tuple[T, ...]
- [pending_xref, 'tuple'],
- [desc_sig_punctuation, '['],
- [pending_xref, 'T'],
- [desc_sig_punctuation, ','],
- desc_sig_space,
- [desc_sig_punctuation, '...'],
- [desc_sig_punctuation, ']'],
- [desc_sig_punctuation, ','],
- desc_sig_space,
- # collections.abc.Iterable[T]
- [pending_xref, 'collections.abc.Iterable'],
- [desc_sig_punctuation, '['],
- [pending_xref, 'T'],
- [desc_sig_punctuation, ']'],
- )],
- [desc_sig_punctuation, ')'],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, 'set[T]'],
- )],
- [desc_type_parameter, (
- [desc_sig_name, 'Q'],
- [desc_sig_punctuation, ':'],
- desc_sig_space,
- [desc_sig_name, (
- [pending_xref, 'collections.abc.Mapping'],
- [desc_sig_punctuation, '['],
- [pending_xref, 'KT'],
- [desc_sig_punctuation, ','],
- desc_sig_space,
- [pending_xref, 'VT'],
- [desc_sig_punctuation, ']'],
- )],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, 'dict[KT, VT]'],
- )],
- [desc_type_parameter, (
- [desc_sig_operator, '*'],
- [desc_sig_name, 'V'],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, '*tuple[*Ts, bool]'],
- )],
- [desc_type_parameter, (
- [desc_sig_operator, '**'],
- [desc_sig_name, 'P'],
- desc_sig_space,
- [desc_sig_operator, '='],
- desc_sig_space,
- [nodes.inline, '[int, Annotated[int, ValueRange(3, 10), ctype("char")]]'],
- )],
- )],
- [desc_parameterlist, (
- [desc_parameter, 'Other[T, KT, VT, J, S, L, Q, *V, **P]'],
- )],
- )],
- [desc_content, ()],
- )],
- ))
-
-
-@pytest.mark.parametrize(('tp_list', 'tptext'), [
- ('[T:int]', '[T: int]'),
- ('[T:*Ts]', '[T: *Ts]'),
- ('[T:int|(*Ts)]', '[T: int | (*Ts)]'),
- ('[T:(*Ts)|int]', '[T: (*Ts) | int]'),
- ('[T:(int|(*Ts))]', '[T: (int | (*Ts))]'),
- ('[T:((*Ts)|int)]', '[T: ((*Ts) | int)]'),
- ('[T:Annotated[int,ctype("char")]]', '[T: Annotated[int, ctype("char")]]'),
-])
-def test_pep_695_and_pep_696_whitespaces_in_bound(app, tp_list, tptext):
- text = f'.. py:function:: f{tp_list}()'
- doctree = restructuredtext.parse(app, text)
- assert doctree.astext() == f'\n\nf{tptext}()\n\n'
-
-
-@pytest.mark.parametrize(('tp_list', 'tptext'), [
- ('[T:(int,str)]', '[T: (int, str)]'),
- ('[T:(int|str,*Ts)]', '[T: (int | str, *Ts)]'),
-])
-def test_pep_695_and_pep_696_whitespaces_in_constraints(app, tp_list, tptext):
- text = f'.. py:function:: f{tp_list}()'
- doctree = restructuredtext.parse(app, text)
- assert doctree.astext() == f'\n\nf{tptext}()\n\n'
-
-
-@pytest.mark.parametrize(('tp_list', 'tptext'), [
- ('[T=int]', '[T = int]'),
- ('[T:int=int]', '[T: int = int]'),
- ('[*V=*Ts]', '[*V = *Ts]'),
- ('[*V=(*Ts)]', '[*V = (*Ts)]'),
- ('[*V=*tuple[str,...]]', '[*V = *tuple[str, ...]]'),
- ('[*V=*tuple[*Ts,...]]', '[*V = *tuple[*Ts, ...]]'),
- ('[*V=*tuple[int,*Ts]]', '[*V = *tuple[int, *Ts]]'),
- ('[*V=*tuple[*Ts,int]]', '[*V = *tuple[*Ts, int]]'),
- ('[**P=[int,*Ts]]', '[**P = [int, *Ts]]'),
- ('[**P=[int, int*3]]', '[**P = [int, int * 3]]'),
- ('[**P=[int, *Ts*3]]', '[**P = [int, *Ts * 3]]'),
- ('[**P=[int,A[int,ctype("char")]]]', '[**P = [int, A[int, ctype("char")]]]'),
-])
-def test_pep_695_and_pep_696_whitespaces_in_default(app, tp_list, tptext):
- text = f'.. py:function:: f{tp_list}()'
- doctree = restructuredtext.parse(app, text)
- assert doctree.astext() == f'\n\nf{tptext}()\n\n'
diff --git a/tests/test_domains/__init__.py b/tests/test_domains/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_domains/__init__.py
diff --git a/tests/test_domain_c.py b/tests/test_domains/test_domain_c.py
index 6582a0c..a8a92cb 100644
--- a/tests/test_domain_c.py
+++ b/tests/test_domains/test_domain_c.py
@@ -19,17 +19,13 @@ from sphinx.addnodes import (
desc_signature_line,
pending_xref,
)
-from sphinx.domains.c import (
- DefinitionError,
- DefinitionParser,
- Symbol,
- _id_prefix,
- _macroKeywords,
- _max_id,
-)
+from sphinx.domains.c._ids import _id_prefix, _macroKeywords, _max_id
+from sphinx.domains.c._parser import DefinitionParser
+from sphinx.domains.c._symbol import Symbol
from sphinx.ext.intersphinx import load_mappings, normalize_intersphinx_mapping
from sphinx.testing import restructuredtext
from sphinx.testing.util import assert_node
+from sphinx.util.cfamily import DefinitionError
from sphinx.writers.text import STDINDENT
@@ -66,7 +62,7 @@ def _check(name, input, idDict, output, key, asTextOutput):
ast = parse(name, inputActual)
res = str(ast)
if res != outputAst:
- print("")
+ print()
print("Input: ", input)
print("Result: ", res)
print("Expected: ", outputAst)
@@ -79,7 +75,7 @@ def _check(name, input, idDict, output, key, asTextOutput):
ast.describe_signature(signode, 'lastIsName', symbol, options={})
resAsText = parentNode.astext()
if resAsText != outputAsText:
- print("")
+ print()
print("Input: ", input)
print("astext(): ", resAsText)
print("Expected: ", outputAsText)
@@ -138,7 +134,7 @@ def test_domain_c_ast_expressions():
output = expr
res = str(ast)
if res != output:
- print("")
+ print()
print("Input: ", input)
print("Result: ", res)
print("Expected: ", output)
@@ -146,7 +142,7 @@ def test_domain_c_ast_expressions():
displayString = ast.get_display_string()
if res != displayString:
# note: if the expression contains an anon name then this will trigger a falsely
- print("")
+ print()
print("Input: ", expr)
print("Result: ", res)
print("Display: ", displayString)
@@ -658,14 +654,14 @@ def extract_role_links(app, filename):
@pytest.mark.sphinx(testroot='domain-c', confoverrides={'nitpicky': True})
def test_domain_c_build(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "index")
assert len(ws) == 0
@pytest.mark.sphinx(testroot='domain-c', confoverrides={'nitpicky': True})
def test_domain_c_build_namespace(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "namespace")
assert len(ws) == 0
t = (app.outdir / "namespace.html").read_text(encoding='utf8')
@@ -675,7 +671,7 @@ def test_domain_c_build_namespace(app, status, warning):
@pytest.mark.sphinx(testroot='domain-c', confoverrides={'nitpicky': True})
def test_domain_c_build_anon_dup_decl(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "anon-dup-decl")
assert len(ws) == 2
assert "WARNING: c:identifier reference target not found: @a" in ws[0]
@@ -704,7 +700,7 @@ def test_domain_c_build_semicolon(app, warning):
@pytest.mark.sphinx(testroot='domain-c', confoverrides={'nitpicky': True})
def test_domain_c_build_function_param_target(app, warning):
# the anchor for function parameters should be the function
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "function_param_target")
assert len(ws) == 0
entries = extract_role_links(app, "function_param_target.html")
@@ -716,14 +712,14 @@ def test_domain_c_build_function_param_target(app, warning):
@pytest.mark.sphinx(testroot='domain-c', confoverrides={'nitpicky': True})
def test_domain_c_build_ns_lookup(app, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "ns_lookup")
assert len(ws) == 0
@pytest.mark.sphinx(testroot='domain-c', confoverrides={'nitpicky': True})
def test_domain_c_build_field_role(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "field-role")
assert len(ws) == 0
@@ -753,7 +749,7 @@ def test_domain_c_build_intersphinx(tmp_path, app, status, warning):
.. c:type:: _type
.. c:function:: void _functionParam(int param)
-""" # noqa: F841
+""" # NoQA: F841
inv_file = tmp_path / 'inventory'
inv_file.write_bytes(b'''\
# Sphinx inventory version 2
@@ -773,7 +769,7 @@ _struct c:struct 1 index.html#c.$ -
_type c:type 1 index.html#c.$ -
_union c:union 1 index.html#c.$ -
_var c:member 1 index.html#c.$ -
-''')) # noqa: W291
+''')) # NoQA: W291
app.config.intersphinx_mapping = {
'https://localhost/intersphinx/c/': str(inv_file),
}
@@ -782,7 +778,7 @@ _var c:member 1 index.html#c.$ -
normalize_intersphinx_mapping(app, app.config)
load_mappings(app)
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "index")
assert len(ws) == 0
diff --git a/tests/test_domain_cpp.py b/tests/test_domains/test_domain_cpp.py
index dcc2b0f..abd0f82 100644
--- a/tests/test_domain_cpp.py
+++ b/tests/test_domains/test_domain_cpp.py
@@ -20,17 +20,13 @@ from sphinx.addnodes import (
desc_signature_line,
pending_xref,
)
-from sphinx.domains.cpp import (
- DefinitionError,
- DefinitionParser,
- NoOldIdError,
- Symbol,
- _id_prefix,
- _max_id,
-)
+from sphinx.domains.cpp._ids import _id_prefix, _max_id
+from sphinx.domains.cpp._parser import DefinitionParser
+from sphinx.domains.cpp._symbol import Symbol
from sphinx.ext.intersphinx import load_mappings, normalize_intersphinx_mapping
from sphinx.testing import restructuredtext
from sphinx.testing.util import assert_node
+from sphinx.util.cfamily import DefinitionError, NoOldIdError
from sphinx.writers.text import STDINDENT
@@ -67,7 +63,7 @@ def _check(name, input, idDict, output, key, asTextOutput):
ast = parse(name, inputActual)
res = str(ast)
if res != outputAst:
- print("")
+ print()
print("Input: ", input)
print("Result: ", res)
print("Expected: ", outputAst)
@@ -80,7 +76,7 @@ def _check(name, input, idDict, output, key, asTextOutput):
ast.describe_signature(signode, 'lastIsName', symbol, options={})
resAsText = parentNode.astext()
if resAsText != outputAsText:
- print("")
+ print()
print("Input: ", input)
print("astext(): ", resAsText)
print("Expected: ", outputAsText)
@@ -129,7 +125,7 @@ def check(name, input, idDict, output=None, key=None, asTextOutput=None):
@pytest.mark.parametrize(('type_', 'id_v2'),
- sphinx.domains.cpp._id_fundamental_v2.items())
+ sphinx.domains.cpp._ids._id_fundamental_v2.items())
def test_domain_cpp_ast_fundamental_types(type_, id_v2):
# see https://en.cppreference.com/w/cpp/language/types
def make_id_v1():
@@ -184,14 +180,14 @@ def test_domain_cpp_ast_expressions():
ast = parser.parse_expression()
res = str(ast)
if res != expr:
- print("")
+ print()
print("Input: ", expr)
print("Result: ", res)
raise DefinitionError
displayString = ast.get_display_string()
if res != displayString:
# note: if the expression contains an anon name then this will trigger a falsely
- print("")
+ print()
print("Input: ", expr)
print("Result: ", res)
print("Display: ", displayString)
@@ -1116,7 +1112,7 @@ def filter_warnings(warning, file):
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
def test_domain_cpp_build_multi_decl_lookup(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "lookup-key-overload")
assert len(ws) == 0
@@ -1126,7 +1122,7 @@ def test_domain_cpp_build_multi_decl_lookup(app, status, warning):
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
def test_domain_cpp_build_warn_template_param_qualified_name(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "warn-template-param-qualified-name")
assert len(ws) == 2
assert "WARNING: cpp:type reference target not found: T::typeWarn" in ws[0]
@@ -1135,14 +1131,14 @@ def test_domain_cpp_build_warn_template_param_qualified_name(app, status, warnin
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
def test_domain_cpp_build_backslash_ok_true(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "backslash")
assert len(ws) == 0
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
def test_domain_cpp_build_semicolon(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "semicolon")
assert len(ws) == 0
@@ -1150,7 +1146,7 @@ def test_domain_cpp_build_semicolon(app, status, warning):
@pytest.mark.sphinx(testroot='domain-cpp',
confoverrides={'nitpicky': True, 'strip_signature_backslash': True})
def test_domain_cpp_build_backslash_ok_false(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "backslash")
assert len(ws) == 1
assert "WARNING: Parsing of expression failed. Using fallback parser." in ws[0]
@@ -1158,7 +1154,7 @@ def test_domain_cpp_build_backslash_ok_false(app, status, warning):
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
def test_domain_cpp_build_anon_dup_decl(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "anon-dup-decl")
assert len(ws) == 2
assert "WARNING: cpp:identifier reference target not found: @a" in ws[0]
@@ -1167,7 +1163,7 @@ def test_domain_cpp_build_anon_dup_decl(app, status, warning):
@pytest.mark.sphinx(testroot='domain-cpp')
def test_domain_cpp_build_misuse_of_roles(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "roles-targets-ok")
assert len(ws) == 0
@@ -1215,7 +1211,7 @@ def test_domain_cpp_build_misuse_of_roles(app, status, warning):
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'add_function_parentheses': True})
def test_domain_cpp_build_with_add_function_parentheses_is_True(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
def check(spec, text, file):
pattern = '<li><p>%s<a .*?><code .*?><span .*?>%s</span></code></a></p></li>' % spec
@@ -1256,7 +1252,7 @@ def test_domain_cpp_build_with_add_function_parentheses_is_True(app, status, war
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'add_function_parentheses': False})
def test_domain_cpp_build_with_add_function_parentheses_is_False(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
def check(spec, text, file):
pattern = '<li><p>%s<a .*?><code .*?><span .*?>%s</span></code></a></p></li>' % spec
@@ -1297,7 +1293,7 @@ def test_domain_cpp_build_with_add_function_parentheses_is_False(app, status, wa
@pytest.mark.sphinx(testroot='domain-cpp')
def test_domain_cpp_build_xref_consistency(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
test = 'xref_consistency.html'
output = (app.outdir / test).read_text(encoding='utf8')
@@ -1361,11 +1357,24 @@ not found in `{test}`
@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
def test_domain_cpp_build_field_role(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "field-role")
assert len(ws) == 0
+@pytest.mark.sphinx(testroot='domain-cpp', confoverrides={'nitpicky': True})
+def test_domain_cpp_build_operator_lookup(app, status, warning):
+ app.builder.build_all()
+ ws = filter_warnings(warning, "operator-lookup")
+ assert len(ws) == 5
+ # TODO: the first one should not happen
+ assert ":10: WARNING: cpp:identifier reference target not found: _lit" in ws[0]
+ assert ":18: WARNING: cpp:func reference target not found: int h" in ws[1]
+ assert ":19: WARNING: cpp:func reference target not found: int operator+(bool, bool)" in ws[2]
+ assert ":20: WARNING: cpp:func reference target not found: int operator\"\"_udl" in ws[3]
+ assert ":21: WARNING: cpp:func reference target not found: operator bool" in ws[4]
+
+
@pytest.mark.sphinx(testroot='domain-cpp-intersphinx', confoverrides={'nitpicky': True})
def test_domain_cpp_build_intersphinx(tmp_path, app, status, warning):
origSource = """\
@@ -1388,7 +1397,7 @@ def test_domain_cpp_build_intersphinx(tmp_path, app, status, warning):
.. cpp:enum-class:: _enumClass
.. cpp:function:: void _functionParam(int param)
.. cpp:function:: template<typename TParam> void _templateParam()
-""" # noqa: F841
+""" # NoQA: F841
inv_file = tmp_path / 'inventory'
inv_file.write_bytes(b'''\
# Sphinx inventory version 2
@@ -1415,7 +1424,7 @@ _templateParam::TParam cpp:templateParam 1 index.html#_CPPv4I0E14_templateParamv
_type cpp:type 1 index.html#_CPPv45$ -
_union cpp:union 1 index.html#_CPPv46$ -
_var cpp:member 1 index.html#_CPPv44$ -
-''')) # noqa: W291
+''')) # NoQA: W291
app.config.intersphinx_mapping = {
'https://localhost/intersphinx/cpp/': str(inv_file),
}
@@ -1424,7 +1433,7 @@ _var cpp:member 1 index.html#_CPPv44$ -
normalize_intersphinx_mapping(app, app.config)
load_mappings(app)
- app.builder.build_all()
+ app.build(force_all=True)
ws = filter_warnings(warning, "index")
assert len(ws) == 0
diff --git a/tests/test_domain_js.py b/tests/test_domains/test_domain_js.py
index bf4c3fe..995a440 100644
--- a/tests/test_domain_js.py
+++ b/tests/test_domains/test_domain_js.py
@@ -28,7 +28,7 @@ from sphinx.writers.text import STDINDENT
@pytest.mark.sphinx('dummy', testroot='domain-js')
def test_domain_js_xrefs(app, status, warning):
"""Domain objects have correct prefixes when looking up xrefs"""
- app.builder.build_all()
+ app.build(force_all=True)
def assert_refnode(node, mod_name, prefix, target, reftype=None,
domain='js'):
@@ -83,7 +83,7 @@ def test_domain_js_xrefs(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='domain-js')
def test_domain_js_objects(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
modules = app.env.domains['js'].data['modules']
objects = app.env.domains['js'].data['objects']
@@ -118,7 +118,7 @@ def test_domain_js_find_obj(app, status, warning):
return app.env.domains['js'].find_obj(
app.env, mod_name, prefix, obj_name, obj_type, searchmode)
- app.builder.build_all()
+ app.build(force_all=True)
assert (find_obj(None, None, 'NONEXISTANT', 'class') == (None, None))
assert (find_obj(None, None, 'NestedParentA', 'class') ==
diff --git a/tests/test_domains/test_domain_py.py b/tests/test_domains/test_domain_py.py
new file mode 100644
index 0000000..e653c80
--- /dev/null
+++ b/tests/test_domains/test_domain_py.py
@@ -0,0 +1,1015 @@
+"""Tests the Python Domain"""
+
+from __future__ import annotations
+
+import re
+from unittest.mock import Mock
+
+import docutils.utils
+import pytest
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.addnodes import (
+ desc,
+ desc_annotation,
+ desc_content,
+ desc_name,
+ desc_parameter,
+ desc_parameterlist,
+ desc_returns,
+ desc_sig_keyword,
+ desc_sig_literal_number,
+ desc_sig_literal_string,
+ desc_sig_name,
+ desc_sig_operator,
+ desc_sig_punctuation,
+ desc_sig_space,
+ desc_signature,
+ desc_type_parameter,
+ desc_type_parameter_list,
+ pending_xref,
+)
+from sphinx.domains import IndexEntry
+from sphinx.domains.python import PythonDomain, PythonModuleIndex
+from sphinx.domains.python._annotations import _parse_annotation, _pseudo_parse_arglist
+from sphinx.domains.python._object import py_sig_re
+from sphinx.testing import restructuredtext
+from sphinx.testing.util import assert_node
+from sphinx.writers.text import STDINDENT
+
+
+def parse(sig):
+ m = py_sig_re.match(sig)
+ if m is None:
+ raise ValueError
+ name_prefix, tp_list, name, arglist, retann = m.groups()
+ signode = addnodes.desc_signature(sig, '')
+ _pseudo_parse_arglist(signode, arglist)
+ return signode.astext()
+
+
+def test_function_signatures():
+ rv = parse('func(a=1) -> int object')
+ assert rv == '(a=1)'
+
+ rv = parse('func(a=1, [b=None])')
+ assert rv == '(a=1, [b=None])'
+
+ rv = parse('func(a=1[, b=None])')
+ assert rv == '(a=1, [b=None])'
+
+ rv = parse("compile(source : string, filename, symbol='file')")
+ assert rv == "(source : string, filename, symbol='file')"
+
+ rv = parse('func(a=[], [b=None])')
+ assert rv == '(a=[], [b=None])'
+
+ rv = parse('func(a=[][, b=None])')
+ assert rv == '(a=[], [b=None])'
+
+
+@pytest.mark.sphinx('dummy', testroot='domain-py')
+def test_domain_py_xrefs(app, status, warning):
+ """Domain objects have correct prefixes when looking up xrefs"""
+ app.build(force_all=True)
+
+ def assert_refnode(node, module_name, class_name, target, reftype=None,
+ domain='py'):
+ attributes = {
+ 'refdomain': domain,
+ 'reftarget': target,
+ }
+ if reftype is not None:
+ attributes['reftype'] = reftype
+ if module_name is not False:
+ attributes['py:module'] = module_name
+ if class_name is not False:
+ attributes['py:class'] = class_name
+ assert_node(node, **attributes)
+
+ doctree = app.env.get_doctree('roles')
+ refnodes = list(doctree.findall(pending_xref))
+ assert_refnode(refnodes[0], None, None, 'TopLevel', 'class')
+ assert_refnode(refnodes[1], None, None, 'top_level', 'meth')
+ assert_refnode(refnodes[2], None, 'NestedParentA', 'child_1', 'meth')
+ assert_refnode(refnodes[3], None, 'NestedParentA', 'NestedChildA.subchild_2', 'meth')
+ assert_refnode(refnodes[4], None, 'NestedParentA', 'child_2', 'meth')
+ assert_refnode(refnodes[5], False, 'NestedParentA', 'any_child', domain='')
+ assert_refnode(refnodes[6], None, 'NestedParentA', 'NestedChildA', 'class')
+ assert_refnode(refnodes[7], None, 'NestedParentA.NestedChildA', 'subchild_2', 'meth')
+ assert_refnode(refnodes[8], None, 'NestedParentA.NestedChildA',
+ 'NestedParentA.child_1', 'meth')
+ assert_refnode(refnodes[9], None, 'NestedParentA', 'NestedChildA.subchild_1', 'meth')
+ assert_refnode(refnodes[10], None, 'NestedParentB', 'child_1', 'meth')
+ assert_refnode(refnodes[11], None, 'NestedParentB', 'NestedParentB', 'class')
+ assert_refnode(refnodes[12], None, None, 'NestedParentA.NestedChildA', 'class')
+ assert len(refnodes) == 13
+
+ doctree = app.env.get_doctree('module')
+ refnodes = list(doctree.findall(pending_xref))
+ assert_refnode(refnodes[0], 'module_a.submodule', None,
+ 'ModTopLevel', 'class')
+ assert_refnode(refnodes[1], 'module_a.submodule', 'ModTopLevel',
+ 'mod_child_1', 'meth')
+ assert_refnode(refnodes[2], 'module_a.submodule', 'ModTopLevel',
+ 'ModTopLevel.mod_child_1', 'meth')
+ assert_refnode(refnodes[3], 'module_a.submodule', 'ModTopLevel',
+ 'mod_child_2', 'meth')
+ assert_refnode(refnodes[4], 'module_a.submodule', 'ModTopLevel',
+ 'module_a.submodule.ModTopLevel.mod_child_1', 'meth')
+ assert_refnode(refnodes[5], 'module_a.submodule', 'ModTopLevel',
+ 'prop', 'attr')
+ assert_refnode(refnodes[6], 'module_a.submodule', 'ModTopLevel',
+ 'prop', 'meth')
+ assert_refnode(refnodes[7], 'module_b.submodule', None,
+ 'ModTopLevel', 'class')
+ assert_refnode(refnodes[8], 'module_b.submodule', 'ModTopLevel',
+ 'ModNoModule', 'class')
+ assert_refnode(refnodes[9], False, False, 'int', 'class')
+ assert_refnode(refnodes[10], False, False, 'tuple', 'class')
+ assert_refnode(refnodes[11], False, False, 'str', 'class')
+ assert_refnode(refnodes[12], False, False, 'float', 'class')
+ assert_refnode(refnodes[13], False, False, 'list', 'class')
+ assert_refnode(refnodes[14], False, False, 'ModTopLevel', 'class')
+ assert_refnode(refnodes[15], False, False, 'index', 'doc', domain='std')
+ assert_refnode(refnodes[16], False, False, 'typing.Literal', 'obj', domain='py')
+ assert_refnode(refnodes[17], False, False, 'typing.Literal', 'obj', domain='py')
+ assert len(refnodes) == 18
+
+ doctree = app.env.get_doctree('module_option')
+ refnodes = list(doctree.findall(pending_xref))
+ print(refnodes)
+ print(refnodes[0])
+ print(refnodes[1])
+ assert_refnode(refnodes[0], 'test.extra', 'B', 'foo', 'meth')
+ assert_refnode(refnodes[1], 'test.extra', 'B', 'foo', 'meth')
+ assert len(refnodes) == 2
+
+
+@pytest.mark.sphinx('html', testroot='domain-py')
+def test_domain_py_xrefs_abbreviations(app, status, warning):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'abbr.html').read_text(encoding='utf8')
+ assert re.search(r'normal: <a .* href="module.html#module_a.submodule.ModTopLevel.'
+ r'mod_child_1" .*><.*>module_a.submodule.ModTopLevel.mod_child_1\(\)'
+ r'<.*></a>',
+ content)
+ assert re.search(r'relative: <a .* href="module.html#module_a.submodule.ModTopLevel.'
+ r'mod_child_1" .*><.*>ModTopLevel.mod_child_1\(\)<.*></a>',
+ content)
+ assert re.search(r'short name: <a .* href="module.html#module_a.submodule.ModTopLevel.'
+ r'mod_child_1" .*><.*>mod_child_1\(\)<.*></a>',
+ content)
+ assert re.search(r'relative \+ short name: <a .* href="module.html#module_a.submodule.'
+ r'ModTopLevel.mod_child_1" .*><.*>mod_child_1\(\)<.*></a>',
+ content)
+ assert re.search(r'short name \+ relative: <a .* href="module.html#module_a.submodule.'
+ r'ModTopLevel.mod_child_1" .*><.*>mod_child_1\(\)<.*></a>',
+ content)
+
+
+@pytest.mark.sphinx('dummy', testroot='domain-py')
+def test_domain_py_objects(app, status, warning):
+ app.build(force_all=True)
+
+ modules = app.env.domains['py'].data['modules']
+ objects = app.env.domains['py'].data['objects']
+
+ assert 'module_a.submodule' in modules
+ assert 'module_a.submodule' in objects
+ assert 'module_b.submodule' in modules
+ assert 'module_b.submodule' in objects
+
+ assert objects['module_a.submodule.ModTopLevel'][2] == 'class'
+ assert objects['module_a.submodule.ModTopLevel.mod_child_1'][2] == 'method'
+ assert objects['module_a.submodule.ModTopLevel.mod_child_2'][2] == 'method'
+ assert 'ModTopLevel.ModNoModule' not in objects
+ assert objects['ModNoModule'][2] == 'class'
+ assert objects['module_b.submodule.ModTopLevel'][2] == 'class'
+
+ assert objects['TopLevel'][2] == 'class'
+ assert objects['top_level'][2] == 'method'
+ assert objects['NestedParentA'][2] == 'class'
+ assert objects['NestedParentA.child_1'][2] == 'method'
+ assert objects['NestedParentA.any_child'][2] == 'method'
+ assert objects['NestedParentA.NestedChildA'][2] == 'class'
+ assert objects['NestedParentA.NestedChildA.subchild_1'][2] == 'method'
+ assert objects['NestedParentA.NestedChildA.subchild_2'][2] == 'method'
+ assert objects['NestedParentA.child_2'][2] == 'method'
+ assert objects['NestedParentB'][2] == 'class'
+ assert objects['NestedParentB.child_1'][2] == 'method'
+
+
+@pytest.mark.sphinx('html', testroot='domain-py')
+def test_resolve_xref_for_properties(app, status, warning):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'module.html').read_text(encoding='utf8')
+ assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"'
+ ' title="module_a.submodule.ModTopLevel.prop">'
+ '<code class="xref py py-attr docutils literal notranslate"><span class="pre">'
+ 'prop</span> <span class="pre">attribute</span></code></a>' in content)
+ assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"'
+ ' title="module_a.submodule.ModTopLevel.prop">'
+ '<code class="xref py py-meth docutils literal notranslate"><span class="pre">'
+ 'prop</span> <span class="pre">method</span></code></a>' in content)
+ assert ('Link to <a class="reference internal" href="#module_a.submodule.ModTopLevel.prop"'
+ ' title="module_a.submodule.ModTopLevel.prop">'
+ '<code class="xref py py-attr docutils literal notranslate"><span class="pre">'
+ 'prop</span> <span class="pre">attribute</span></code></a>' in content)
+
+
+@pytest.mark.sphinx('dummy', testroot='domain-py')
+def test_domain_py_find_obj(app, status, warning):
+
+ def find_obj(modname, prefix, obj_name, obj_type, searchmode=0):
+ return app.env.domains['py'].find_obj(
+ app.env, modname, prefix, obj_name, obj_type, searchmode)
+
+ app.build(force_all=True)
+
+ assert (find_obj(None, None, 'NONEXISTANT', 'class') == [])
+ assert (find_obj(None, None, 'NestedParentA', 'class') ==
+ [('NestedParentA', ('roles', 'NestedParentA', 'class', False))])
+ assert (find_obj(None, None, 'NestedParentA.NestedChildA', 'class') ==
+ [('NestedParentA.NestedChildA',
+ ('roles', 'NestedParentA.NestedChildA', 'class', False))])
+ assert (find_obj(None, 'NestedParentA', 'NestedChildA', 'class') ==
+ [('NestedParentA.NestedChildA',
+ ('roles', 'NestedParentA.NestedChildA', 'class', False))])
+ assert (find_obj(None, None, 'NestedParentA.NestedChildA.subchild_1', 'meth') ==
+ [('NestedParentA.NestedChildA.subchild_1',
+ ('roles', 'NestedParentA.NestedChildA.subchild_1', 'method', False))])
+ assert (find_obj(None, 'NestedParentA', 'NestedChildA.subchild_1', 'meth') ==
+ [('NestedParentA.NestedChildA.subchild_1',
+ ('roles', 'NestedParentA.NestedChildA.subchild_1', 'method', False))])
+ assert (find_obj(None, 'NestedParentA.NestedChildA', 'subchild_1', 'meth') ==
+ [('NestedParentA.NestedChildA.subchild_1',
+ ('roles', 'NestedParentA.NestedChildA.subchild_1', 'method', False))])
+
+
+def test_get_full_qualified_name():
+ env = Mock(domaindata={})
+ domain = PythonDomain(env)
+
+ # non-python references
+ node = nodes.reference()
+ assert domain.get_full_qualified_name(node) is None
+
+ # simple reference
+ node = nodes.reference(reftarget='func')
+ assert domain.get_full_qualified_name(node) == 'func'
+
+ # with py:module context
+ kwargs = {'py:module': 'module1'}
+ node = nodes.reference(reftarget='func', **kwargs)
+ assert domain.get_full_qualified_name(node) == 'module1.func'
+
+ # with py:class context
+ kwargs = {'py:class': 'Class'}
+ node = nodes.reference(reftarget='func', **kwargs)
+ assert domain.get_full_qualified_name(node) == 'Class.func'
+
+ # with both py:module and py:class context
+ kwargs = {'py:module': 'module1', 'py:class': 'Class'}
+ node = nodes.reference(reftarget='func', **kwargs)
+ assert domain.get_full_qualified_name(node) == 'module1.Class.func'
+
+
+def test_parse_annotation(app):
+ doctree = _parse_annotation("int", app.env)
+ assert_node(doctree, ([pending_xref, "int"],))
+ assert_node(doctree[0], pending_xref, refdomain="py", reftype="class", reftarget="int")
+
+ doctree = _parse_annotation("List[int]", app.env)
+ assert_node(doctree, ([pending_xref, "List"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "int"],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("Tuple[int, int]", app.env)
+ assert_node(doctree, ([pending_xref, "Tuple"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "int"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [pending_xref, "int"],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("Tuple[()]", app.env)
+ assert_node(doctree, ([pending_xref, "Tuple"],
+ [desc_sig_punctuation, "["],
+ [desc_sig_punctuation, "("],
+ [desc_sig_punctuation, ")"],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("Tuple[int, ...]", app.env)
+ assert_node(doctree, ([pending_xref, "Tuple"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "int"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [desc_sig_punctuation, "..."],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("Callable[[int, int], int]", app.env)
+ assert_node(doctree, ([pending_xref, "Callable"],
+ [desc_sig_punctuation, "["],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "int"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [pending_xref, "int"],
+ [desc_sig_punctuation, "]"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [pending_xref, "int"],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("Callable[[], int]", app.env)
+ assert_node(doctree, ([pending_xref, "Callable"],
+ [desc_sig_punctuation, "["],
+ [desc_sig_punctuation, "["],
+ [desc_sig_punctuation, "]"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [pending_xref, "int"],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("List[None]", app.env)
+ assert_node(doctree, ([pending_xref, "List"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "None"],
+ [desc_sig_punctuation, "]"]))
+
+ # None type makes an object-reference (not a class reference)
+ doctree = _parse_annotation("None", app.env)
+ assert_node(doctree, ([pending_xref, "None"],))
+ assert_node(doctree[0], pending_xref, refdomain="py", reftype="obj", reftarget="None")
+
+ # Literal type makes an object-reference (not a class reference)
+ doctree = _parse_annotation("typing.Literal['a', 'b']", app.env)
+ assert_node(doctree, ([pending_xref, "Literal"],
+ [desc_sig_punctuation, "["],
+ [desc_sig_literal_string, "'a'"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [desc_sig_literal_string, "'b'"],
+ [desc_sig_punctuation, "]"]))
+ assert_node(doctree[0], pending_xref, refdomain="py", reftype="obj", reftarget="typing.Literal")
+
+
+def test_parse_annotation_suppress(app):
+ doctree = _parse_annotation("~typing.Dict[str, str]", app.env)
+ assert_node(doctree, ([pending_xref, "Dict"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "str"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [pending_xref, "str"],
+ [desc_sig_punctuation, "]"]))
+ assert_node(doctree[0], pending_xref, refdomain="py", reftype="obj", reftarget="typing.Dict")
+
+
+def test_parse_annotation_Literal(app):
+ doctree = _parse_annotation("Literal[True, False]", app.env)
+ assert_node(doctree, ([pending_xref, "Literal"],
+ [desc_sig_punctuation, "["],
+ [desc_sig_keyword, "True"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [desc_sig_keyword, "False"],
+ [desc_sig_punctuation, "]"]))
+
+ doctree = _parse_annotation("typing.Literal[0, 1, 'abc']", app.env)
+ assert_node(doctree, ([pending_xref, "Literal"],
+ [desc_sig_punctuation, "["],
+ [desc_sig_literal_number, "0"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [desc_sig_literal_number, "1"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [desc_sig_literal_string, "'abc'"],
+ [desc_sig_punctuation, "]"]))
+
+
+@pytest.mark.sphinx(freshenv=True)
+def test_module_index(app):
+ text = (".. py:module:: docutils\n"
+ ".. py:module:: sphinx\n"
+ ".. py:module:: sphinx.config\n"
+ ".. py:module:: sphinx.builders\n"
+ ".. py:module:: sphinx.builders.html\n"
+ ".. py:module:: sphinx_intl\n")
+ restructuredtext.parse(app, text)
+ index = PythonModuleIndex(app.env.get_domain('py'))
+ assert index.generate() == (
+ [('d', [IndexEntry('docutils', 0, 'index', 'module-docutils', '', '', '')]),
+ ('s', [IndexEntry('sphinx', 1, 'index', 'module-sphinx', '', '', ''),
+ IndexEntry('sphinx.builders', 2, 'index', 'module-sphinx.builders', '', '', ''),
+ IndexEntry('sphinx.builders.html', 2, 'index', 'module-sphinx.builders.html', '', '', ''),
+ IndexEntry('sphinx.config', 2, 'index', 'module-sphinx.config', '', '', ''),
+ IndexEntry('sphinx_intl', 0, 'index', 'module-sphinx_intl', '', '', '')])],
+ False,
+ )
+
+
+@pytest.mark.sphinx(freshenv=True)
+def test_module_index_submodule(app):
+ text = ".. py:module:: sphinx.config\n"
+ restructuredtext.parse(app, text)
+ index = PythonModuleIndex(app.env.get_domain('py'))
+ assert index.generate() == (
+ [('s', [IndexEntry('sphinx', 1, '', '', '', '', ''),
+ IndexEntry('sphinx.config', 2, 'index', 'module-sphinx.config', '', '', '')])],
+ False,
+ )
+
+
+@pytest.mark.sphinx(freshenv=True)
+def test_module_index_not_collapsed(app):
+ text = (".. py:module:: docutils\n"
+ ".. py:module:: sphinx\n")
+ restructuredtext.parse(app, text)
+ index = PythonModuleIndex(app.env.get_domain('py'))
+ assert index.generate() == (
+ [('d', [IndexEntry('docutils', 0, 'index', 'module-docutils', '', '', '')]),
+ ('s', [IndexEntry('sphinx', 0, 'index', 'module-sphinx', '', '', '')])],
+ True,
+ )
+
+
+@pytest.mark.sphinx(freshenv=True, confoverrides={'modindex_common_prefix': ['sphinx.']})
+def test_modindex_common_prefix(app):
+ text = (".. py:module:: docutils\n"
+ ".. py:module:: sphinx\n"
+ ".. py:module:: sphinx.config\n"
+ ".. py:module:: sphinx.builders\n"
+ ".. py:module:: sphinx.builders.html\n"
+ ".. py:module:: sphinx_intl\n")
+ restructuredtext.parse(app, text)
+ index = PythonModuleIndex(app.env.get_domain('py'))
+ assert index.generate() == (
+ [('b', [IndexEntry('sphinx.builders', 1, 'index', 'module-sphinx.builders', '', '', ''),
+ IndexEntry('sphinx.builders.html', 2, 'index', 'module-sphinx.builders.html', '', '', '')]),
+ ('c', [IndexEntry('sphinx.config', 0, 'index', 'module-sphinx.config', '', '', '')]),
+ ('d', [IndexEntry('docutils', 0, 'index', 'module-docutils', '', '', '')]),
+ ('s', [IndexEntry('sphinx', 0, 'index', 'module-sphinx', '', '', ''),
+ IndexEntry('sphinx_intl', 0, 'index', 'module-sphinx_intl', '', '', '')])],
+ True,
+ )
+
+
+def test_no_index_entry(app):
+ text = (".. py:function:: f()\n"
+ ".. py:function:: g()\n"
+ " :no-index-entry:\n")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index, desc, addnodes.index, desc))
+ assert_node(doctree[0], addnodes.index, entries=[('pair', 'built-in function; f()', 'f', '', None)])
+ assert_node(doctree[2], addnodes.index, entries=[])
+
+ text = (".. py:class:: f\n"
+ ".. py:class:: g\n"
+ " :no-index-entry:\n")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index, desc, addnodes.index, desc))
+ assert_node(doctree[0], addnodes.index, entries=[('single', 'f (built-in class)', 'f', '', None)])
+ assert_node(doctree[2], addnodes.index, entries=[])
+
+
+@pytest.mark.sphinx('html', testroot='domain-py-python_use_unqualified_type_names')
+def test_python_python_use_unqualified_type_names(app, status, warning):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<span class="n"><a class="reference internal" href="#foo.Name" title="foo.Name">'
+ '<span class="pre">Name</span></a></span>' in content)
+ assert '<span class="n"><span class="pre">foo.Age</span></span>' in content
+ assert ('<p><strong>name</strong> (<a class="reference internal" href="#foo.Name" '
+ 'title="foo.Name"><em>Name</em></a>) – blah blah</p>' in content)
+ assert '<p><strong>age</strong> (<em>foo.Age</em>) – blah blah</p>' in content
+
+
+@pytest.mark.sphinx('html', testroot='domain-py-python_use_unqualified_type_names',
+ confoverrides={'python_use_unqualified_type_names': False})
+def test_python_python_use_unqualified_type_names_disabled(app, status, warning):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<span class="n"><a class="reference internal" href="#foo.Name" title="foo.Name">'
+ '<span class="pre">foo.Name</span></a></span>' in content)
+ assert '<span class="n"><span class="pre">foo.Age</span></span>' in content
+ assert ('<p><strong>name</strong> (<a class="reference internal" href="#foo.Name" '
+ 'title="foo.Name"><em>foo.Name</em></a>) – blah blah</p>' in content)
+ assert '<p><strong>age</strong> (<em>foo.Age</em>) – blah blah</p>' in content
+
+
+@pytest.mark.sphinx('dummy', testroot='domain-py-xref-warning')
+def test_warn_missing_reference(app, status, warning):
+ app.build()
+ assert "index.rst:6: WARNING: undefined label: 'no-label'" in warning.getvalue()
+ assert ("index.rst:6: WARNING: Failed to create a cross reference. "
+ "A title or caption not found: 'existing-label'") in warning.getvalue()
+
+
+@pytest.mark.sphinx(confoverrides={'nitpicky': True})
+@pytest.mark.parametrize('include_options', [True, False])
+def test_signature_line_number(app, include_options):
+ text = (".. py:function:: foo(bar : string)\n" +
+ (" :no-index-entry:\n" if include_options else ""))
+ doc = restructuredtext.parse(app, text)
+ xrefs = list(doc.findall(condition=addnodes.pending_xref))
+ assert len(xrefs) == 1
+ source, line = docutils.utils.get_source_line(xrefs[0])
+ assert 'index.rst' in source
+ assert line == 1
+
+
+@pytest.mark.sphinx(
+ 'html',
+ confoverrides={
+ 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
+ 'maximum_signature_line_length': 1,
+ },
+)
+def test_python_maximum_signature_line_length_overrides_global(app):
+ text = ".. py:function:: hello(name: str) -> str"
+ doctree = restructuredtext.parse(app, text)
+ expected_doctree = (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"])],
+ desc_content)])
+ assert_node(doctree, expected_doctree)
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ signame_node = [desc_sig_name, "name"]
+ expected_sig = [desc_parameterlist, desc_parameter, (signame_node,
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"])]
+ assert_node(doctree[1][0][1], expected_sig)
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
+
+
+@pytest.mark.sphinx(
+ 'html', testroot='domain-py-python_maximum_signature_line_length',
+)
+def test_domain_py_python_maximum_signature_line_length_in_html(app, status, warning):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ expected_parameter_list_hello = """\
+
+<dl>
+<dd>\
+<em class="sig-param">\
+<span class="n"><span class="pre">name</span></span>\
+<span class="p"><span class="pre">:</span></span>\
+<span class="w"> </span>\
+<span class="n"><span class="pre">str</span></span>\
+</em>,\
+</dd>
+</dl>
+
+<span class="sig-paren">)</span> \
+<span class="sig-return">\
+<span class="sig-return-icon">&#x2192;</span> \
+<span class="sig-return-typehint"><span class="pre">str</span></span>\
+</span>\
+<a class="headerlink" href="#hello" title="Link to this definition">¶</a>\
+</dt>\
+"""
+ assert expected_parameter_list_hello in content
+
+ param_line_fmt = '<dd>{}</dd>\n'
+ param_name_fmt = (
+ '<em class="sig-param"><span class="n"><span class="pre">{}</span></span></em>'
+ )
+ optional_fmt = '<span class="optional">{}</span>'
+
+ expected_a = param_line_fmt.format(
+ optional_fmt.format("[") + param_name_fmt.format("a") + "," + optional_fmt.format("["),
+ )
+ assert expected_a in content
+
+ expected_b = param_line_fmt.format(
+ param_name_fmt.format("b") + "," + optional_fmt.format("]") + optional_fmt.format("]"),
+ )
+ assert expected_b in content
+
+ expected_c = param_line_fmt.format(param_name_fmt.format("c") + ",")
+ assert expected_c in content
+
+ expected_d = param_line_fmt.format(param_name_fmt.format("d") + optional_fmt.format("[") + ",")
+ assert expected_d in content
+
+ expected_e = param_line_fmt.format(param_name_fmt.format("e") + ",")
+ assert expected_e in content
+
+ expected_f = param_line_fmt.format(param_name_fmt.format("f") + "," + optional_fmt.format("]"))
+ assert expected_f in content
+
+ expected_parameter_list_foo = """\
+
+<dl>
+{}{}{}{}{}{}</dl>
+
+<span class="sig-paren">)</span>\
+<a class="headerlink" href="#foo" title="Link to this definition">¶</a>\
+</dt>\
+""".format(expected_a, expected_b, expected_c, expected_d, expected_e, expected_f)
+ assert expected_parameter_list_foo in content
+
+
+@pytest.mark.sphinx(
+ 'text', testroot='domain-py-python_maximum_signature_line_length',
+)
+def test_domain_py_python_maximum_signature_line_length_in_text(app, status, warning):
+ app.build()
+ content = (app.outdir / 'index.txt').read_text(encoding='utf8')
+ param_line_fmt = STDINDENT * " " + "{}\n"
+
+ expected_parameter_list_hello = "(\n{}) -> str".format(param_line_fmt.format("name: str,"))
+
+ assert expected_parameter_list_hello in content
+
+ expected_a = param_line_fmt.format("[a,[")
+ assert expected_a in content
+
+ expected_b = param_line_fmt.format("b,]]")
+ assert expected_b in content
+
+ expected_c = param_line_fmt.format("c,")
+ assert expected_c in content
+
+ expected_d = param_line_fmt.format("d[,")
+ assert expected_d in content
+
+ expected_e = param_line_fmt.format("e,")
+ assert expected_e in content
+
+ expected_f = param_line_fmt.format("f,]")
+ assert expected_f in content
+
+ expected_parameter_list_foo = "(\n{}{}{}{}{}{})".format(
+ expected_a, expected_b, expected_c, expected_d, expected_e, expected_f,
+ )
+ assert expected_parameter_list_foo in content
+
+
+def test_module_content_line_number(app):
+ text = (".. py:module:: foo\n" +
+ "\n" +
+ " Some link here: :ref:`abc`\n")
+ doc = restructuredtext.parse(app, text)
+ xrefs = list(doc.findall(condition=addnodes.pending_xref))
+ assert len(xrefs) == 1
+ source, line = docutils.utils.get_source_line(xrefs[0])
+ assert 'index.rst' in source
+ assert line == 3
+
+
+@pytest.mark.sphinx(freshenv=True, confoverrides={'python_display_short_literal_types': True})
+def test_short_literal_types(app):
+ text = """\
+.. py:function:: literal_ints(x: Literal[1, 2, 3] = 1) -> None
+.. py:function:: literal_union(x: Union[Literal["a"], Literal["b"], Literal["c"]]) -> None
+"""
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, 'literal_ints'],
+ [desc_parameterlist, (
+ [desc_parameter, (
+ [desc_sig_name, 'x'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, (
+ [desc_sig_literal_number, '1'],
+ desc_sig_space,
+ [desc_sig_punctuation, '|'],
+ desc_sig_space,
+ [desc_sig_literal_number, '2'],
+ desc_sig_space,
+ [desc_sig_punctuation, '|'],
+ desc_sig_space,
+ [desc_sig_literal_number, '3'],
+ )],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, '1'],
+ )],
+ )],
+ [desc_returns, pending_xref, 'None'],
+ )],
+ [desc_content, ()],
+ )],
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, 'literal_union'],
+ [desc_parameterlist, (
+ [desc_parameter, (
+ [desc_sig_name, 'x'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, (
+ [desc_sig_literal_string, "'a'"],
+ desc_sig_space,
+ [desc_sig_punctuation, '|'],
+ desc_sig_space,
+ [desc_sig_literal_string, "'b'"],
+ desc_sig_space,
+ [desc_sig_punctuation, '|'],
+ desc_sig_space,
+ [desc_sig_literal_string, "'c'"],
+ )],
+ )],
+ )],
+ [desc_returns, pending_xref, 'None'],
+ )],
+ [desc_content, ()],
+ )],
+ ))
+
+
+def test_function_pep_695(app):
+ text = """.. py:function:: func[\
+ S,\
+ T: int,\
+ U: (int, str),\
+ R: int | int,\
+ A: int | Annotated[int, ctype("char")],\
+ *V,\
+ **P\
+ ]
+ """
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, 'func'],
+ [desc_type_parameter_list, (
+ [desc_type_parameter, ([desc_sig_name, 'S'])],
+ [desc_type_parameter, (
+ [desc_sig_name, 'T'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, ([pending_xref, 'int'])],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_name, 'U'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_punctuation, '('],
+ [desc_sig_name, (
+ [pending_xref, 'int'],
+ [desc_sig_punctuation, ','],
+ desc_sig_space,
+ [pending_xref, 'str'],
+ )],
+ [desc_sig_punctuation, ')'],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_name, 'R'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, (
+ [pending_xref, 'int'],
+ desc_sig_space,
+ [desc_sig_punctuation, '|'],
+ desc_sig_space,
+ [pending_xref, 'int'],
+ )],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_name, 'A'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, ([pending_xref, 'int | Annotated[int, ctype("char")]'])],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_operator, '*'],
+ [desc_sig_name, 'V'],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_operator, '**'],
+ [desc_sig_name, 'P'],
+ )],
+ )],
+ [desc_parameterlist, ()],
+ )],
+ [desc_content, ()],
+ )],
+ ))
+
+
+def test_class_def_pep_695(app):
+ # Non-concrete unbound generics are allowed at runtime but type checkers
+ # should fail (https://peps.python.org/pep-0695/#type-parameter-scopes)
+ text = """.. py:class:: Class[S: Sequence[T], T, KT, VT](Dict[KT, VT])"""
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_annotation, ('class', desc_sig_space)],
+ [desc_name, 'Class'],
+ [desc_type_parameter_list, (
+ [desc_type_parameter, (
+ [desc_sig_name, 'S'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, (
+ [pending_xref, 'Sequence'],
+ [desc_sig_punctuation, '['],
+ [pending_xref, 'T'],
+ [desc_sig_punctuation, ']'],
+ )],
+ )],
+ [desc_type_parameter, ([desc_sig_name, 'T'])],
+ [desc_type_parameter, ([desc_sig_name, 'KT'])],
+ [desc_type_parameter, ([desc_sig_name, 'VT'])],
+ )],
+ [desc_parameterlist, ([desc_parameter, 'Dict[KT, VT]'])],
+ )],
+ [desc_content, ()],
+ )],
+ ))
+
+
+def test_class_def_pep_696(app):
+ # test default values for type variables without using PEP 696 AST parser
+ text = """.. py:class:: Class[\
+ T, KT, VT,\
+ J: int,\
+ K = list,\
+ S: str = str,\
+ L: (T, tuple[T, ...], collections.abc.Iterable[T]) = set[T],\
+ Q: collections.abc.Mapping[KT, VT] = dict[KT, VT],\
+ *V = *tuple[*Ts, bool],\
+ **P = [int, Annotated[int, ValueRange(3, 10), ctype("char")]]\
+ ](Other[T, KT, VT, J, S, L, Q, *V, **P])
+ """
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_annotation, ('class', desc_sig_space)],
+ [desc_name, 'Class'],
+ [desc_type_parameter_list, (
+ [desc_type_parameter, ([desc_sig_name, 'T'])],
+ [desc_type_parameter, ([desc_sig_name, 'KT'])],
+ [desc_type_parameter, ([desc_sig_name, 'VT'])],
+ # J: int
+ [desc_type_parameter, (
+ [desc_sig_name, 'J'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, ([pending_xref, 'int'])],
+ )],
+ # K = list
+ [desc_type_parameter, (
+ [desc_sig_name, 'K'],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, 'list'],
+ )],
+ # S: str = str
+ [desc_type_parameter, (
+ [desc_sig_name, 'S'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, ([pending_xref, 'str'])],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, 'str'],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_name, 'L'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_punctuation, '('],
+ [desc_sig_name, (
+ # T
+ [pending_xref, 'T'],
+ [desc_sig_punctuation, ','],
+ desc_sig_space,
+ # tuple[T, ...]
+ [pending_xref, 'tuple'],
+ [desc_sig_punctuation, '['],
+ [pending_xref, 'T'],
+ [desc_sig_punctuation, ','],
+ desc_sig_space,
+ [desc_sig_punctuation, '...'],
+ [desc_sig_punctuation, ']'],
+ [desc_sig_punctuation, ','],
+ desc_sig_space,
+ # collections.abc.Iterable[T]
+ [pending_xref, 'collections.abc.Iterable'],
+ [desc_sig_punctuation, '['],
+ [pending_xref, 'T'],
+ [desc_sig_punctuation, ']'],
+ )],
+ [desc_sig_punctuation, ')'],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, 'set[T]'],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_name, 'Q'],
+ [desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [desc_sig_name, (
+ [pending_xref, 'collections.abc.Mapping'],
+ [desc_sig_punctuation, '['],
+ [pending_xref, 'KT'],
+ [desc_sig_punctuation, ','],
+ desc_sig_space,
+ [pending_xref, 'VT'],
+ [desc_sig_punctuation, ']'],
+ )],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, 'dict[KT, VT]'],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_operator, '*'],
+ [desc_sig_name, 'V'],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, '*tuple[*Ts, bool]'],
+ )],
+ [desc_type_parameter, (
+ [desc_sig_operator, '**'],
+ [desc_sig_name, 'P'],
+ desc_sig_space,
+ [desc_sig_operator, '='],
+ desc_sig_space,
+ [nodes.inline, '[int, Annotated[int, ValueRange(3, 10), ctype("char")]]'],
+ )],
+ )],
+ [desc_parameterlist, (
+ [desc_parameter, 'Other[T, KT, VT, J, S, L, Q, *V, **P]'],
+ )],
+ )],
+ [desc_content, ()],
+ )],
+ ))
+
+
+@pytest.mark.parametrize(('tp_list', 'tptext'), [
+ ('[T:int]', '[T: int]'),
+ ('[T:*Ts]', '[T: *Ts]'),
+ ('[T:int|(*Ts)]', '[T: int | (*Ts)]'),
+ ('[T:(*Ts)|int]', '[T: (*Ts) | int]'),
+ ('[T:(int|(*Ts))]', '[T: (int | (*Ts))]'),
+ ('[T:((*Ts)|int)]', '[T: ((*Ts) | int)]'),
+ ('[T:Annotated[int,ctype("char")]]', '[T: Annotated[int, ctype("char")]]'),
+])
+def test_pep_695_and_pep_696_whitespaces_in_bound(app, tp_list, tptext):
+ text = f'.. py:function:: f{tp_list}()'
+ doctree = restructuredtext.parse(app, text)
+ assert doctree.astext() == f'\n\nf{tptext}()\n\n'
+
+
+@pytest.mark.parametrize(('tp_list', 'tptext'), [
+ ('[T:(int,str)]', '[T: (int, str)]'),
+ ('[T:(int|str,*Ts)]', '[T: (int | str, *Ts)]'),
+])
+def test_pep_695_and_pep_696_whitespaces_in_constraints(app, tp_list, tptext):
+ text = f'.. py:function:: f{tp_list}()'
+ doctree = restructuredtext.parse(app, text)
+ assert doctree.astext() == f'\n\nf{tptext}()\n\n'
+
+
+@pytest.mark.parametrize(('tp_list', 'tptext'), [
+ ('[T=int]', '[T = int]'),
+ ('[T:int=int]', '[T: int = int]'),
+ ('[*V=*Ts]', '[*V = *Ts]'),
+ ('[*V=(*Ts)]', '[*V = (*Ts)]'),
+ ('[*V=*tuple[str,...]]', '[*V = *tuple[str, ...]]'),
+ ('[*V=*tuple[*Ts,...]]', '[*V = *tuple[*Ts, ...]]'),
+ ('[*V=*tuple[int,*Ts]]', '[*V = *tuple[int, *Ts]]'),
+ ('[*V=*tuple[*Ts,int]]', '[*V = *tuple[*Ts, int]]'),
+ ('[**P=[int,*Ts]]', '[**P = [int, *Ts]]'),
+ ('[**P=[int, int*3]]', '[**P = [int, int * 3]]'),
+ ('[**P=[int, *Ts*3]]', '[**P = [int, *Ts * 3]]'),
+ ('[**P=[int,A[int,ctype("char")]]]', '[**P = [int, A[int, ctype("char")]]]'),
+])
+def test_pep_695_and_pep_696_whitespaces_in_default(app, tp_list, tptext):
+ text = f'.. py:function:: f{tp_list}()'
+ doctree = restructuredtext.parse(app, text)
+ assert doctree.astext() == f'\n\nf{tptext}()\n\n'
diff --git a/tests/test_domains/test_domain_py_canonical.py b/tests/test_domains/test_domain_py_canonical.py
new file mode 100644
index 0000000..3635cd1
--- /dev/null
+++ b/tests/test_domains/test_domain_py_canonical.py
@@ -0,0 +1,77 @@
+"""Tests the Python Domain"""
+
+from __future__ import annotations
+
+import pytest
+
+from sphinx import addnodes
+from sphinx.addnodes import (
+ desc,
+ desc_addname,
+ desc_annotation,
+ desc_content,
+ desc_name,
+ desc_sig_space,
+ desc_signature,
+)
+from sphinx.testing import restructuredtext
+from sphinx.testing.util import assert_node
+
+
+@pytest.mark.sphinx('html', testroot='domain-py', freshenv=True)
+def test_domain_py_canonical(app, status, warning):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'canonical.html').read_text(encoding='utf8')
+ assert ('<a class="reference internal" href="#canonical.Foo" title="canonical.Foo">'
+ '<code class="xref py py-class docutils literal notranslate">'
+ '<span class="pre">Foo</span></code></a>' in content)
+ assert warning.getvalue() == ''
+
+
+def test_canonical(app):
+ text = (".. py:class:: io.StringIO\n"
+ " :canonical: _io.StringIO")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_addname, "io."],
+ [desc_name, "StringIO"])],
+ desc_content)]))
+ assert 'io.StringIO' in domain.objects
+ assert domain.objects['io.StringIO'] == ('index', 'io.StringIO', 'class', False)
+ assert domain.objects['_io.StringIO'] == ('index', 'io.StringIO', 'class', True)
+
+
+def test_canonical_definition_overrides(app, warning):
+ text = (".. py:class:: io.StringIO\n"
+ " :canonical: _io.StringIO\n"
+ ".. py:class:: _io.StringIO\n")
+ restructuredtext.parse(app, text)
+ assert warning.getvalue() == ""
+
+ domain = app.env.get_domain('py')
+ assert domain.objects['_io.StringIO'] == ('index', 'id0', 'class', False)
+
+
+def test_canonical_definition_skip(app, warning):
+ text = (".. py:class:: _io.StringIO\n"
+ ".. py:class:: io.StringIO\n"
+ " :canonical: _io.StringIO\n")
+
+ restructuredtext.parse(app, text)
+ assert warning.getvalue() == ""
+
+ domain = app.env.get_domain('py')
+ assert domain.objects['_io.StringIO'] == ('index', 'io.StringIO', 'class', False)
+
+
+def test_canonical_duplicated(app, warning):
+ text = (".. py:class:: mypackage.StringIO\n"
+ " :canonical: _io.StringIO\n"
+ ".. py:class:: io.StringIO\n"
+ " :canonical: _io.StringIO\n")
+
+ restructuredtext.parse(app, text)
+ assert warning.getvalue() != ""
diff --git a/tests/test_domains/test_domain_py_fields.py b/tests/test_domains/test_domain_py_fields.py
new file mode 100644
index 0000000..47c40f5
--- /dev/null
+++ b/tests/test_domains/test_domain_py_fields.py
@@ -0,0 +1,326 @@
+"""Tests the Python Domain"""
+
+from __future__ import annotations
+
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.addnodes import (
+ desc,
+ desc_addname,
+ desc_annotation,
+ desc_content,
+ desc_name,
+ desc_sig_punctuation,
+ desc_sig_space,
+ desc_signature,
+ pending_xref,
+)
+from sphinx.testing import restructuredtext
+from sphinx.testing.util import assert_node
+
+
+def test_info_field_list(app):
+ text = (".. py:module:: example\n"
+ ".. py:class:: Class\n"
+ "\n"
+ " :meta blah: this meta-field must not show up in the toc-tree\n"
+ " :param str name: blah blah\n"
+ " :meta another meta field:\n"
+ " :param age: blah blah\n"
+ " :type age: int\n"
+ " :param items: blah blah\n"
+ " :type items: Tuple[str, ...]\n"
+ " :param Dict[str, str] params: blah blah\n")
+ doctree = restructuredtext.parse(app, text)
+ print(doctree)
+
+ assert_node(doctree, (addnodes.index,
+ addnodes.index,
+ nodes.target,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_addname, "example."],
+ [desc_name, "Class"])],
+ [desc_content, nodes.field_list, nodes.field])]))
+ assert_node(doctree[3][1][0][0],
+ ([nodes.field_name, "Parameters"],
+ [nodes.field_body, nodes.bullet_list, ([nodes.list_item, nodes.paragraph],
+ [nodes.list_item, nodes.paragraph],
+ [nodes.list_item, nodes.paragraph],
+ [nodes.list_item, nodes.paragraph])]))
+
+ # :param str name:
+ assert_node(doctree[3][1][0][0][1][0][0][0],
+ ([addnodes.literal_strong, "name"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ ")",
+ " -- ",
+ "blah blah"))
+ assert_node(doctree[3][1][0][0][1][0][0][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="str",
+ **{"py:module": "example", "py:class": "Class"})
+
+ # :param age: + :type age:
+ assert_node(doctree[3][1][0][0][1][0][1][0],
+ ([addnodes.literal_strong, "age"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "int"],
+ ")",
+ " -- ",
+ "blah blah"))
+ assert_node(doctree[3][1][0][0][1][0][1][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="int",
+ **{"py:module": "example", "py:class": "Class"})
+
+ # :param items: + :type items:
+ assert_node(doctree[3][1][0][0][1][0][2][0],
+ ([addnodes.literal_strong, "items"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "Tuple"],
+ [addnodes.literal_emphasis, "["],
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ [addnodes.literal_emphasis, ", "],
+ [addnodes.literal_emphasis, "..."],
+ [addnodes.literal_emphasis, "]"],
+ ")",
+ " -- ",
+ "blah blah"))
+ assert_node(doctree[3][1][0][0][1][0][2][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="Tuple",
+ **{"py:module": "example", "py:class": "Class"})
+ assert_node(doctree[3][1][0][0][1][0][2][0][4], pending_xref,
+ refdomain="py", reftype="class", reftarget="str",
+ **{"py:module": "example", "py:class": "Class"})
+
+ # :param Dict[str, str] params:
+ assert_node(doctree[3][1][0][0][1][0][3][0],
+ ([addnodes.literal_strong, "params"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "Dict"],
+ [addnodes.literal_emphasis, "["],
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ [addnodes.literal_emphasis, ", "],
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ [addnodes.literal_emphasis, "]"],
+ ")",
+ " -- ",
+ "blah blah"))
+ assert_node(doctree[3][1][0][0][1][0][3][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="Dict",
+ **{"py:module": "example", "py:class": "Class"})
+ assert_node(doctree[3][1][0][0][1][0][3][0][4], pending_xref,
+ refdomain="py", reftype="class", reftarget="str",
+ **{"py:module": "example", "py:class": "Class"})
+ assert_node(doctree[3][1][0][0][1][0][3][0][6], pending_xref,
+ refdomain="py", reftype="class", reftarget="str",
+ **{"py:module": "example", "py:class": "Class"})
+
+
+def test_info_field_list_piped_type(app):
+ text = (".. py:module:: example\n"
+ ".. py:class:: Class\n"
+ "\n"
+ " :param age: blah blah\n"
+ " :type age: int | str\n")
+ doctree = restructuredtext.parse(app, text)
+
+ assert_node(doctree,
+ (addnodes.index,
+ addnodes.index,
+ nodes.target,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_addname, "example."],
+ [desc_name, "Class"])],
+ [desc_content, nodes.field_list, nodes.field, (nodes.field_name,
+ nodes.field_body)])]))
+ assert_node(doctree[3][1][0][0][1],
+ ([nodes.paragraph, ([addnodes.literal_strong, "age"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "int"],
+ [addnodes.literal_emphasis, " | "],
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ ")",
+ " -- ",
+ "blah blah")],))
+ assert_node(doctree[3][1][0][0][1][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="int",
+ **{"py:module": "example", "py:class": "Class"})
+ assert_node(doctree[3][1][0][0][1][0][4], pending_xref,
+ refdomain="py", reftype="class", reftarget="str",
+ **{"py:module": "example", "py:class": "Class"})
+
+
+def test_info_field_list_Literal(app):
+ text = (".. py:module:: example\n"
+ ".. py:class:: Class\n"
+ "\n"
+ " :param age: blah blah\n"
+ " :type age: Literal['foo', 'bar', 'baz']\n")
+ doctree = restructuredtext.parse(app, text)
+
+ assert_node(doctree,
+ (addnodes.index,
+ addnodes.index,
+ nodes.target,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_addname, "example."],
+ [desc_name, "Class"])],
+ [desc_content, nodes.field_list, nodes.field, (nodes.field_name,
+ nodes.field_body)])]))
+ assert_node(doctree[3][1][0][0][1],
+ ([nodes.paragraph, ([addnodes.literal_strong, "age"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "Literal"],
+ [addnodes.literal_emphasis, "["],
+ [addnodes.literal_emphasis, "'foo'"],
+ [addnodes.literal_emphasis, ", "],
+ [addnodes.literal_emphasis, "'bar'"],
+ [addnodes.literal_emphasis, ", "],
+ [addnodes.literal_emphasis, "'baz'"],
+ [addnodes.literal_emphasis, "]"],
+ ")",
+ " -- ",
+ "blah blah")],))
+ assert_node(doctree[3][1][0][0][1][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="Literal",
+ **{"py:module": "example", "py:class": "Class"})
+
+
+def test_info_field_list_var(app):
+ text = (".. py:class:: Class\n"
+ "\n"
+ " :var int attr: blah blah\n")
+ doctree = restructuredtext.parse(app, text)
+
+ assert_node(doctree, (addnodes.index,
+ [desc, (desc_signature,
+ [desc_content, nodes.field_list, nodes.field])]))
+ assert_node(doctree[1][1][0][0], ([nodes.field_name, "Variables"],
+ [nodes.field_body, nodes.paragraph]))
+
+ # :var int attr:
+ assert_node(doctree[1][1][0][0][1][0],
+ ([addnodes.literal_strong, "attr"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "int"],
+ ")",
+ " -- ",
+ "blah blah"))
+ assert_node(doctree[1][1][0][0][1][0][2], pending_xref,
+ refdomain="py", reftype="class", reftarget="int", **{"py:class": "Class"})
+
+
+def test_info_field_list_napoleon_deliminator_of(app):
+ text = (".. py:module:: example\n"
+ ".. py:class:: Class\n"
+ "\n"
+ " :param list_str_var: example description.\n"
+ " :type list_str_var: list of str\n"
+ " :param tuple_int_var: example description.\n"
+ " :type tuple_int_var: tuple of tuple of int\n"
+ )
+ doctree = restructuredtext.parse(app, text)
+
+ # :param list of str list_str_var:
+ assert_node(doctree[3][1][0][0][1][0][0][0],
+ ([addnodes.literal_strong, "list_str_var"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "list"],
+ [addnodes.literal_emphasis, " of "],
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ ")",
+ " -- ",
+ "example description."))
+
+ # :param tuple of tuple of int tuple_int_var:
+ assert_node(doctree[3][1][0][0][1][0][1][0],
+ ([addnodes.literal_strong, "tuple_int_var"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "tuple"],
+ [addnodes.literal_emphasis, " of "],
+ [pending_xref, addnodes.literal_emphasis, "tuple"],
+ [addnodes.literal_emphasis, " of "],
+ [pending_xref, addnodes.literal_emphasis, "int"],
+ ")",
+ " -- ",
+ "example description."))
+
+
+def test_info_field_list_napoleon_deliminator_or(app):
+ text = (".. py:module:: example\n"
+ ".. py:class:: Class\n"
+ "\n"
+ " :param bool_str_var: example description.\n"
+ " :type bool_str_var: bool or str\n"
+ " :param str_float_int_var: example description.\n"
+ " :type str_float_int_var: str or float or int\n"
+ )
+ doctree = restructuredtext.parse(app, text)
+
+ # :param bool or str bool_str_var:
+ assert_node(doctree[3][1][0][0][1][0][0][0],
+ ([addnodes.literal_strong, "bool_str_var"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "bool"],
+ [addnodes.literal_emphasis, " or "],
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ ")",
+ " -- ",
+ "example description."))
+
+ # :param str or float or int str_float_int_var:
+ assert_node(doctree[3][1][0][0][1][0][1][0],
+ ([addnodes.literal_strong, "str_float_int_var"],
+ " (",
+ [pending_xref, addnodes.literal_emphasis, "str"],
+ [addnodes.literal_emphasis, " or "],
+ [pending_xref, addnodes.literal_emphasis, "float"],
+ [addnodes.literal_emphasis, " or "],
+ [pending_xref, addnodes.literal_emphasis, "int"],
+ ")",
+ " -- ",
+ "example description."))
+
+
+def test_type_field(app):
+ text = (".. py:data:: var1\n"
+ " :type: .int\n"
+ ".. py:data:: var2\n"
+ " :type: ~builtins.int\n"
+ ".. py:data:: var3\n"
+ " :type: typing.Optional[typing.Tuple[int, typing.Any]]\n")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "var1"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "int"])])],
+ [desc_content, ()])],
+ addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "var2"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "int"])])],
+ [desc_content, ()])],
+ addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "var3"],
+ [desc_annotation, ([desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [pending_xref, "Optional"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "Tuple"],
+ [desc_sig_punctuation, "["],
+ [pending_xref, "int"],
+ [desc_sig_punctuation, ","],
+ desc_sig_space,
+ [pending_xref, "Any"],
+ [desc_sig_punctuation, "]"],
+ [desc_sig_punctuation, "]"])])],
+ [desc_content, ()])]))
+ assert_node(doctree[1][0][1][2], pending_xref, reftarget='int', refspecific=True)
+ assert_node(doctree[3][0][1][2], pending_xref, reftarget='builtins.int', refspecific=False)
+ assert_node(doctree[5][0][1][2], pending_xref, reftarget='typing.Optional', refspecific=False)
+ assert_node(doctree[5][0][1][4], pending_xref, reftarget='typing.Tuple', refspecific=False)
+ assert_node(doctree[5][0][1][6], pending_xref, reftarget='int', refspecific=False)
+ assert_node(doctree[5][0][1][9], pending_xref, reftarget='typing.Any', refspecific=False)
diff --git a/tests/test_domains/test_domain_py_pyfunction.py b/tests/test_domains/test_domain_py_pyfunction.py
new file mode 100644
index 0000000..187b919
--- /dev/null
+++ b/tests/test_domains/test_domain_py_pyfunction.py
@@ -0,0 +1,396 @@
+"""Tests the Python Domain"""
+
+from __future__ import annotations
+
+import pytest
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.addnodes import (
+ desc,
+ desc_addname,
+ desc_annotation,
+ desc_content,
+ desc_name,
+ desc_optional,
+ desc_parameter,
+ desc_parameterlist,
+ desc_returns,
+ desc_sig_keyword,
+ desc_sig_name,
+ desc_sig_operator,
+ desc_sig_punctuation,
+ desc_sig_space,
+ desc_signature,
+ pending_xref,
+)
+from sphinx.testing import restructuredtext
+from sphinx.testing.util import assert_node
+
+
+def test_pyfunction(app):
+ text = (".. py:function:: func1\n"
+ ".. py:module:: example\n"
+ ".. py:function:: func2\n"
+ " :async:\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "func1"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()])],
+ addnodes.index,
+ addnodes.index,
+ nodes.target,
+ [desc, ([desc_signature, ([desc_annotation, ([desc_sig_keyword, 'async'],
+ desc_sig_space)],
+ [desc_addname, "example."],
+ [desc_name, "func2"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()])]))
+ assert_node(doctree[0], addnodes.index,
+ entries=[('pair', 'built-in function; func1()', 'func1', '', None)])
+ assert_node(doctree[2], addnodes.index,
+ entries=[('pair', 'module; example', 'module-example', '', None)])
+ assert_node(doctree[3], addnodes.index,
+ entries=[('single', 'func2() (in module example)', 'example.func2', '', None)])
+
+ assert 'func1' in domain.objects
+ assert domain.objects['func1'] == ('index', 'func1', 'function', False)
+ assert 'example.func2' in domain.objects
+ assert domain.objects['example.func2'] == ('index', 'example.func2', 'function', False)
+
+
+def test_pyfunction_signature(app):
+ text = ".. py:function:: hello(name: str) -> str"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"])],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, desc_parameter, ([desc_sig_name, "name"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"])])
+
+
+def test_pyfunction_signature_full(app):
+ text = (".. py:function:: hello(a: str, b = 1, *args: str, "
+ "c: bool = True, d: tuple = (1, 2), **kwargs: str) -> str")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"])],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "a"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [desc_sig_name, pending_xref, "str"])],
+ [desc_parameter, ([desc_sig_name, "b"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "1"])],
+ [desc_parameter, ([desc_sig_operator, "*"],
+ [desc_sig_name, "args"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [desc_sig_name, pending_xref, "str"])],
+ [desc_parameter, ([desc_sig_name, "c"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [desc_sig_name, pending_xref, "bool"],
+ desc_sig_space,
+ [desc_sig_operator, "="],
+ desc_sig_space,
+ [nodes.inline, "True"])],
+ [desc_parameter, ([desc_sig_name, "d"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [desc_sig_name, pending_xref, "tuple"],
+ desc_sig_space,
+ [desc_sig_operator, "="],
+ desc_sig_space,
+ [nodes.inline, "(1, 2)"])],
+ [desc_parameter, ([desc_sig_operator, "**"],
+ [desc_sig_name, "kwargs"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [desc_sig_name, pending_xref, "str"])])])
+ # case: separator at head
+ text = ".. py:function:: hello(*, a)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, nodes.inline, "*"],
+ [desc_parameter, desc_sig_name, "a"])])
+
+ # case: separator in the middle
+ text = ".. py:function:: hello(a, /, b, *, c)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, desc_sig_name, "a"],
+ [desc_parameter, desc_sig_operator, "/"],
+ [desc_parameter, desc_sig_name, "b"],
+ [desc_parameter, desc_sig_operator, "*"],
+ [desc_parameter, desc_sig_name, "c"])])
+
+ # case: separator in the middle (2)
+ text = ".. py:function:: hello(a, /, *, b)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, desc_sig_name, "a"],
+ [desc_parameter, desc_sig_operator, "/"],
+ [desc_parameter, desc_sig_operator, "*"],
+ [desc_parameter, desc_sig_name, "b"])])
+
+ # case: separator at tail
+ text = ".. py:function:: hello(a, /)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, desc_sig_name, "a"],
+ [desc_parameter, desc_sig_operator, "/"])])
+
+
+def test_pyfunction_with_unary_operators(app):
+ text = ".. py:function:: menu(egg=+1, bacon=-1, sausage=~1, spam=not spam)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "egg"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "+1"])],
+ [desc_parameter, ([desc_sig_name, "bacon"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "-1"])],
+ [desc_parameter, ([desc_sig_name, "sausage"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "~1"])],
+ [desc_parameter, ([desc_sig_name, "spam"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "not spam"])])])
+
+
+def test_pyfunction_with_binary_operators(app):
+ text = ".. py:function:: menu(spam=2**64)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "spam"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "2**64"])])])
+
+
+def test_pyfunction_with_number_literals(app):
+ text = ".. py:function:: hello(age=0x10, height=1_6_0)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "age"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "0x10"])],
+ [desc_parameter, ([desc_sig_name, "height"],
+ [desc_sig_operator, "="],
+ [nodes.inline, "1_6_0"])])])
+
+
+def test_pyfunction_with_union_type_operator(app):
+ text = ".. py:function:: hello(age: int | None)"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0][1],
+ [desc_parameterlist, ([desc_parameter, ([desc_sig_name, "age"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [desc_sig_name, ([pending_xref, "int"],
+ desc_sig_space,
+ [desc_sig_punctuation, "|"],
+ desc_sig_space,
+ [pending_xref, "None"])])])])
+
+
+def test_optional_pyfunction_signature(app):
+ text = ".. py:function:: compile(source [, filename [, symbol]]) -> ast object"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "compile"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "ast object"])],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1],
+ ([desc_parameter, ([desc_sig_name, "source"])],
+ [desc_optional, ([desc_parameter, ([desc_sig_name, "filename"])],
+ [desc_optional, desc_parameter, ([desc_sig_name, "symbol"])])]))
+
+
+@pytest.mark.sphinx('html', confoverrides={
+ 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
+})
+def test_pyfunction_signature_with_python_maximum_signature_line_length_equal(app):
+ text = ".. py:function:: hello(name: str) -> str"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"],
+ )],
+ desc_content,
+ )],
+ ))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
+ [desc_sig_name, "name"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"],
+ )])
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
+
+
+@pytest.mark.sphinx('html', confoverrides={
+ 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
+})
+def test_pyfunction_signature_with_python_maximum_signature_line_length_force_single(app):
+ text = (".. py:function:: hello(names: str) -> str\n"
+ " :single-line-parameter-list:")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"],
+ )],
+ desc_content,
+ )],
+ ))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
+ [desc_sig_name, "names"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"],
+ )])
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
+
+
+@pytest.mark.sphinx('html', confoverrides={
+ 'python_maximum_signature_line_length': len("hello(name: str) -> str"),
+})
+def test_pyfunction_signature_with_python_maximum_signature_line_length_break(app):
+ text = ".. py:function:: hello(names: str) -> str"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"],
+ )],
+ desc_content,
+ )],
+ ))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
+ [desc_sig_name, "names"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"],
+ )])
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=True)
+
+
+@pytest.mark.sphinx('html', confoverrides={
+ 'maximum_signature_line_length': len("hello(name: str) -> str"),
+})
+def test_pyfunction_signature_with_maximum_signature_line_length_equal(app):
+ text = ".. py:function:: hello(name: str) -> str"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"],
+ )],
+ desc_content,
+ )],
+ ))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
+ [desc_sig_name, "name"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"],
+ )])
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
+
+
+@pytest.mark.sphinx('html', confoverrides={
+ 'maximum_signature_line_length': len("hello(name: str) -> str"),
+})
+def test_pyfunction_signature_with_maximum_signature_line_length_force_single(app):
+ text = (".. py:function:: hello(names: str) -> str\n"
+ " :single-line-parameter-list:")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"],
+ )],
+ desc_content,
+ )],
+ ))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
+ [desc_sig_name, "names"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"],
+ )])
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=False)
+
+
+@pytest.mark.sphinx('html', confoverrides={
+ 'maximum_signature_line_length': len("hello(name: str) -> str"),
+})
+def test_pyfunction_signature_with_maximum_signature_line_length_break(app):
+ text = ".. py:function:: hello(names: str) -> str"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "hello"],
+ desc_parameterlist,
+ [desc_returns, pending_xref, "str"],
+ )],
+ desc_content,
+ )],
+ ))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+ assert_node(doctree[1][0][1], [desc_parameterlist, desc_parameter, (
+ [desc_sig_name, "names"],
+ [desc_sig_punctuation, ":"],
+ desc_sig_space,
+ [nodes.inline, pending_xref, "str"],
+ )])
+ assert_node(doctree[1][0][1], desc_parameterlist, multi_line_parameter_list=True)
diff --git a/tests/test_domains/test_domain_py_pyobject.py b/tests/test_domains/test_domain_py_pyobject.py
new file mode 100644
index 0000000..04f9341
--- /dev/null
+++ b/tests/test_domains/test_domain_py_pyobject.py
@@ -0,0 +1,487 @@
+"""Tests the Python Domain"""
+
+from __future__ import annotations
+
+from docutils import nodes
+
+from sphinx import addnodes
+from sphinx.addnodes import (
+ desc,
+ desc_addname,
+ desc_annotation,
+ desc_content,
+ desc_name,
+ desc_parameterlist,
+ desc_sig_punctuation,
+ desc_sig_space,
+ desc_signature,
+ pending_xref,
+)
+from sphinx.testing import restructuredtext
+from sphinx.testing.util import assert_node
+
+
+def test_pyexception_signature(app):
+ text = ".. py:exception:: builtins.IOError"
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ('exception', desc_sig_space)],
+ [desc_addname, "builtins."],
+ [desc_name, "IOError"])],
+ desc_content)]))
+ assert_node(doctree[1], desc, desctype="exception",
+ domain="py", objtype="exception", no_index=False)
+
+
+def test_pydata_signature(app):
+ text = (".. py:data:: version\n"
+ " :type: int\n"
+ " :value: 1\n")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "version"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "int"])],
+ [desc_annotation, (
+ desc_sig_space,
+ [desc_sig_punctuation, '='],
+ desc_sig_space,
+ "1")],
+ )],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="data",
+ domain="py", objtype="data", no_index=False)
+
+
+def test_pydata_signature_old(app):
+ text = (".. py:data:: version\n"
+ " :annotation: = 1\n")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_name, "version"],
+ [desc_annotation, (desc_sig_space,
+ "= 1")])],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="data",
+ domain="py", objtype="data", no_index=False)
+
+
+def test_pydata_with_union_type_operator(app):
+ text = (".. py:data:: version\n"
+ " :type: int | str")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree[1][0],
+ ([desc_name, "version"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "int"],
+ desc_sig_space,
+ [desc_sig_punctuation, "|"],
+ desc_sig_space,
+ [pending_xref, "str"])]))
+
+
+def test_pyobject_prefix(app):
+ text = (".. py:class:: Foo\n"
+ "\n"
+ " .. py:method:: Foo.say\n"
+ " .. py:method:: FooBar.say")
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ('class', desc_sig_space)],
+ [desc_name, "Foo"])],
+ [desc_content, (addnodes.index,
+ desc,
+ addnodes.index,
+ desc)])]))
+ assert doctree[1][1][1].astext().strip() == 'say()' # prefix is stripped
+ assert doctree[1][1][3].astext().strip() == 'FooBar.say()' # not stripped
+
+
+def test_pydata(app):
+ text = (".. py:module:: example\n"
+ ".. py:data:: var\n"
+ " :type: int\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ addnodes.index,
+ nodes.target,
+ [desc, ([desc_signature, ([desc_addname, "example."],
+ [desc_name, "var"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "int"])])],
+ [desc_content, ()])]))
+ assert_node(doctree[3][0][2][2], pending_xref, **{"py:module": "example"})
+ assert 'example.var' in domain.objects
+ assert domain.objects['example.var'] == ('index', 'example.var', 'data', False)
+
+
+def test_pyclass_options(app):
+ text = (".. py:class:: Class1\n"
+ ".. py:class:: Class2\n"
+ " :final:\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_name, "Class1"])],
+ [desc_content, ()])],
+ addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("final",
+ desc_sig_space,
+ "class",
+ desc_sig_space)],
+ [desc_name, "Class2"])],
+ [desc_content, ()])]))
+
+ # class
+ assert_node(doctree[0], addnodes.index,
+ entries=[('single', 'Class1 (built-in class)', 'Class1', '', None)])
+ assert 'Class1' in domain.objects
+ assert domain.objects['Class1'] == ('index', 'Class1', 'class', False)
+
+ # :final:
+ assert_node(doctree[2], addnodes.index,
+ entries=[('single', 'Class2 (built-in class)', 'Class2', '', None)])
+ assert 'Class2' in domain.objects
+ assert domain.objects['Class2'] == ('index', 'Class2', 'class', False)
+
+
+def test_pymethod_options(app):
+ text = (".. py:class:: Class\n"
+ "\n"
+ " .. py:method:: meth1\n"
+ " .. py:method:: meth2\n"
+ " :classmethod:\n"
+ " .. py:method:: meth3\n"
+ " :staticmethod:\n"
+ " .. py:method:: meth4\n"
+ " :async:\n"
+ " .. py:method:: meth5\n"
+ " :abstractmethod:\n"
+ " .. py:method:: meth6\n"
+ " :final:\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_name, "Class"])],
+ [desc_content, (addnodes.index,
+ desc,
+ addnodes.index,
+ desc,
+ addnodes.index,
+ desc,
+ addnodes.index,
+ desc,
+ addnodes.index,
+ desc,
+ addnodes.index,
+ desc)])]))
+
+ # method
+ assert_node(doctree[1][1][0], addnodes.index,
+ entries=[('single', 'meth1() (Class method)', 'Class.meth1', '', None)])
+ assert_node(doctree[1][1][1], ([desc_signature, ([desc_name, "meth1"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth1' in domain.objects
+ assert domain.objects['Class.meth1'] == ('index', 'Class.meth1', 'method', False)
+
+ # :classmethod:
+ assert_node(doctree[1][1][2], addnodes.index,
+ entries=[('single', 'meth2() (Class class method)', 'Class.meth2', '', None)])
+ assert_node(doctree[1][1][3], ([desc_signature, ([desc_annotation, ("classmethod", desc_sig_space)],
+ [desc_name, "meth2"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth2' in domain.objects
+ assert domain.objects['Class.meth2'] == ('index', 'Class.meth2', 'method', False)
+
+ # :staticmethod:
+ assert_node(doctree[1][1][4], addnodes.index,
+ entries=[('single', 'meth3() (Class static method)', 'Class.meth3', '', None)])
+ assert_node(doctree[1][1][5], ([desc_signature, ([desc_annotation, ("static", desc_sig_space)],
+ [desc_name, "meth3"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth3' in domain.objects
+ assert domain.objects['Class.meth3'] == ('index', 'Class.meth3', 'method', False)
+
+ # :async:
+ assert_node(doctree[1][1][6], addnodes.index,
+ entries=[('single', 'meth4() (Class method)', 'Class.meth4', '', None)])
+ assert_node(doctree[1][1][7], ([desc_signature, ([desc_annotation, ("async", desc_sig_space)],
+ [desc_name, "meth4"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth4' in domain.objects
+ assert domain.objects['Class.meth4'] == ('index', 'Class.meth4', 'method', False)
+
+ # :abstractmethod:
+ assert_node(doctree[1][1][8], addnodes.index,
+ entries=[('single', 'meth5() (Class method)', 'Class.meth5', '', None)])
+ assert_node(doctree[1][1][9], ([desc_signature, ([desc_annotation, ("abstract", desc_sig_space)],
+ [desc_name, "meth5"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth5' in domain.objects
+ assert domain.objects['Class.meth5'] == ('index', 'Class.meth5', 'method', False)
+
+ # :final:
+ assert_node(doctree[1][1][10], addnodes.index,
+ entries=[('single', 'meth6() (Class method)', 'Class.meth6', '', None)])
+ assert_node(doctree[1][1][11], ([desc_signature, ([desc_annotation, ("final", desc_sig_space)],
+ [desc_name, "meth6"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth6' in domain.objects
+ assert domain.objects['Class.meth6'] == ('index', 'Class.meth6', 'method', False)
+
+
+def test_pyclassmethod(app):
+ text = (".. py:class:: Class\n"
+ "\n"
+ " .. py:classmethod:: meth\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_name, "Class"])],
+ [desc_content, (addnodes.index,
+ desc)])]))
+ assert_node(doctree[1][1][0], addnodes.index,
+ entries=[('single', 'meth() (Class class method)', 'Class.meth', '', None)])
+ assert_node(doctree[1][1][1], ([desc_signature, ([desc_annotation, ("classmethod", desc_sig_space)],
+ [desc_name, "meth"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth' in domain.objects
+ assert domain.objects['Class.meth'] == ('index', 'Class.meth', 'method', False)
+
+
+def test_pystaticmethod(app):
+ text = (".. py:class:: Class\n"
+ "\n"
+ " .. py:staticmethod:: meth\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_name, "Class"])],
+ [desc_content, (addnodes.index,
+ desc)])]))
+ assert_node(doctree[1][1][0], addnodes.index,
+ entries=[('single', 'meth() (Class static method)', 'Class.meth', '', None)])
+ assert_node(doctree[1][1][1], ([desc_signature, ([desc_annotation, ("static", desc_sig_space)],
+ [desc_name, "meth"],
+ [desc_parameterlist, ()])],
+ [desc_content, ()]))
+ assert 'Class.meth' in domain.objects
+ assert domain.objects['Class.meth'] == ('index', 'Class.meth', 'method', False)
+
+
+def test_pyattribute(app):
+ text = (".. py:class:: Class\n"
+ "\n"
+ " .. py:attribute:: attr\n"
+ " :type: Optional[str]\n"
+ " :value: ''\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_name, "Class"])],
+ [desc_content, (addnodes.index,
+ desc)])]))
+ assert_node(doctree[1][1][0], addnodes.index,
+ entries=[('single', 'attr (Class attribute)', 'Class.attr', '', None)])
+ assert_node(doctree[1][1][1], ([desc_signature, ([desc_name, "attr"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "str"],
+ desc_sig_space,
+ [desc_sig_punctuation, "|"],
+ desc_sig_space,
+ [pending_xref, "None"])],
+ [desc_annotation, (desc_sig_space,
+ [desc_sig_punctuation, '='],
+ desc_sig_space,
+ "''")],
+ )],
+ [desc_content, ()]))
+ assert_node(doctree[1][1][1][0][1][2], pending_xref, **{"py:class": "Class"})
+ assert_node(doctree[1][1][1][0][1][6], pending_xref, **{"py:class": "Class"})
+ assert 'Class.attr' in domain.objects
+ assert domain.objects['Class.attr'] == ('index', 'Class.attr', 'attribute', False)
+
+
+def test_pyproperty(app):
+ text = (".. py:class:: Class\n"
+ "\n"
+ " .. py:property:: prop1\n"
+ " :abstractmethod:\n"
+ " :type: str\n"
+ "\n"
+ " .. py:property:: prop2\n"
+ " :classmethod:\n"
+ " :type: str\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_annotation, ("class", desc_sig_space)],
+ [desc_name, "Class"])],
+ [desc_content, (addnodes.index,
+ desc,
+ addnodes.index,
+ desc)])]))
+ assert_node(doctree[1][1][0], addnodes.index,
+ entries=[('single', 'prop1 (Class property)', 'Class.prop1', '', None)])
+ assert_node(doctree[1][1][1], ([desc_signature, ([desc_annotation, ("abstract", desc_sig_space,
+ "property", desc_sig_space)],
+ [desc_name, "prop1"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "str"])])],
+ [desc_content, ()]))
+ assert_node(doctree[1][1][2], addnodes.index,
+ entries=[('single', 'prop2 (Class property)', 'Class.prop2', '', None)])
+ assert_node(doctree[1][1][3], ([desc_signature, ([desc_annotation, ("class", desc_sig_space,
+ "property", desc_sig_space)],
+ [desc_name, "prop2"],
+ [desc_annotation, ([desc_sig_punctuation, ':'],
+ desc_sig_space,
+ [pending_xref, "str"])])],
+ [desc_content, ()]))
+ assert 'Class.prop1' in domain.objects
+ assert domain.objects['Class.prop1'] == ('index', 'Class.prop1', 'property', False)
+ assert 'Class.prop2' in domain.objects
+ assert domain.objects['Class.prop2'] == ('index', 'Class.prop2', 'property', False)
+
+
+def test_pydecorator_signature(app):
+ text = ".. py:decorator:: deco"
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_addname, "@"],
+ [desc_name, "deco"])],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="function",
+ domain="py", objtype="function", no_index=False)
+
+ assert 'deco' in domain.objects
+ assert domain.objects['deco'] == ('index', 'deco', 'function', False)
+
+
+def test_pydecoratormethod_signature(app):
+ text = ".. py:decoratormethod:: deco"
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ assert_node(doctree, (addnodes.index,
+ [desc, ([desc_signature, ([desc_addname, "@"],
+ [desc_name, "deco"])],
+ desc_content)]))
+ assert_node(doctree[1], addnodes.desc, desctype="method",
+ domain="py", objtype="method", no_index=False)
+
+ assert 'deco' in domain.objects
+ assert domain.objects['deco'] == ('index', 'deco', 'method', False)
+
+
+def test_pycurrentmodule(app):
+ text = (".. py:module:: Other\n"
+ "\n"
+ ".. py:module:: Module\n"
+ ".. py:class:: A\n"
+ "\n"
+ " .. py:method:: m1\n"
+ " .. py:method:: m2\n"
+ "\n"
+ ".. py:currentmodule:: Other\n"
+ "\n"
+ ".. py:class:: B\n"
+ "\n"
+ " .. py:method:: m3\n"
+ " .. py:method:: m4\n")
+ domain = app.env.get_domain('py')
+ doctree = restructuredtext.parse(app, text)
+ print(doctree)
+ assert_node(
+ doctree, (
+ addnodes.index,
+ addnodes.index,
+ addnodes.index,
+ nodes.target,
+ nodes.target,
+ [desc, (
+ [desc_signature, (
+ [desc_annotation, ("class", desc_sig_space)],
+ [desc_addname, "Module."],
+ [desc_name, "A"],
+ )],
+ [desc_content, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "m1"],
+ [desc_parameterlist, ()],
+ )],
+ [desc_content, ()],
+ )],
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "m2"],
+ [desc_parameterlist, ()],
+ )],
+ [desc_content, ()],
+ )],
+ )],
+ )],
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_annotation, ("class", desc_sig_space)],
+ [desc_addname, "Other."],
+ [desc_name, "B"],
+ )],
+ [desc_content, (
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "m3"],
+ [desc_parameterlist, ()],
+ )],
+ [desc_content, ()],
+ )],
+ addnodes.index,
+ [desc, (
+ [desc_signature, (
+ [desc_name, "m4"],
+ [desc_parameterlist, ()],
+ )],
+ [desc_content, ()],
+ )],
+ )],
+ )],
+ ))
+ assert 'Module' in domain.objects
+ assert domain.objects['Module'] == ('index', 'module-Module', 'module', False)
+ assert 'Other' in domain.objects
+ assert domain.objects['Other'] == ('index', 'module-Other', 'module', False)
+ assert 'Module.A' in domain.objects
+ assert domain.objects['Module.A'] == ('index', 'Module.A', 'class', False)
+ assert 'Other.B' in domain.objects
+ assert domain.objects['Other.B'] == ('index', 'Other.B', 'class', False)
+ assert 'Module.A.m1' in domain.objects
+ assert domain.objects['Module.A.m1'] == ('index', 'Module.A.m1', 'method', False)
+ assert 'Module.A.m2' in domain.objects
+ assert domain.objects['Module.A.m2'] == ('index', 'Module.A.m2', 'method', False)
+ assert 'Other.B.m3' in domain.objects
+ assert domain.objects['Other.B.m3'] == ('index', 'Other.B.m3', 'method', False)
+ assert 'Other.B.m4' in domain.objects
+ assert domain.objects['Other.B.m4'] == ('index', 'Other.B.m4', 'method', False)
diff --git a/tests/test_domain_rst.py b/tests/test_domains/test_domain_rst.py
index 4445da1..4445da1 100644
--- a/tests/test_domain_rst.py
+++ b/tests/test_domains/test_domain_rst.py
diff --git a/tests/test_domain_std.py b/tests/test_domains/test_domain_std.py
index 6d7ab53..52ecdf5 100644
--- a/tests/test_domain_std.py
+++ b/tests/test_domains/test_domain_std.py
@@ -5,7 +5,6 @@ from unittest import mock
import pytest
from docutils import nodes
from docutils.nodes import definition, definition_list, definition_list_item, term
-from html5lib import HTMLParser
from sphinx import addnodes
from sphinx.addnodes import (
@@ -20,7 +19,7 @@ from sphinx.addnodes import (
)
from sphinx.domains.std import StandardDomain
from sphinx.testing import restructuredtext
-from sphinx.testing.util import assert_node
+from sphinx.testing.util import assert_node, etree_parse
def test_process_doc_handle_figure_caption():
@@ -368,16 +367,18 @@ def test_multiple_cmdoptions(app):
@pytest.mark.sphinx(testroot='productionlist')
def test_productionlist(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
warnings = warning.getvalue().split("\n")
assert len(warnings) == 2
assert warnings[-1] == ''
assert "Dup2.rst:4: WARNING: duplicate token description of Dup, other instance in Dup1" in warnings[0]
- with (app.outdir / 'index.html').open('rb') as f:
- etree = HTMLParser(namespaceHTMLElements=False).parse(f)
- ul = list(etree.iter('ul'))[1]
+ etree = etree_parse(app.outdir / 'index.html')
+ nodes = list(etree.iter('ul'))
+ assert len(nodes) >= 2
+
+ ul = nodes[1]
cases = []
for li in list(ul):
assert len(list(li)) == 1
@@ -493,3 +494,24 @@ def test_labeled_field(app):
assert domain.labels['label1'] == ('index', 'label1', 'Foo blah blah blah')
assert 'label2' in domain.labels
assert domain.labels['label2'] == ('index', 'label2', 'Bar blah blah blah')
+
+
+@pytest.mark.sphinx('html', testroot='manpage_url',
+ confoverrides={'manpages_url': 'https://example.com/{page}.{section}'})
+def test_html_manpage(app):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert ('<em class="manpage">'
+ '<a class="manpage reference external" href="https://example.com/man.1">man(1)</a>'
+ '</em>') in content
+ assert ('<em class="manpage">'
+ '<a class="manpage reference external" href="https://example.com/ls.1">ls.1</a>'
+ '</em>') in content
+ assert ('<em class="manpage">'
+ '<a class="manpage reference external" href="https://example.com/sphinx.">sphinx</a>'
+ '</em>') in content
+ assert ('<em class="manpage">'
+ '<a class="manpage reference external" href="https://example.com/bsd-mailx/mailx.1">mailx(1)</a>'
+ '</em>') in content
+ assert '<em class="manpage">man(1)</em>' in content
diff --git a/tests/test_environment/__init__.py b/tests/test_environment/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_environment/__init__.py
diff --git a/tests/test_environment.py b/tests/test_environment/test_environment.py
index 8a34457..8a34457 100644
--- a/tests/test_environment.py
+++ b/tests/test_environment/test_environment.py
diff --git a/tests/test_environment_indexentries.py b/tests/test_environment/test_environment_indexentries.py
index 4cfdc28..4cfdc28 100644
--- a/tests/test_environment_indexentries.py
+++ b/tests/test_environment/test_environment_indexentries.py
diff --git a/tests/test_environment_record_dependencies.py b/tests/test_environment/test_environment_record_dependencies.py
index 0a17253..0a17253 100644
--- a/tests/test_environment_record_dependencies.py
+++ b/tests/test_environment/test_environment_record_dependencies.py
diff --git a/tests/test_environment_toctree.py b/tests/test_environment/test_environment_toctree.py
index 5123715..175c6ab 100644
--- a/tests/test_environment_toctree.py
+++ b/tests/test_environment/test_environment_toctree.py
@@ -33,7 +33,7 @@ def test_process_doc(app):
assert_node(toctree[0][1][0], addnodes.toctree,
caption="Table of Contents", glob=False, hidden=False,
titlesonly=False, maxdepth=2, numbered=999,
- entries=[(None, 'foo'), (None, 'bar'), (None, 'http://sphinx-doc.org/'),
+ entries=[(None, 'foo'), (None, 'bar'), (None, 'https://sphinx-doc.org/'),
(None, 'self')],
includefiles=['foo', 'bar'])
@@ -59,8 +59,8 @@ def test_process_doc(app):
assert_node(toctree[1][1][1], addnodes.toctree,
caption=None, glob=False, hidden=True,
titlesonly=False, maxdepth=-1, numbered=0,
- entries=[('Latest reference', 'http://sphinx-doc.org/latest/'),
- ('Python', 'http://python.org/')])
+ entries=[('Latest reference', 'https://sphinx-doc.org/latest/'),
+ ('Python', 'https://python.org/')])
assert_node(toctree[2][0],
[compact_paragraph, reference, "Indices and tables"])
@@ -246,7 +246,7 @@ def test_global_toctree_for_doc(app):
([list_item, ([compact_paragraph, reference, "foo"],
bullet_list)],
[list_item, compact_paragraph, reference, "bar"],
- [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"],
+ [list_item, compact_paragraph, reference, "https://sphinx-doc.org/"],
[list_item, compact_paragraph, reference,
"Welcome to Sphinx Tests’s documentation!"]))
assert_node(toctree[1][0][1],
@@ -259,7 +259,7 @@ def test_global_toctree_for_doc(app):
assert_node(toctree[1][0][1][1][0][0], reference, refuri="foo#foo-1", secnumber=[1, 2])
assert_node(toctree[1][0][1][2][0][0], reference, refuri="foo#foo-2", secnumber=[1, 3])
assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=[2])
- assert_node(toctree[1][2][0][0], reference, refuri="http://sphinx-doc.org/")
+ assert_node(toctree[1][2][0][0], reference, refuri="https://sphinx-doc.org/")
assert_node(toctree[1][3][0][0], reference, refuri="")
assert_node(toctree[2],
@@ -267,8 +267,8 @@ def test_global_toctree_for_doc(app):
assert_node(toctree[3],
([list_item, compact_paragraph, reference, "Latest reference"],
[list_item, compact_paragraph, reference, "Python"]))
- assert_node(toctree[3][0][0][0], reference, refuri="http://sphinx-doc.org/latest/")
- assert_node(toctree[3][1][0][0], reference, refuri="http://python.org/")
+ assert_node(toctree[3][0][0][0], reference, refuri="https://sphinx-doc.org/latest/")
+ assert_node(toctree[3][1][0][0], reference, refuri="https://python.org/")
@pytest.mark.sphinx('xml', testroot='toctree')
@@ -285,12 +285,12 @@ def test_global_toctree_for_doc_collapse(app):
assert_node(toctree[1],
([list_item, compact_paragraph, reference, "foo"],
[list_item, compact_paragraph, reference, "bar"],
- [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"],
+ [list_item, compact_paragraph, reference, "https://sphinx-doc.org/"],
[list_item, compact_paragraph, reference,
"Welcome to Sphinx Tests’s documentation!"]))
assert_node(toctree[1][0][0][0], reference, refuri="foo", secnumber=[1])
assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=[2])
- assert_node(toctree[1][2][0][0], reference, refuri="http://sphinx-doc.org/")
+ assert_node(toctree[1][2][0][0], reference, refuri="https://sphinx-doc.org/")
assert_node(toctree[1][3][0][0], reference, refuri="")
assert_node(toctree[2],
@@ -298,8 +298,8 @@ def test_global_toctree_for_doc_collapse(app):
assert_node(toctree[3],
([list_item, compact_paragraph, reference, "Latest reference"],
[list_item, compact_paragraph, reference, "Python"]))
- assert_node(toctree[3][0][0][0], reference, refuri="http://sphinx-doc.org/latest/")
- assert_node(toctree[3][1][0][0], reference, refuri="http://python.org/")
+ assert_node(toctree[3][0][0][0], reference, refuri="https://sphinx-doc.org/latest/")
+ assert_node(toctree[3][1][0][0], reference, refuri="https://python.org/")
@pytest.mark.sphinx('xml', testroot='toctree')
@@ -318,7 +318,7 @@ def test_global_toctree_for_doc_maxdepth(app):
([list_item, ([compact_paragraph, reference, "foo"],
bullet_list)],
[list_item, compact_paragraph, reference, "bar"],
- [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"],
+ [list_item, compact_paragraph, reference, "https://sphinx-doc.org/"],
[list_item, compact_paragraph, reference,
"Welcome to Sphinx Tests’s documentation!"]))
assert_node(toctree[1][0][1],
@@ -336,7 +336,7 @@ def test_global_toctree_for_doc_maxdepth(app):
reference, refuri="foo#foo-1-1", secnumber=[1, 2, 1])
assert_node(toctree[1][0][1][2][0][0], reference, refuri="foo#foo-2", secnumber=[1, 3])
assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=[2])
- assert_node(toctree[1][2][0][0], reference, refuri="http://sphinx-doc.org/")
+ assert_node(toctree[1][2][0][0], reference, refuri="https://sphinx-doc.org/")
assert_node(toctree[1][3][0][0], reference, refuri="")
assert_node(toctree[2],
@@ -344,8 +344,8 @@ def test_global_toctree_for_doc_maxdepth(app):
assert_node(toctree[3],
([list_item, compact_paragraph, reference, "Latest reference"],
[list_item, compact_paragraph, reference, "Python"]))
- assert_node(toctree[3][0][0][0], reference, refuri="http://sphinx-doc.org/latest/")
- assert_node(toctree[3][1][0][0], reference, refuri="http://python.org/")
+ assert_node(toctree[3][0][0][0], reference, refuri="https://sphinx-doc.org/latest/")
+ assert_node(toctree[3][1][0][0], reference, refuri="https://python.org/")
@pytest.mark.sphinx('xml', testroot='toctree')
@@ -363,7 +363,7 @@ def test_global_toctree_for_doc_includehidden(app):
([list_item, ([compact_paragraph, reference, "foo"],
bullet_list)],
[list_item, compact_paragraph, reference, "bar"],
- [list_item, compact_paragraph, reference, "http://sphinx-doc.org/"],
+ [list_item, compact_paragraph, reference, "https://sphinx-doc.org/"],
[list_item, compact_paragraph, reference,
"Welcome to Sphinx Tests’s documentation!"]))
assert_node(toctree[1][0][1],
@@ -376,7 +376,7 @@ def test_global_toctree_for_doc_includehidden(app):
assert_node(toctree[1][0][1][1][0][0], reference, refuri="foo#foo-1", secnumber=[1, 2])
assert_node(toctree[1][0][1][2][0][0], reference, refuri="foo#foo-2", secnumber=[1, 3])
assert_node(toctree[1][1][0][0], reference, refuri="bar", secnumber=[2])
- assert_node(toctree[1][2][0][0], reference, refuri="http://sphinx-doc.org/")
+ assert_node(toctree[1][2][0][0], reference, refuri="https://sphinx-doc.org/")
assert_node(toctree[2],
[bullet_list, list_item, compact_paragraph, reference, "baz"])
diff --git a/tests/test_events.py b/tests/test_events.py
index d850a91..5097dc8 100644
--- a/tests/test_events.py
+++ b/tests/test_events.py
@@ -9,11 +9,11 @@ from sphinx.events import EventManager
def test_event_priority():
result = []
events = EventManager(object()) # pass an dummy object as an app
- events.connect('builder-inited', lambda app: result.append(1), priority = 500)
- events.connect('builder-inited', lambda app: result.append(2), priority = 500)
- events.connect('builder-inited', lambda app: result.append(3), priority = 200) # earlier
- events.connect('builder-inited', lambda app: result.append(4), priority = 700) # later
- events.connect('builder-inited', lambda app: result.append(5), priority = 500)
+ events.connect('builder-inited', lambda app: result.append(1), priority=500)
+ events.connect('builder-inited', lambda app: result.append(2), priority=500)
+ events.connect('builder-inited', lambda app: result.append(3), priority=200) # earlier
+ events.connect('builder-inited', lambda app: result.append(4), priority=700) # later
+ events.connect('builder-inited', lambda app: result.append(5), priority=500)
events.emit('builder-inited')
assert result == [3, 1, 2, 5, 4]
diff --git a/tests/test_extensions/__init__.py b/tests/test_extensions/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_extensions/__init__.py
diff --git a/tests/test_extensions/autodoc_util.py b/tests/test_extensions/autodoc_util.py
new file mode 100644
index 0000000..7c4da07
--- /dev/null
+++ b/tests/test_extensions/autodoc_util.py
@@ -0,0 +1,33 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+from unittest.mock import Mock
+
+# NEVER import those objects from sphinx.ext.autodoc directly
+from sphinx.ext.autodoc.directive import DocumenterBridge, process_documenter_options
+from sphinx.util.docutils import LoggingReporter
+
+if TYPE_CHECKING:
+ from typing import Any
+
+ from docutils.statemachine import StringList
+
+ from sphinx.application import Sphinx
+
+
+def do_autodoc(
+ app: Sphinx,
+ objtype: str,
+ name: str,
+ options: dict[str, Any] | None = None,
+) -> StringList:
+ options = {} if options is None else options.copy()
+ app.env.temp_data.setdefault('docname', 'index') # set dummy docname
+ doccls = app.registry.documenters[objtype]
+ docoptions = process_documenter_options(doccls, app.config, options)
+ state = Mock()
+ state.document.settings.tab_width = 8
+ bridge = DocumenterBridge(app.env, LoggingReporter(''), docoptions, 1, state)
+ documenter = doccls(bridge, name)
+ documenter.generate()
+ return bridge.result
diff --git a/tests/ext_napoleon_pep526_data_google.py b/tests/test_extensions/ext_napoleon_pep526_data_google.py
index bb55b0f..d0692e0 100644
--- a/tests/ext_napoleon_pep526_data_google.py
+++ b/tests/test_extensions/ext_napoleon_pep526_data_google.py
@@ -5,7 +5,7 @@ module_level_var: int = 99
class PEP526GoogleClass:
- """Sample class with PEP 526 annotations and google docstring
+ """Sample class with PEP 526 annotations and google docstring.
Attributes:
attr1: Attr1 description.
diff --git a/tests/ext_napoleon_pep526_data_numpy.py b/tests/test_extensions/ext_napoleon_pep526_data_numpy.py
index b3093a7..eff7746 100644
--- a/tests/ext_napoleon_pep526_data_numpy.py
+++ b/tests/test_extensions/ext_napoleon_pep526_data_numpy.py
@@ -16,5 +16,6 @@ class PEP526NumpyClass:
attr2:
Attr2 description
"""
+
attr1: int
attr2: str
diff --git a/tests/test_ext_apidoc.py b/tests/test_extensions/test_ext_apidoc.py
index 1e089a3..c3c979f 100644
--- a/tests/test_ext_apidoc.py
+++ b/tests/test_extensions/test_ext_apidoc.py
@@ -15,7 +15,7 @@ def apidoc(rootdir, tmp_path, apidoc_params):
coderoot = rootdir / kwargs.get('coderoot', 'test-root')
outdir = tmp_path / 'out'
excludes = [str(coderoot / e) for e in kwargs.get('excludes', [])]
- args = ['-o', str(outdir), '-F', str(coderoot)] + excludes + kwargs.get('options', [])
+ args = ['-o', str(outdir), '-F', str(coderoot), *excludes, *kwargs.get('options', [])]
apidoc_main(args)
return namedtuple('apidoc', 'coderoot,outdir')(coderoot, outdir)
@@ -26,8 +26,7 @@ def apidoc_params(request):
kwargs = {}
for info in reversed(list(request.node.iter_markers("apidoc"))):
- for i, a in enumerate(info.args):
- pargs[i] = a
+ pargs |= dict(enumerate(info.args))
kwargs.update(info.kwargs)
args = [pargs[i] for i in sorted(pargs.keys())]
@@ -302,9 +301,9 @@ def test_extension_parsed(make_app, apidoc):
)
def test_toc_all_references_should_exist_pep420_enabled(make_app, apidoc):
"""All references in toc should exist. This test doesn't say if
- directories with empty __init__.py and and nothing else should be
- skipped, just ensures consistency between what's referenced in the toc
- and what is created. This is the variant with pep420 enabled.
+ directories with empty __init__.py and and nothing else should be
+ skipped, just ensures consistency between what's referenced in the toc
+ and what is created. This is the variant with pep420 enabled.
"""
outdir = apidoc.outdir
assert (outdir / 'conf.py').is_file()
@@ -332,9 +331,9 @@ def test_toc_all_references_should_exist_pep420_enabled(make_app, apidoc):
)
def test_toc_all_references_should_exist_pep420_disabled(make_app, apidoc):
"""All references in toc should exist. This test doesn't say if
- directories with empty __init__.py and and nothing else should be
- skipped, just ensures consistency between what's referenced in the toc
- and what is created. This is the variant with pep420 disabled.
+ directories with empty __init__.py and and nothing else should be
+ skipped, just ensures consistency between what's referenced in the toc
+ and what is created. This is the variant with pep420 disabled.
"""
outdir = apidoc.outdir
assert (outdir / 'conf.py').is_file()
@@ -379,7 +378,7 @@ def extract_toc(path):
)
def test_subpackage_in_toc(make_app, apidoc):
"""Make sure that empty subpackages with non-empty subpackages in them
- are not skipped (issue #4520)
+ are not skipped (issue #4520)
"""
outdir = apidoc.outdir
assert (outdir / 'conf.py').is_file()
@@ -643,7 +642,6 @@ def test_no_duplicates(rootdir, tmp_path):
We can't use pytest.mark.apidoc here as we use a different set of arguments
to apidoc_main
"""
-
original_suffixes = sphinx.ext.apidoc.PY_SUFFIXES
try:
# Ensure test works on Windows
diff --git a/tests/test_ext_autodoc.py b/tests/test_extensions/test_ext_autodoc.py
index 7062763..54f81f2 100644
--- a/tests/test_ext_autodoc.py
+++ b/tests/test_extensions/test_ext_autodoc.py
@@ -4,8 +4,14 @@ This tests mainly the Documenters; the auto directives are tested in a test
source file translated by test_build.
"""
+from __future__ import annotations
+
+import functools
+import itertools
+import operator
import sys
from types import SimpleNamespace
+from typing import TYPE_CHECKING
from unittest.mock import Mock
from warnings import catch_warnings
@@ -14,8 +20,8 @@ from docutils.statemachine import ViewList
from sphinx import addnodes
from sphinx.ext.autodoc import ALL, ModuleLevelDocumenter, Options
-from sphinx.ext.autodoc.directive import DocumenterBridge, process_documenter_options
-from sphinx.util.docutils import LoggingReporter
+
+from tests.test_extensions.autodoc_util import do_autodoc
try:
# Enable pyximport to test cython module
@@ -24,47 +30,35 @@ try:
except ImportError:
pyximport = None
-
-def do_autodoc(app, objtype, name, options=None):
- if options is None:
- options = {}
- app.env.temp_data.setdefault('docname', 'index') # set dummy docname
- doccls = app.registry.documenters[objtype]
- docoptions = process_documenter_options(doccls, app.config, options)
- state = Mock()
- state.document.settings.tab_width = 8
- bridge = DocumenterBridge(app.env, LoggingReporter(''), docoptions, 1, state)
- documenter = doccls(bridge, name)
- documenter.generate()
-
- return bridge.result
+if TYPE_CHECKING:
+ from typing import Any
def make_directive_bridge(env):
options = Options(
- inherited_members = False,
- undoc_members = False,
- private_members = False,
- special_members = False,
- imported_members = False,
- show_inheritance = False,
- no_index = False,
- annotation = None,
- synopsis = '',
- platform = '',
- deprecated = False,
- members = [],
- member_order = 'alphabetical',
- exclude_members = set(),
- ignore_module_all = False,
+ inherited_members=False,
+ undoc_members=False,
+ private_members=False,
+ special_members=False,
+ imported_members=False,
+ show_inheritance=False,
+ no_index=False,
+ annotation=None,
+ synopsis='',
+ platform='',
+ deprecated=False,
+ members=[],
+ member_order='alphabetical',
+ exclude_members=set(),
+ ignore_module_all=False,
)
directive = SimpleNamespace(
- env = env,
- genopt = options,
- result = ViewList(),
- record_dependencies = set(),
- state = Mock(),
+ env=env,
+ genopt=options,
+ result=ViewList(),
+ record_dependencies=set(),
+ state=Mock(),
)
directive.state.document.settings.tab_width = 8
@@ -74,23 +68,6 @@ def make_directive_bridge(env):
processed_signatures = []
-def process_signature(app, what, name, obj, options, args, retann):
- processed_signatures.append((what, name))
- if name == 'bar':
- return '42', None
- return None
-
-
-def skip_member(app, what, name, obj, skip, options):
- if name in ('__special1__', '__special2__'):
- return skip
- if name.startswith('__'):
- return True
- if name == 'skipmeth':
- return True
- return None
-
-
def test_parse_name(app):
def verify(objtype, name, result):
inst = app.registry.documenters[objtype](directive, name)
@@ -103,7 +80,7 @@ def test_parse_name(app):
verify('module', 'test_ext_autodoc', ('test_ext_autodoc', [], None, None))
verify('module', 'test.test_ext_autodoc', ('test.test_ext_autodoc', [], None, None))
verify('module', 'test(arg)', ('test', [], 'arg', None))
- assert 'signature arguments' in app._warning.getvalue()
+ assert 'signature arguments' in app.warning.getvalue()
# for functions/classes
verify('function', 'test_ext_autodoc.raises',
@@ -131,6 +108,21 @@ def test_parse_name(app):
def test_format_signature(app):
+ def process_signature(app, what, name, obj, options, args, retann):
+ processed_signatures.append((what, name))
+ if name == 'bar':
+ return '42', None
+ return None
+
+ def skip_member(app, what, name, obj, skip, options):
+ if name in ('__special1__', '__special2__'):
+ return skip
+ if name.startswith('__'):
+ return True
+ if name == 'skipmeth':
+ return True
+ return None
+
app.connect('autodoc-process-signature', process_signature)
app.connect('autodoc-skip-member', skip_member)
@@ -226,12 +218,14 @@ def test_format_signature(app):
class F2:
"""some docstring for F2."""
+
def __init__(self, *args, **kw):
"""
__init__(a1, a2, kw1=True, kw2=False)
some docstring for __init__.
"""
+
class G2(F2):
pass
@@ -330,7 +324,7 @@ def test_get_doc(app):
inst.format_signature() # handle docstring signatures!
ds = inst.get_doc()
# for testing purposes, concat them and strip the empty line at the end
- res = sum(ds, [])[:-1]
+ res = functools.reduce(operator.iadd, ds, [])[:-1]
print(res)
return res
@@ -342,6 +336,7 @@ def test_get_doc(app):
# standard function, diverse docstring styles...
def f():
"""Docstring"""
+
def g():
"""
Docstring
@@ -837,9 +832,13 @@ def test_autodoc_special_members(app):
]
# all special methods
- options = {"members": None,
- "undoc-members": None,
- "special-members": None}
+ options = {
+ "members": None,
+ "undoc-members": None,
+ "special-members": None,
+ }
+ if sys.version_info >= (3, 13, 0, 'alpha', 5):
+ options["exclude-members"] = "__static_attributes__"
actual = do_autodoc(app, 'class', 'target.Class', options)
assert list(filter(lambda l: '::' in l, actual)) == [
'.. py:class:: Class(arg)',
@@ -1402,73 +1401,411 @@ def test_slots(app):
]
+class _EnumFormatter:
+ def __init__(self, name: str, *, module: str = 'target.enums') -> None:
+ self.name = name
+ self.module = module
+
+ @property
+ def target(self) -> str:
+ """The autodoc target class."""
+ return f'{self.module}.{self.name}'
+
+ def subtarget(self, name: str) -> str:
+ """The autodoc sub-target (an attribute, method, etc)."""
+ return f'{self.target}.{name}'
+
+ def _node(
+ self, role: str, name: str, doc: str, *, args: str, indent: int, **options: Any,
+ ) -> list[str]:
+ prefix = indent * ' '
+ tab = ' ' * 3
+
+ def rst_option(name: str, value: Any) -> str:
+ value = '' if value in {1, True} else value
+ return f'{prefix}{tab}:{name}: {value!s}'.rstrip()
+
+ lines = [
+ '',
+ f'{prefix}.. py:{role}:: {name}{args}',
+ f'{prefix}{tab}:module: {self.module}',
+ *itertools.starmap(rst_option, options.items()),
+ ]
+ if doc:
+ lines.extend(['', f'{prefix}{tab}{doc}'])
+ lines.append('')
+ return lines
+
+ def entry(
+ self,
+ entry_name: str,
+ doc: str = '',
+ *,
+ role: str,
+ args: str = '',
+ indent: int = 3,
+ **rst_options: Any,
+ ) -> list[str]:
+ """Get the RST lines for a named attribute, method, etc."""
+ qualname = f'{self.name}.{entry_name}'
+ return self._node(role, qualname, doc, args=args, indent=indent, **rst_options)
+
+ def brief(self, doc: str, *, indent: int = 0, **options: Any) -> list[str]:
+ """Generate the brief part of the class being documented."""
+ assert doc, f'enumeration class {self.target!r} should have an explicit docstring'
+
+ if sys.version_info[:2] >= (3, 13) or sys.version_info[:3] >= (3, 12, 3):
+ args = ('(value, names=<not given>, *values, module=None, '
+ 'qualname=None, type=None, start=1, boundary=None)')
+ elif sys.version_info[:2] >= (3, 12):
+ args = ('(value, names=None, *values, module=None, '
+ 'qualname=None, type=None, start=1, boundary=None)')
+ elif sys.version_info[:2] >= (3, 11):
+ args = ('(value, names=None, *, module=None, qualname=None, '
+ 'type=None, start=1, boundary=None)')
+ else:
+ args = '(value)'
+
+ return self._node('class', self.name, doc, args=args, indent=indent, **options)
+
+ def method(
+ self, name: str, doc: str, *flags: str, args: str = '()', indent: int = 3,
+ ) -> list[str]:
+ rst_options = dict.fromkeys(flags, '')
+ return self.entry(name, doc, role='method', args=args, indent=indent, **rst_options)
+
+ def member(self, name: str, value: Any, doc: str, *, indent: int = 3) -> list[str]:
+ rst_options = {'value': repr(value)}
+ return self.entry(name, doc, role='attribute', indent=indent, **rst_options)
+
+
+@pytest.fixture()
+def autodoc_enum_options() -> dict[str, object]:
+ """Default autodoc options to use when testing enum's documentation."""
+ return {"members": None, "undoc-members": None}
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_class(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumCls')
+ options = autodoc_enum_options | {'private-members': None}
+
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('say_goodbye', 'a classmethod says good-bye to you.', 'classmethod'),
+ *fmt.method('say_hello', 'a method says hello to you.'),
+ *fmt.member('val1', 12, 'doc for val1'),
+ *fmt.member('val2', 23, 'doc for val2'),
+ *fmt.member('val3', 34, 'doc for val3'),
+ *fmt.member('val4', 34, ''), # val4 is alias of val3
+ ]
+
+ # Inherited members exclude the native Enum API (in particular
+ # the 'name' and 'value' properties), unless they were explicitly
+ # redefined by the user in one of the bases.
+ actual = do_autodoc(app, 'class', fmt.target, options | {'inherited-members': None})
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('say_goodbye', 'a classmethod says good-bye to you.', 'classmethod'),
+ *fmt.method('say_hello', 'a method says hello to you.'),
+ *fmt.member('val1', 12, 'doc for val1'),
+ *fmt.member('val2', 23, 'doc for val2'),
+ *fmt.member('val3', 34, 'doc for val3'),
+ *fmt.member('val4', 34, ''), # val4 is alias of val3
+ ]
+
+ # checks for an attribute of EnumCls
+ actual = do_autodoc(app, 'attribute', fmt.subtarget('val1'))
+ assert list(actual) == fmt.member('val1', 12, 'doc for val1', indent=0)
+
+
@pytest.mark.sphinx('html', testroot='ext-autodoc')
-def test_enum_class(app):
- options = {"members": None}
- actual = do_autodoc(app, 'class', 'target.enums.EnumCls', options)
-
- if sys.version_info[:2] >= (3, 12):
- args = ('(value, names=None, *values, module=None, '
- 'qualname=None, type=None, start=1, boundary=None)')
- elif sys.version_info[:2] >= (3, 11):
- args = ('(value, names=None, *, module=None, qualname=None, '
- 'type=None, start=1, boundary=None)')
- else:
- args = '(value)'
+def test_enum_class_with_data_type(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumClassWithDataType')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
assert list(actual) == [
- '',
- '.. py:class:: EnumCls' + args,
- ' :module: target.enums',
- '',
- ' this is enum class',
- '',
- '',
- ' .. py:method:: EnumCls.say_goodbye()',
- ' :module: target.enums',
- ' :classmethod:',
- '',
- ' a classmethod says good-bye to you.',
- '',
- '',
- ' .. py:method:: EnumCls.say_hello()',
- ' :module: target.enums',
- '',
- ' a method says hello to you.',
- '',
- '',
- ' .. py:attribute:: EnumCls.val1',
- ' :module: target.enums',
- ' :value: 12',
- '',
- ' doc for val1',
- '',
- '',
- ' .. py:attribute:: EnumCls.val2',
- ' :module: target.enums',
- ' :value: 23',
- '',
- ' doc for val2',
- '',
- '',
- ' .. py:attribute:: EnumCls.val3',
- ' :module: target.enums',
- ' :value: 34',
- '',
- ' doc for val3',
- '',
+ *fmt.brief('this is enum class'),
+ *fmt.method('say_goodbye', 'docstring', 'classmethod'),
+ *fmt.method('say_hello', 'docstring'),
+ *fmt.member('x', 'x', ''),
]
- # checks for an attribute of EnumClass
- actual = do_autodoc(app, 'attribute', 'target.enums.EnumCls.val1')
+ options = autodoc_enum_options | {'inherited-members': None}
+ actual = do_autodoc(app, 'class', fmt.target, options)
assert list(actual) == [
- '',
- '.. py:attribute:: EnumCls.val1',
- ' :module: target.enums',
- ' :value: 12',
- '',
- ' doc for val1',
- '',
+ *fmt.brief('this is enum class'),
+ *fmt.entry('dtype', 'docstring', role='property'),
+ *fmt.method('isupper', 'inherited'),
+ *fmt.method('say_goodbye', 'docstring', 'classmethod'),
+ *fmt.method('say_hello', 'docstring'),
+ *fmt.member('x', 'x', ''),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_class_with_mixin_type(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumClassWithMixinType')
+
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('say_goodbye', 'docstring', 'classmethod'),
+ *fmt.method('say_hello', 'docstring'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+ options = autodoc_enum_options | {'inherited-members': None}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('say_goodbye', 'docstring', 'classmethod'),
+ *fmt.method('say_hello', 'docstring'),
+ *fmt.entry('value', 'uppercased', role='property'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_class_with_mixin_type_and_inheritence(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumClassWithMixinTypeInherit')
+
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+ options = autodoc_enum_options | {'inherited-members': None}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('say_goodbye', 'inherited', 'classmethod'),
+ *fmt.method('say_hello', 'inherited'),
+ *fmt.entry('value', 'uppercased', role='property'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_class_with_mixin_enum_type(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumClassWithMixinEnumType')
+
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ # override() is overridden at the class level so it should be rendered
+ *fmt.method('override', 'overridden'),
+ # say_goodbye() and say_hello() are not rendered since they are inherited
+ *fmt.member('x', 'x', ''),
+ ]
+
+ options = autodoc_enum_options | {'inherited-members': None}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('override', 'overridden'),
+ *fmt.method('say_goodbye', 'inherited', 'classmethod'),
+ *fmt.method('say_hello', 'inherited'),
+ *fmt.member('x', 'x', ''),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_class_with_mixin_and_data_type(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumClassWithMixinAndDataType')
+
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('isupper', 'overridden'),
+ *fmt.method('say_goodbye', 'overridden', 'classmethod'),
+ *fmt.method('say_hello', 'overridden'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+ # add the special member __str__ (but not the inherited members)
+ options = autodoc_enum_options | {'special-members': '__str__'}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('__str__', 'overridden'),
+ *fmt.method('isupper', 'overridden'),
+ *fmt.method('say_goodbye', 'overridden', 'classmethod'),
+ *fmt.method('say_hello', 'overridden'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+ options = autodoc_enum_options | {'inherited-members': None}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('dtype', 'docstring', role='property'),
+ *fmt.method('isupper', 'overridden'),
+ *fmt.method('say_goodbye', 'overridden', 'classmethod'),
+ *fmt.method('say_hello', 'overridden'),
+ *fmt.entry('value', 'uppercased', role='property'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_with_parent_enum(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumClassWithParentEnum')
+
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('isupper', 'overridden'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+ # add the special member __str__ (but not the inherited members)
+ options = autodoc_enum_options | {'special-members': '__str__'}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('__str__', 'overridden'),
+ *fmt.method('isupper', 'overridden'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+ options = autodoc_enum_options | {'inherited-members': None}
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('dtype', 'docstring', role='property'),
+ *fmt.method('isupper', 'overridden'),
+ *fmt.method('override', 'inherited'),
+ *fmt.method('say_goodbye', 'inherited', 'classmethod'),
+ *fmt.method('say_hello', 'inherited'),
+ *fmt.entry('value', 'uppercased', role='property'),
+ *fmt.member('x', 'X', ''),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_sunder_method(app, autodoc_enum_options):
+ PRIVATE = {'private-members': None} # sunder methods are recognized as private
+
+ fmt = _EnumFormatter('EnumSunderMissingInNonEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options | PRIVATE)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+
+ fmt = _EnumFormatter('EnumSunderMissingInEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options | PRIVATE)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+
+ fmt = _EnumFormatter('EnumSunderMissingInDataType')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options | PRIVATE)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+
+ fmt = _EnumFormatter('EnumSunderMissingInClass')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options | PRIVATE)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('_missing_', 'docstring', 'classmethod', args='(value)'),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_inherited_sunder_method(app, autodoc_enum_options):
+ options = autodoc_enum_options | {'private-members': None, 'inherited-members': None}
+
+ fmt = _EnumFormatter('EnumSunderMissingInNonEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('_missing_', 'inherited', 'classmethod', args='(value)'),
+ ]
+
+ fmt = _EnumFormatter('EnumSunderMissingInEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('_missing_', 'inherited', 'classmethod', args='(value)'),
+ ]
+
+ fmt = _EnumFormatter('EnumSunderMissingInDataType')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('_missing_', 'inherited', 'classmethod', args='(value)'),
+ *fmt.entry('dtype', 'docstring', role='property'),
+ *fmt.method('isupper', 'inherited'),
+ ]
+
+ fmt = _EnumFormatter('EnumSunderMissingInClass')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.method('_missing_', 'docstring', 'classmethod', args='(value)'),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_custom_name_property(app, autodoc_enum_options):
+ fmt = _EnumFormatter('EnumNamePropertyInNonEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+
+ fmt = _EnumFormatter('EnumNamePropertyInEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+
+ fmt = _EnumFormatter('EnumNamePropertyInDataType')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [*fmt.brief('this is enum class')]
+
+ fmt = _EnumFormatter('EnumNamePropertyInClass')
+ actual = do_autodoc(app, 'class', fmt.target, autodoc_enum_options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('name', 'docstring', role='property'),
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_enum_inherited_custom_name_property(app, autodoc_enum_options):
+ options = autodoc_enum_options | {"inherited-members": None}
+
+ fmt = _EnumFormatter('EnumNamePropertyInNonEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('name', 'inherited', role='property'),
+ ]
+
+ fmt = _EnumFormatter('EnumNamePropertyInEnumMixin')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('name', 'inherited', role='property'),
+ ]
+
+ fmt = _EnumFormatter('EnumNamePropertyInDataType')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('dtype', 'docstring', role='property'),
+ *fmt.method('isupper', 'inherited'),
+ *fmt.entry('name', 'inherited', role='property'),
+ ]
+
+ fmt = _EnumFormatter('EnumNamePropertyInClass')
+ actual = do_autodoc(app, 'class', fmt.target, options)
+ assert list(actual) == [
+ *fmt.brief('this is enum class'),
+ *fmt.entry('name', 'docstring', role='property'),
]
@@ -2103,6 +2440,55 @@ def test_singledispatchmethod_automethod(app):
]
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_singledispatchmethod_classmethod(app):
+ options = {"members": None}
+ actual = do_autodoc(app, 'module', 'target.singledispatchmethod_classmethod', options)
+
+ assert list(actual) == [
+ '',
+ '.. py:module:: target.singledispatchmethod_classmethod',
+ '',
+ '',
+ '.. py:class:: Foo()',
+ ' :module: target.singledispatchmethod_classmethod',
+ '',
+ ' docstring',
+ '',
+ '',
+ ' .. py:method:: Foo.class_meth(arg, kwarg=None)',
+ ' Foo.class_meth(arg: float, kwarg=None)',
+ ' Foo.class_meth(arg: int, kwarg=None)',
+ ' Foo.class_meth(arg: str, kwarg=None)',
+ ' Foo.class_meth(arg: dict, kwarg=None)',
+ ' :module: target.singledispatchmethod_classmethod',
+ ' :classmethod:',
+ '',
+ ' A class method for general use.',
+ '',
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_singledispatchmethod_classmethod_automethod(app):
+ options = {}
+ actual = do_autodoc(app, 'method', 'target.singledispatchmethod_classmethod.Foo.class_meth', options)
+
+ assert list(actual) == [
+ '',
+ '.. py:method:: Foo.class_meth(arg, kwarg=None)',
+ ' Foo.class_meth(arg: float, kwarg=None)',
+ ' Foo.class_meth(arg: int, kwarg=None)',
+ ' Foo.class_meth(arg: str, kwarg=None)',
+ ' Foo.class_meth(arg: dict, kwarg=None)',
+ ' :module: target.singledispatchmethod_classmethod',
+ ' :classmethod:',
+ '',
+ ' A class method for general use.',
+ '',
+ ]
+
+
@pytest.mark.skipif(sys.version_info[:2] >= (3, 13),
reason='Cython does not support Python 3.13 yet.')
@pytest.mark.skipif(pyximport is None, reason='cython is not installed')
@@ -2276,7 +2662,7 @@ def test_pyclass_for_ClassLevelDocumenter(app):
@pytest.mark.sphinx('dummy', testroot='ext-autodoc')
def test_autodoc(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = app.env.get_doctree('index')
assert isinstance(content[3], addnodes.desc)
diff --git a/tests/test_ext_autodoc_autoattribute.py b/tests/test_extensions/test_ext_autodoc_autoattribute.py
index 0424af0..41fcc99 100644
--- a/tests/test_ext_autodoc_autoattribute.py
+++ b/tests/test_extensions/test_ext_autodoc_autoattribute.py
@@ -6,7 +6,7 @@ source file translated by test_build.
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
diff --git a/tests/test_ext_autodoc_autoclass.py b/tests/test_extensions/test_ext_autodoc_autoclass.py
index 92c259a..3e68d60 100644
--- a/tests/test_ext_autodoc_autoclass.py
+++ b/tests/test_extensions/test_ext_autodoc_autoclass.py
@@ -11,7 +11,7 @@ from typing import Union
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
@@ -169,6 +169,7 @@ def test_undocumented_uninitialized_attributes(app):
]
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_decorators(app):
actual = do_autodoc(app, 'class', 'target.decorator.Baz')
assert list(actual) == [
@@ -275,8 +276,7 @@ def test_show_inheritance_for_subclass_of_generic_type(app):
'.. py:class:: Quux(iterable=(), /)',
' :module: target.classes',
'',
- ' Bases: :py:class:`~typing.List`\\ '
- '[:py:obj:`~typing.Union`\\ [:py:class:`int`, :py:class:`float`]]',
+ ' Bases: :py:class:`~typing.List`\\ [:py:class:`int` | :py:class:`float`]',
'',
' A subclass of List[Union[int, float]]',
'',
@@ -373,6 +373,7 @@ def test_class_doc_from_both(app):
]
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_class_alias(app):
def autodoc_process_docstring(*args):
"""A handler always raises an error.
@@ -391,6 +392,7 @@ def test_class_alias(app):
]
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_class_alias_having_doccomment(app):
actual = do_autodoc(app, 'class', 'target.classes.OtherAlias')
assert list(actual) == [
@@ -403,6 +405,7 @@ def test_class_alias_having_doccomment(app):
]
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_class_alias_for_imported_object_having_doccomment(app):
actual = do_autodoc(app, 'class', 'target.classes.IntAlias')
assert list(actual) == [
@@ -515,3 +518,49 @@ def test_autoattribute_TypeVar_module_level(app):
" alias of TypeVar('T1')",
'',
]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_inherited_instance_variable_with_annotations(app):
+ options = {'members': None,
+ 'inherited-members': None}
+ actual = do_autodoc(app, 'class', 'target.inherited_annotations.NoTypeAnnotation', options)
+ assert list(actual) == [
+ '',
+ '.. py:class:: NoTypeAnnotation()',
+ ' :module: target.inherited_annotations',
+ '',
+ '',
+ ' .. py:attribute:: NoTypeAnnotation.a',
+ ' :module: target.inherited_annotations',
+ ' :value: 1',
+ '',
+ ' Local',
+ '',
+ '',
+ ' .. py:attribute:: NoTypeAnnotation.inherit_me',
+ ' :module: target.inherited_annotations',
+ ' :type: int',
+ '',
+ ' Inherited',
+ '',
+ ]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_no_inherited_instance_variable_with_annotations(app):
+ options = {'members': None}
+ actual = do_autodoc(app, 'class', 'target.inherited_annotations.NoTypeAnnotation2', options)
+ assert list(actual) == [
+ '',
+ '.. py:class:: NoTypeAnnotation2()',
+ ' :module: target.inherited_annotations',
+ '',
+ '',
+ ' .. py:attribute:: NoTypeAnnotation2.a',
+ ' :module: target.inherited_annotations',
+ ' :value: 1',
+ '',
+ ' Local',
+ '',
+ ]
diff --git a/tests/test_ext_autodoc_autodata.py b/tests/test_extensions/test_ext_autodoc_autodata.py
index 83647d9..b794666 100644
--- a/tests/test_ext_autodoc_autodata.py
+++ b/tests/test_extensions/test_ext_autodoc_autodata.py
@@ -6,7 +6,7 @@ source file translated by test_build.
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
diff --git a/tests/test_ext_autodoc_autofunction.py b/tests/test_extensions/test_ext_autodoc_autofunction.py
index b0cd7d9..5dfa42d 100644
--- a/tests/test_ext_autodoc_autofunction.py
+++ b/tests/test_extensions/test_ext_autodoc_autofunction.py
@@ -6,7 +6,7 @@ source file translated by test_build.
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
@@ -199,3 +199,14 @@ def test_async_generator(app):
' :async:',
'',
]
+
+
+@pytest.mark.sphinx('html', testroot='ext-autodoc')
+def test_slice_function_arg(app):
+ actual = do_autodoc(app, 'function', 'target.functions.slice_arg_func')
+ assert list(actual) == [
+ '',
+ '.. py:function:: slice_arg_func(arg: float64[:, :])',
+ ' :module: target.functions',
+ '',
+ ]
diff --git a/tests/test_ext_autodoc_automodule.py b/tests/test_extensions/test_ext_autodoc_automodule.py
index 2855020..92565ae 100644
--- a/tests/test_ext_autodoc_automodule.py
+++ b/tests/test_extensions/test_ext_autodoc_automodule.py
@@ -8,7 +8,7 @@ import sys
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
diff --git a/tests/test_ext_autodoc_autoproperty.py b/tests/test_extensions/test_ext_autodoc_autoproperty.py
index ca8b981..de33117 100644
--- a/tests/test_ext_autodoc_autoproperty.py
+++ b/tests/test_extensions/test_ext_autodoc_autoproperty.py
@@ -6,7 +6,7 @@ source file translated by test_build.
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
diff --git a/tests/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py
index 45bc729..6c2af5a 100644
--- a/tests/test_ext_autodoc_configs.py
+++ b/tests/test_extensions/test_ext_autodoc_configs.py
@@ -8,7 +8,7 @@ import pytest
from sphinx.testing import restructuredtext
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
IS_PYPY = platform.python_implementation() == 'PyPy'
@@ -969,9 +969,9 @@ def test_autodoc_typehints_description(app):
assert ('target.typehints.incr(a, b=1)\n'
'\n'
' Parameters:\n'
- ' * **a** (*int*) --\n'
+ ' * **a** (*int*)\n'
'\n'
- ' * **b** (*int*) --\n'
+ ' * **b** (*int*)\n'
'\n'
' Return type:\n'
' int\n'
@@ -979,7 +979,7 @@ def test_autodoc_typehints_description(app):
assert ('target.typehints.tuple_args(x)\n'
'\n'
' Parameters:\n'
- ' **x** (*tuple**[**int**, **int** | **str**]*) --\n'
+ ' **x** (*tuple**[**int**, **int** | **str**]*)\n'
'\n'
' Return type:\n'
' tuple[int, int]\n'
@@ -1117,11 +1117,11 @@ def test_autodoc_typehints_description_with_documented_init(app):
' Class docstring.\n'
'\n'
' Parameters:\n'
- ' * **x** (*int*) --\n'
+ ' * **x** (*int*)\n'
'\n'
- ' * **args** (*int*) --\n'
+ ' * **args** (*int*)\n'
'\n'
- ' * **kwargs** (*int*) --\n'
+ ' * **kwargs** (*int*)\n'
'\n'
' __init__(x, *args, **kwargs)\n'
'\n'
@@ -1217,9 +1217,9 @@ def test_autodoc_typehints_both(app):
assert ('target.typehints.incr(a: int, b: int = 1) -> int\n'
'\n'
' Parameters:\n'
- ' * **a** (*int*) --\n'
+ ' * **a** (*int*)\n'
'\n'
- ' * **b** (*int*) --\n'
+ ' * **b** (*int*)\n'
'\n'
' Return type:\n'
' int\n'
@@ -1227,7 +1227,7 @@ def test_autodoc_typehints_both(app):
assert ('target.typehints.tuple_args(x: tuple[int, int | str]) -> tuple[int, int]\n'
'\n'
' Parameters:\n'
- ' **x** (*tuple**[**int**, **int** | **str**]*) --\n'
+ ' **x** (*tuple**[**int**, **int** | **str**]*)\n'
'\n'
' Return type:\n'
' tuple[int, int]\n'
@@ -1401,9 +1401,9 @@ def test_autodoc_typehints_description_and_type_aliases(app):
' docstring\n'
'\n'
' Parameters:\n'
- ' * **x** (*myint*) --\n'
+ ' * **x** (*myint*)\n'
'\n'
- ' * **y** (*myint*) --\n'
+ ' * **y** (*myint*)\n'
'\n'
' Return type:\n'
' myint\n'
@@ -1584,6 +1584,14 @@ def test_autodoc_typehints_format_fully_qualified_for_newtype_alias(app):
@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_autodoc_default_options(app):
+ if (
+ (3, 11, 7) <= sys.version_info < (3, 12)
+ or sys.version_info >= (3, 12, 1)
+ ):
+ list_of_weak_references = " list of weak references to the object"
+ else:
+ list_of_weak_references = " list of weak references to the object (if defined)"
+
# no settings
actual = do_autodoc(app, 'class', 'target.enums.EnumCls')
assert ' .. py:attribute:: EnumCls.val1' not in actual
@@ -1627,7 +1635,7 @@ def test_autodoc_default_options(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' in actual
- assert ' list of weak references to the object (if defined)' in actual
+ assert list_of_weak_references in actual
# :exclude-members: None - has no effect. Unlike :members:,
# :special-members:, etc. where None == "include all", here None means
@@ -1651,13 +1659,21 @@ def test_autodoc_default_options(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' in actual
- assert ' list of weak references to the object (if defined)' in actual
+ assert list_of_weak_references in actual
assert ' .. py:method:: CustomIter.snafucate()' in actual
assert ' Makes this snafucated.' in actual
@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_autodoc_default_options_with_values(app):
+ if (
+ (3, 11, 7) <= sys.version_info < (3, 12)
+ or sys.version_info >= (3, 12, 1)
+ ):
+ list_of_weak_references = " list of weak references to the object"
+ else:
+ list_of_weak_references = " list of weak references to the object (if defined)"
+
# with :members:
app.config.autodoc_default_options = {'members': 'val1,val2'}
actual = do_autodoc(app, 'class', 'target.enums.EnumCls')
@@ -1698,7 +1714,7 @@ def test_autodoc_default_options_with_values(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' not in actual
- assert ' list of weak references to the object (if defined)' not in actual
+ assert list_of_weak_references not in actual
# with :exclude-members:
app.config.autodoc_default_options = {
@@ -1722,6 +1738,6 @@ def test_autodoc_default_options_with_values(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' not in actual
- assert ' list of weak references to the object (if defined)' not in actual
+ assert list_of_weak_references not in actual
assert ' .. py:method:: CustomIter.snafucate()' not in actual
assert ' Makes this snafucated.' not in actual
diff --git a/tests/test_ext_autodoc_events.py b/tests/test_extensions/test_ext_autodoc_events.py
index d821f4c..c0af254 100644
--- a/tests/test_ext_autodoc_events.py
+++ b/tests/test_extensions/test_ext_autodoc_events.py
@@ -4,7 +4,7 @@ import pytest
from sphinx.ext.autodoc import between, cut_lines
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
diff --git a/tests/test_ext_autodoc_mock.py b/tests/test_extensions/test_ext_autodoc_mock.py
index 3b90693..3b90693 100644
--- a/tests/test_ext_autodoc_mock.py
+++ b/tests/test_extensions/test_ext_autodoc_mock.py
diff --git a/tests/test_ext_autodoc_preserve_defaults.py b/tests/test_extensions/test_ext_autodoc_preserve_defaults.py
index 70b6146..c1a00ab 100644
--- a/tests/test_ext_autodoc_preserve_defaults.py
+++ b/tests/test_extensions/test_ext_autodoc_preserve_defaults.py
@@ -2,7 +2,7 @@
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc',
diff --git a/tests/test_ext_autodoc_private_members.py b/tests/test_extensions/test_ext_autodoc_private_members.py
index bf707bf..bf14414 100644
--- a/tests/test_ext_autodoc_private_members.py
+++ b/tests/test_extensions/test_ext_autodoc_private_members.py
@@ -3,7 +3,7 @@
import pytest
-from .test_ext_autodoc import do_autodoc
+from tests.test_extensions.autodoc_util import do_autodoc
@pytest.mark.sphinx('html', testroot='ext-autodoc')
diff --git a/tests/test_ext_autosectionlabel.py b/tests/test_extensions/test_ext_autosectionlabel.py
index f99a6d3..f854ecf 100644
--- a/tests/test_ext_autosectionlabel.py
+++ b/tests/test_extensions/test_ext_autosectionlabel.py
@@ -7,42 +7,42 @@ import pytest
@pytest.mark.sphinx('html', testroot='ext-autosectionlabel')
def test_autosectionlabel_html(app, status, warning, skipped_labels=False):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
html = ('<li><p><a class="reference internal" href="#introduce-of-sphinx">'
'<span class=".*?">Introduce of Sphinx</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = ('<li><p><a class="reference internal" href="#installation">'
'<span class="std std-ref">Installation</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = ('<li><p><a class="reference internal" href="#for-windows-users">'
'<span class="std std-ref">For Windows users</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = ('<li><p><a class="reference internal" href="#for-unix-users">'
'<span class="std std-ref">For UNIX users</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = ('<li><p><a class="reference internal" href="#linux">'
'<span class="std std-ref">Linux</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = ('<li><p><a class="reference internal" href="#freebsd">'
'<span class="std std-ref">FreeBSD</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
# for smart_quotes (refs: #4027)
html = ('<li><p><a class="reference internal" '
'href="#this-one-s-got-an-apostrophe">'
'<span class="std std-ref">This one’s got an apostrophe'
'</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
-# Re-use test definition from above, just change the test root directory
+# Reuse test definition from above, just change the test root directory
@pytest.mark.sphinx('html', testroot='ext-autosectionlabel-prefix-document')
def test_autosectionlabel_prefix_document_html(app, status, warning):
test_autosectionlabel_html(app, status, warning)
@@ -51,27 +51,27 @@ def test_autosectionlabel_prefix_document_html(app, status, warning):
@pytest.mark.sphinx('html', testroot='ext-autosectionlabel',
confoverrides={'autosectionlabel_maxdepth': 3})
def test_autosectionlabel_maxdepth(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
# depth: 1
html = ('<li><p><a class="reference internal" href="#test-ext-autosectionlabel">'
'<span class=".*?">test-ext-autosectionlabel</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
# depth: 2
html = ('<li><p><a class="reference internal" href="#installation">'
'<span class="std std-ref">Installation</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
# depth: 3
html = ('<li><p><a class="reference internal" href="#for-windows-users">'
'<span class="std std-ref">For Windows users</span></a></p></li>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
# depth: 4
html = '<li><p><span class="xref std std-ref">Linux</span></p></li>'
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
assert "WARNING: undefined label: 'linux'" in warning.getvalue()
diff --git a/tests/test_ext_autosummary.py b/tests/test_extensions/test_ext_autosummary.py
index 43f3ae0..d761978 100644
--- a/tests/test_ext_autosummary.py
+++ b/tests/test_extensions/test_ext_autosummary.py
@@ -154,7 +154,7 @@ def test_get_items_summary(make_app, app_params):
def new_get_items(self, names, *args, **kwargs):
results = orig_get_items(self, names, *args, **kwargs)
for name, result in zip(names, results):
- autosummary_items[name] = result
+ autosummary_items[name] = result # NoQA: PERF403
return results
def handler(app, what, name, obj, options, lines):
@@ -167,7 +167,7 @@ def test_get_items_summary(make_app, app_params):
sphinx.ext.autosummary.Autosummary.get_items = new_get_items
try:
- app.builder.build_all()
+ app.build(force_all=True)
finally:
sphinx.ext.autosummary.Autosummary.get_items = orig_get_items
@@ -207,7 +207,7 @@ def str_content(elem):
@pytest.mark.sphinx('xml', **default_kw)
def test_escaping(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
outdir = Path(app.builder.outdir)
@@ -358,7 +358,7 @@ def test_autosummary_generate_content_for_module_imported_members_inherited_modu
@pytest.mark.sphinx('dummy', testroot='ext-autosummary')
def test_autosummary_generate(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
doctree = app.env.get_doctree('index')
assert_node(doctree, (nodes.paragraph,
@@ -544,7 +544,7 @@ def test_autosummary_filename_map(app, status, warning):
@pytest.mark.sphinx('latex', **default_kw)
def test_autosummary_latex_table_colspec(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'python.tex').read_text(encoding='utf8')
print(status.getvalue())
print(warning.getvalue())
diff --git a/tests/test_ext_coverage.py b/tests/test_extensions/test_ext_coverage.py
index af8cf53..c9e9ba9 100644
--- a/tests/test_ext_coverage.py
+++ b/tests/test_extensions/test_ext_coverage.py
@@ -7,7 +7,7 @@ import pytest
@pytest.mark.sphinx('coverage')
def test_build(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
py_undoc = (app.outdir / 'python.txt').read_text(encoding='utf8')
assert py_undoc.startswith('Undocumented Python objects\n'
@@ -45,7 +45,7 @@ def test_build(app, status, warning):
@pytest.mark.sphinx('coverage', testroot='ext-coverage')
def test_coverage_ignore_pyobjects(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
actual = (app.outdir / 'python.txt').read_text(encoding='utf8')
expected = '''\
Undocumented Python objects
@@ -78,7 +78,7 @@ Classes:
@pytest.mark.sphinx('coverage', confoverrides={'coverage_show_missing_items': True})
def test_show_missing_items(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert "undocumented" in status.getvalue()
@@ -92,7 +92,7 @@ def test_show_missing_items(app, status, warning):
@pytest.mark.sphinx('coverage', confoverrides={'coverage_show_missing_items': True})
def test_show_missing_items_quiet(app, status, warning):
app.quiet = True
- app.builder.build_all()
+ app.build(force_all=True)
assert "undocumented python function: autodoc_target :: raises" in warning.getvalue()
assert "undocumented python class: autodoc_target :: Base" in warning.getvalue()
diff --git a/tests/test_ext_doctest.py b/tests/test_extensions/test_ext_doctest.py
index c83e582..ab0dd62 100644
--- a/tests/test_ext_doctest.py
+++ b/tests/test_extensions/test_ext_doctest.py
@@ -16,9 +16,8 @@ cleanup_called = 0
def test_build(app, status, warning):
global cleanup_called
cleanup_called = 0
- app.builder.build_all()
- if app.statuscode != 0:
- raise AssertionError('failures in doctests:' + status.getvalue())
+ app.build(force_all=True)
+ assert app.statuscode == 0, f'failures in doctests:\n{status.getvalue()}'
# in doctest.txt, there are two named groups and the default group,
# so the cleanup function must be called three times
assert cleanup_called == 3, 'testcleanup did not get executed enough times'
@@ -80,13 +79,13 @@ def test_skipif(app, status, warning):
The tests are separated into a different test root directory since the
``app`` object only evaluates options once in its lifetime. If these tests
were combined with the other doctest tests, the ``:skipif:`` evaluations
- would be recorded only on the first ``app.builder.build_all()`` run, i.e.
+ would be recorded only on the first ``app.build(force_all=True)`` run, i.e.
in ``test_build`` above, and the assertion below would fail.
"""
global recorded_calls
recorded_calls = Counter()
- app.builder.build_all()
+ app.build(force_all=True)
if app.statuscode != 0:
raise AssertionError('failures in doctests:' + status.getvalue())
# The `:skipif:` expressions are always run.
@@ -124,7 +123,7 @@ def test_reporting_with_autodoc(app, status, warning, capfd):
# Patch builder to get a copy of the output
written = []
app.builder._warn_out = written.append
- app.builder.build_all()
+ app.build(force_all=True)
failures = [line.replace(os.sep, '/')
for line in '\n'.join(written).splitlines()
diff --git a/tests/test_ext_duration.py b/tests/test_extensions/test_ext_duration.py
index 4fa4dfc..4fa4dfc 100644
--- a/tests/test_ext_duration.py
+++ b/tests/test_extensions/test_ext_duration.py
diff --git a/tests/test_ext_extlinks.py b/tests/test_extensions/test_ext_extlinks.py
index 7634db6..7634db6 100644
--- a/tests/test_ext_extlinks.py
+++ b/tests/test_extensions/test_ext_extlinks.py
diff --git a/tests/test_ext_githubpages.py b/tests/test_extensions/test_ext_githubpages.py
index 8e41537..879b6d1 100644
--- a/tests/test_ext_githubpages.py
+++ b/tests/test_extensions/test_ext_githubpages.py
@@ -5,7 +5,7 @@ import pytest
@pytest.mark.sphinx('html', testroot='ext-githubpages')
def test_githubpages(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / '.nojekyll').exists()
assert not (app.outdir / 'CNAME').exists()
@@ -13,7 +13,7 @@ def test_githubpages(app, status, warning):
@pytest.mark.sphinx('html', testroot='ext-githubpages',
confoverrides={'html_baseurl': 'https://sphinx-doc.github.io'})
def test_no_cname_for_github_io_domain(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / '.nojekyll').exists()
assert not (app.outdir / 'CNAME').exists()
@@ -21,6 +21,6 @@ def test_no_cname_for_github_io_domain(app, status, warning):
@pytest.mark.sphinx('html', testroot='ext-githubpages',
confoverrides={'html_baseurl': 'https://sphinx-doc.org'})
def test_cname_for_custom_domain(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / '.nojekyll').exists()
assert (app.outdir / 'CNAME').read_text(encoding='utf8') == 'sphinx-doc.org'
diff --git a/tests/test_ext_graphviz.py b/tests/test_extensions/test_ext_graphviz.py
index d63dc2a..866a92a 100644
--- a/tests/test_ext_graphviz.py
+++ b/tests/test_extensions/test_ext_graphviz.py
@@ -11,40 +11,40 @@ from sphinx.ext.graphviz import ClickableMapDefinition
@pytest.mark.sphinx('html', testroot='ext-graphviz')
@pytest.mark.usefixtures('if_graphviz_found')
def test_graphviz_png_html(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
html = (r'<figure class="align-default" .*?>\s*'
r'<div class="graphviz"><img .*?/></div>\s*<figcaption>\s*'
r'<p><span class="caption-text">caption of graph</span>.*</p>\s*'
r'</figcaption>\s*</figure>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = 'Hello <div class="graphviz"><img .*?/></div>\n graphviz world'
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = ('<img src=".*?" alt="digraph foo {\nbaz -&gt; qux\n}" '
'class="graphviz neato-graph" />')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = (r'<figure class="align-right" .*?>\s*'
r'<div class="graphviz"><img .*?/></div>\s*<figcaption>\s*'
r'<p><span class="caption-text">on <em>right</em></span>.*</p>\s*'
r'</figcaption>\s*</figure>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = (r'<div align=\"center\" class=\"align-center\">'
r'<div class="graphviz"><img src=\".*\.png\" alt=\"digraph foo {\n'
r'centered\n'
r'}\" class="graphviz" /></div>\n</div>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
@pytest.mark.sphinx('html', testroot='ext-graphviz',
confoverrides={'graphviz_output_format': 'svg'})
@pytest.mark.usefixtures('if_graphviz_found')
def test_graphviz_svg_html(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
@@ -57,12 +57,12 @@ def test_graphviz_svg_html(app, status, warning):
r'<p><span class=\"caption-text\">caption of graph</span>.*</p>\n'
r'</figcaption>\n'
r'</figure>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = (r'Hello <div class="graphviz"><object.*>\n'
r'\s*<p class=\"warning\">graph</p></object></div>\n'
r' graphviz world')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = (r'<figure class=\"align-right\" .*\>\n'
r'<div class="graphviz"><object data=\".*\.svg\".*>\n'
@@ -73,7 +73,7 @@ def test_graphviz_svg_html(app, status, warning):
r'<p><span class=\"caption-text\">on <em>right</em></span>.*</p>\n'
r'</figcaption>\n'
r'</figure>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
html = (r'<div align=\"center\" class=\"align-center\">'
r'<div class="graphviz"><object data=\".*\.svg\".*>\n'
@@ -81,10 +81,10 @@ def test_graphviz_svg_html(app, status, warning):
r'centered\n'
r'}</p></object></div>\n'
r'</div>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
image_re = r'.*data="([^"]+)".*?digraph test'
- image_path_match = re.search(image_re, content, re.S)
+ image_path_match = re.search(image_re, content, re.DOTALL)
assert image_path_match
image_path = image_path_match.group(1)
@@ -103,37 +103,37 @@ def test_graphviz_svg_html(app, status, warning):
@pytest.mark.sphinx('latex', testroot='ext-graphviz')
@pytest.mark.usefixtures('if_graphviz_found')
def test_graphviz_latex(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.tex').read_text(encoding='utf8')
macro = ('\\\\begin{figure}\\[htbp\\]\n\\\\centering\n\\\\capstart\n\n'
'\\\\sphinxincludegraphics\\[\\]{graphviz-\\w+.pdf}\n'
'\\\\caption{caption of graph}\\\\label{.*}\\\\end{figure}')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = 'Hello \\\\sphinxincludegraphics\\[\\]{graphviz-\\w+.pdf} graphviz world'
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = ('\\\\begin{wrapfigure}{r}{0pt}\n\\\\centering\n'
'\\\\sphinxincludegraphics\\[\\]{graphviz-\\w+.pdf}\n'
'\\\\caption{on \\\\sphinxstyleemphasis{right}}'
'\\\\label{.*}\\\\end{wrapfigure}')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = (r'\{\\hfill'
r'\\sphinxincludegraphics\[\]{graphviz-.*}'
r'\\hspace\*{\\fill}}')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
@pytest.mark.sphinx('html', testroot='ext-graphviz', confoverrides={'language': 'xx'})
@pytest.mark.usefixtures('if_graphviz_found')
def test_graphviz_i18n(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
html = '<img src=".*?" alt="digraph {\n BAR -&gt; BAZ\n}" class="graphviz" />'
- assert re.search(html, content, re.M)
+ assert re.search(html, content, re.MULTILINE)
def test_graphviz_parse_mapfile():
@@ -150,17 +150,17 @@ def test_graphviz_parse_mapfile():
# normal graph
code = ('digraph {\n'
- ' foo [href="http://www.google.com/"];\n'
+ ' foo [href="https://www.google.com/"];\n'
' foo -> bar;\n'
'}\n')
content = ('<map id="%3" name="%3">\n'
- '<area shape="poly" id="node1" href="http://www.google.com/" title="foo" alt=""'
+ '<area shape="poly" id="node1" href="https://www.google.com/" title="foo" alt=""'
' coords="77,29,76,22,70,15,62,10,52,7,41,5,30,7,20,10,12,15,7,22,5,29,7,37,12,'
'43,20,49,30,52,41,53,52,52,62,49,70,43,76,37"/>\n'
'</map>')
cmap = ClickableMapDefinition('dummy.map', content, code)
assert cmap.filename == 'dummy.map'
- assert cmap.id == 'grapviza4ccdd48ce'
+ assert cmap.id == 'grapvizff087ab863'
assert len(cmap.clickable) == 1
assert cmap.generate_clickable_map() == content.replace('%3', cmap.id)
diff --git a/tests/test_ext_ifconfig.py b/tests/test_extensions/test_ext_ifconfig.py
index 0292699..3e46b1e 100644
--- a/tests/test_ext_ifconfig.py
+++ b/tests/test_extensions/test_ext_ifconfig.py
@@ -9,7 +9,7 @@ from sphinx.testing import restructuredtext
@pytest.mark.sphinx('text', testroot='ext-ifconfig')
def test_ifconfig(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
result = (app.outdir / 'index.txt').read_text(encoding='utf8')
assert 'spam' in result
assert 'ham' not in result
diff --git a/tests/test_ext_imgconverter.py b/tests/test_extensions/test_ext_imgconverter.py
index 18be700..c1d2061 100644
--- a/tests/test_ext_imgconverter.py
+++ b/tests/test_extensions/test_ext_imgconverter.py
@@ -10,7 +10,8 @@ def _if_converter_found(app):
image_converter = getattr(app.config, 'image_converter', '')
try:
if image_converter:
- subprocess.run([image_converter, '-version'], capture_output=True) # show version
+ # print the image_converter version, to check that the command is available
+ subprocess.run([image_converter, '-version'], capture_output=True, check=False)
return
except OSError: # No such file or directory
pass
@@ -21,7 +22,7 @@ def _if_converter_found(app):
@pytest.mark.usefixtures('_if_converter_found')
@pytest.mark.sphinx('latex', testroot='ext-imgconverter')
def test_ext_imgconverter(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.tex').read_text(encoding='utf8')
diff --git a/tests/test_ext_imgmockconverter.py b/tests/test_extensions/test_ext_imgmockconverter.py
index b5d4e79..4c3c64e 100644
--- a/tests/test_ext_imgmockconverter.py
+++ b/tests/test_extensions/test_ext_imgmockconverter.py
@@ -5,7 +5,7 @@ import pytest
@pytest.mark.sphinx('latex', testroot='ext-imgmockconverter')
def test_ext_imgmockconverter(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.tex').read_text(encoding='utf8')
diff --git a/tests/test_ext_inheritance_diagram.py b/tests/test_extensions/test_ext_inheritance_diagram.py
index 9ace5ad..c13ccea 100644
--- a/tests/test_ext_inheritance_diagram.py
+++ b/tests/test_extensions/test_ext_inheritance_diagram.py
@@ -33,7 +33,7 @@ def test_inheritance_diagram(app, status, warning):
InheritanceDiagram.run = new_run
try:
- app.builder.build_all()
+ app.build(force_all=True)
finally:
InheritanceDiagram.run = orig_run
@@ -160,7 +160,7 @@ def test_inheritance_diagram_png_html(tmp_path, app):
normalize_intersphinx_mapping(app, app.config)
load_mappings(app)
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
base_maps = re.findall('<map .+\n.+\n</map>', content)
@@ -171,7 +171,7 @@ def test_inheritance_diagram_png_html(tmp_path, app):
'class="inheritance graphviz" /></div>\n<figcaption>\n<p>'
'<span class="caption-text">Test Foo!</span><a class="headerlink" href="#id1" '
'title="Link to this image">\xb6</a></p>\n</figcaption>\n</figure>\n')
- assert re.search(pattern, content, re.M)
+ assert re.search(pattern, content, re.MULTILINE)
subdir_content = (app.outdir / 'subdir/page1.html').read_text(encoding='utf8')
subdir_maps = re.findall('<map .+\n.+\n</map>', subdir_content)
@@ -207,7 +207,7 @@ def test_inheritance_diagram_svg_html(tmp_path, app):
normalize_intersphinx_mapping(app, app.config)
load_mappings(app)
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
base_svgs = re.findall('<object data="(_images/inheritance-\\w+.svg?)"', content)
@@ -216,12 +216,12 @@ def test_inheritance_diagram_svg_html(tmp_path, app):
'<div class="graphviz">'
'<object data="_images/inheritance-\\w+.svg" '
'type="image/svg\\+xml" class="inheritance graphviz">\n'
- '<p class=\"warning\">Inheritance diagram of test.Foo</p>'
+ '<p class="warning">Inheritance diagram of test.Foo</p>'
'</object></div>\n<figcaption>\n<p><span class="caption-text">'
'Test Foo!</span><a class="headerlink" href="#id1" '
'title="Link to this image">\xb6</a></p>\n</figcaption>\n</figure>\n')
- assert re.search(pattern, content, re.M)
+ assert re.search(pattern, content, re.MULTILINE)
subdir_content = (app.outdir / 'subdir/page1.html').read_text(encoding='utf8')
subdir_svgs = re.findall('<object data="../(_images/inheritance-\\w+.svg?)"', subdir_content)
@@ -249,14 +249,14 @@ def test_inheritance_diagram_svg_html(tmp_path, app):
@pytest.mark.sphinx('latex', testroot='ext-inheritance_diagram')
@pytest.mark.usefixtures('if_graphviz_found')
def test_inheritance_diagram_latex(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.tex').read_text(encoding='utf8')
pattern = ('\\\\begin{figure}\\[htbp]\n\\\\centering\n\\\\capstart\n\n'
'\\\\sphinxincludegraphics\\[\\]{inheritance-\\w+.pdf}\n'
'\\\\caption{Test Foo!}\\\\label{\\\\detokenize{index:id1}}\\\\end{figure}')
- assert re.search(pattern, content, re.M)
+ assert re.search(pattern, content, re.MULTILINE)
@pytest.mark.sphinx('html', testroot='ext-inheritance_diagram',
@@ -264,7 +264,7 @@ def test_inheritance_diagram_latex(app, status, warning):
@pytest.mark.usefixtures('if_graphviz_found')
def test_inheritance_diagram_latex_alias(app, status, warning):
app.config.inheritance_alias = {'test.Foo': 'alias.Foo'}
- app.builder.build_all()
+ app.build(force_all=True)
doc = app.env.get_and_resolve_doctree('index', app)
aliased_graph = doc.children[0].children[3]['graph'].class_info
@@ -282,7 +282,7 @@ def test_inheritance_diagram_latex_alias(app, status, warning):
'class="inheritance graphviz" /></div>\n<figcaption>\n<p>'
'<span class="caption-text">Test Foo!</span><a class="headerlink" href="#id1" '
'title="Link to this image">\xb6</a></p>\n</figcaption>\n</figure>\n')
- assert re.search(pattern, content, re.M)
+ assert re.search(pattern, content, re.MULTILINE)
def test_import_classes(rootdir):
diff --git a/tests/test_ext_intersphinx.py b/tests/test_extensions/test_ext_intersphinx.py
index 82bec9e..ef5a9b1 100644
--- a/tests/test_ext_intersphinx.py
+++ b/tests/test_extensions/test_ext_intersphinx.py
@@ -18,9 +18,10 @@ from sphinx.ext.intersphinx import (
normalize_intersphinx_mapping,
)
from sphinx.ext.intersphinx import setup as intersphinx_setup
+from sphinx.util.console import strip_colors
-from .test_util_inventory import inventory_v2, inventory_v2_not_having_version
-from .utils import http_server
+from tests.test_util.intersphinx_data import INVENTORY_V2, INVENTORY_V2_NO_VERSION
+from tests.utils import http_server
def fake_node(domain, type, target, content, **attrs):
@@ -52,46 +53,46 @@ def test_fetch_inventory_redirection(_read_from_url, InventoryFile, app, status,
_read_from_url().readline.return_value = b'# Sphinx inventory version 2'
# same uri and inv, not redirected
- _read_from_url().url = 'http://hostname/' + INVENTORY_FILENAME
- fetch_inventory(app, 'http://hostname/', 'http://hostname/' + INVENTORY_FILENAME)
+ _read_from_url().url = 'https://hostname/' + INVENTORY_FILENAME
+ fetch_inventory(app, 'https://hostname/', 'https://hostname/' + INVENTORY_FILENAME)
assert 'intersphinx inventory has moved' not in status.getvalue()
- assert InventoryFile.load.call_args[0][1] == 'http://hostname/'
+ assert InventoryFile.load.call_args[0][1] == 'https://hostname/'
# same uri and inv, redirected
status.seek(0)
status.truncate(0)
- _read_from_url().url = 'http://hostname/new/' + INVENTORY_FILENAME
+ _read_from_url().url = 'https://hostname/new/' + INVENTORY_FILENAME
- fetch_inventory(app, 'http://hostname/', 'http://hostname/' + INVENTORY_FILENAME)
+ fetch_inventory(app, 'https://hostname/', 'https://hostname/' + INVENTORY_FILENAME)
assert status.getvalue() == ('intersphinx inventory has moved: '
- 'http://hostname/%s -> http://hostname/new/%s\n' %
+ 'https://hostname/%s -> https://hostname/new/%s\n' %
(INVENTORY_FILENAME, INVENTORY_FILENAME))
- assert InventoryFile.load.call_args[0][1] == 'http://hostname/new'
+ assert InventoryFile.load.call_args[0][1] == 'https://hostname/new'
# different uri and inv, not redirected
status.seek(0)
status.truncate(0)
- _read_from_url().url = 'http://hostname/new/' + INVENTORY_FILENAME
+ _read_from_url().url = 'https://hostname/new/' + INVENTORY_FILENAME
- fetch_inventory(app, 'http://hostname/', 'http://hostname/new/' + INVENTORY_FILENAME)
+ fetch_inventory(app, 'https://hostname/', 'https://hostname/new/' + INVENTORY_FILENAME)
assert 'intersphinx inventory has moved' not in status.getvalue()
- assert InventoryFile.load.call_args[0][1] == 'http://hostname/'
+ assert InventoryFile.load.call_args[0][1] == 'https://hostname/'
# different uri and inv, redirected
status.seek(0)
status.truncate(0)
- _read_from_url().url = 'http://hostname/other/' + INVENTORY_FILENAME
+ _read_from_url().url = 'https://hostname/other/' + INVENTORY_FILENAME
- fetch_inventory(app, 'http://hostname/', 'http://hostname/new/' + INVENTORY_FILENAME)
+ fetch_inventory(app, 'https://hostname/', 'https://hostname/new/' + INVENTORY_FILENAME)
assert status.getvalue() == ('intersphinx inventory has moved: '
- 'http://hostname/new/%s -> http://hostname/other/%s\n' %
+ 'https://hostname/new/%s -> https://hostname/other/%s\n' %
(INVENTORY_FILENAME, INVENTORY_FILENAME))
- assert InventoryFile.load.call_args[0][1] == 'http://hostname/'
+ assert InventoryFile.load.call_args[0][1] == 'https://hostname/'
def test_missing_reference(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'https://docs.python.org/': str(inv_file),
'py3k': ('https://docs.python.org/py3k/', str(inv_file)),
@@ -169,7 +170,7 @@ def test_missing_reference(tmp_path, app, status, warning):
def test_missing_reference_pydomain(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'https://docs.python.org/': str(inv_file),
})
@@ -196,20 +197,10 @@ def test_missing_reference_pydomain(tmp_path, app, status, warning):
rn = missing_reference(app, app.env, node, contnode)
assert rn.astext() == 'Foo.bar'
- # term reference (normal)
- node, contnode = fake_node('std', 'term', 'a term', 'a term')
- rn = missing_reference(app, app.env, node, contnode)
- assert rn.astext() == 'a term'
-
- # term reference (case insensitive)
- node, contnode = fake_node('std', 'term', 'A TERM', 'A TERM')
- rn = missing_reference(app, app.env, node, contnode)
- assert rn.astext() == 'A TERM'
-
def test_missing_reference_stddomain(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'cmd': ('https://docs.python.org/', str(inv_file)),
})
@@ -236,11 +227,31 @@ def test_missing_reference_stddomain(tmp_path, app, status, warning):
rn = missing_reference(app, app.env, node, contnode)
assert rn.astext() == '-l'
+ # term reference (normal)
+ node, contnode = fake_node('std', 'term', 'a term', 'a term')
+ rn = missing_reference(app, app.env, node, contnode)
+ assert rn.astext() == 'a term'
+
+ # term reference (case insensitive)
+ node, contnode = fake_node('std', 'term', 'A TERM', 'A TERM')
+ rn = missing_reference(app, app.env, node, contnode)
+ assert rn.astext() == 'A TERM'
+
+ # label reference (normal)
+ node, contnode = fake_node('std', 'ref', 'The-Julia-Domain', 'The-Julia-Domain')
+ rn = missing_reference(app, app.env, node, contnode)
+ assert rn.astext() == 'The Julia Domain'
+
+ # label reference (case insensitive)
+ node, contnode = fake_node('std', 'ref', 'the-julia-domain', 'the-julia-domain')
+ rn = missing_reference(app, app.env, node, contnode)
+ assert rn.astext() == 'The Julia Domain'
+
@pytest.mark.sphinx('html', testroot='ext-intersphinx-cppdomain')
def test_missing_reference_cppdomain(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'https://docs.python.org/': str(inv_file),
})
@@ -266,7 +277,7 @@ def test_missing_reference_cppdomain(tmp_path, app, status, warning):
def test_missing_reference_jsdomain(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'https://docs.python.org/': str(inv_file),
})
@@ -290,7 +301,7 @@ def test_missing_reference_jsdomain(tmp_path, app, status, warning):
def test_missing_reference_disabled_domain(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'inv': ('https://docs.python.org/', str(inv_file)),
})
@@ -352,7 +363,7 @@ def test_missing_reference_disabled_domain(tmp_path, app, status, warning):
def test_inventory_not_having_version(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2_not_having_version)
+ inv_file.write_bytes(INVENTORY_V2_NO_VERSION)
set_config(app, {
'https://docs.python.org/': str(inv_file),
})
@@ -374,14 +385,14 @@ def test_load_mappings_warnings(tmp_path, app, status, warning):
identifiers are not string
"""
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {
'https://docs.python.org/': str(inv_file),
'py3k': ('https://docs.python.org/py3k/', str(inv_file)),
- 'repoze.workflow': ('http://docs.repoze.org/workflow/', str(inv_file)),
- 'django-taggit': ('http://django-taggit.readthedocs.org/en/latest/',
+ 'repoze.workflow': ('https://docs.repoze.org/workflow/', str(inv_file)),
+ 'django-taggit': ('https://django-taggit.readthedocs.org/en/latest/',
str(inv_file)),
- 12345: ('http://www.sphinx-doc.org/en/stable/', str(inv_file)),
+ 12345: ('https://www.sphinx-doc.org/en/stable/', str(inv_file)),
})
# load the inventory and check if it's done correctly
@@ -395,7 +406,7 @@ def test_load_mappings_warnings(tmp_path, app, status, warning):
def test_load_mappings_fallback(tmp_path, app, status, warning):
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
set_config(app, {})
# connect to invalid path
@@ -429,23 +440,25 @@ def test_load_mappings_fallback(tmp_path, app, status, warning):
class TestStripBasicAuth:
"""Tests for sphinx.ext.intersphinx._strip_basic_auth()"""
+
def test_auth_stripped(self):
- """basic auth creds stripped from URL containing creds"""
+ """Basic auth creds stripped from URL containing creds"""
url = 'https://user:12345@domain.com/project/objects.inv'
expected = 'https://domain.com/project/objects.inv'
actual = _strip_basic_auth(url)
assert expected == actual
def test_no_auth(self):
- """url unchanged if param doesn't contain basic auth creds"""
+ """Url unchanged if param doesn't contain basic auth creds"""
url = 'https://domain.com/project/objects.inv'
expected = 'https://domain.com/project/objects.inv'
actual = _strip_basic_auth(url)
assert expected == actual
def test_having_port(self):
- """basic auth creds correctly stripped from URL containing creds even if URL
- contains port"""
+ """Basic auth creds correctly stripped from URL containing creds even if URL
+ contains port
+ """
url = 'https://user:12345@domain.com:8080/project/objects.inv'
expected = 'https://domain.com:8080/project/objects.inv'
actual = _strip_basic_auth(url)
@@ -492,7 +505,7 @@ def test_inspect_main_noargs(capsys):
def test_inspect_main_file(capsys, tmp_path):
"""inspect_main interface, with file argument"""
inv_file = tmp_path / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
inspect_main([str(inv_file)])
@@ -507,15 +520,14 @@ def test_inspect_main_url(capsys):
def do_GET(self):
self.send_response(200, "OK")
self.end_headers()
- self.wfile.write(inventory_v2)
+ self.wfile.write(INVENTORY_V2)
def log_message(*args, **kwargs):
# Silenced.
pass
- url = 'http://localhost:7777/' + INVENTORY_FILENAME
-
- with http_server(InventoryHandler):
+ with http_server(InventoryHandler) as server:
+ url = f'http://localhost:{server.server_port}/{INVENTORY_FILENAME}'
inspect_main([url])
stdout, stderr = capsys.readouterr()
@@ -526,9 +538,9 @@ def test_inspect_main_url(capsys):
@pytest.mark.sphinx('html', testroot='ext-intersphinx-role')
def test_intersphinx_role(app, warning):
inv_file = app.srcdir / 'inventory'
- inv_file.write_bytes(inventory_v2)
+ inv_file.write_bytes(INVENTORY_V2)
app.config.intersphinx_mapping = {
- 'inv': ('http://example.org/', str(inv_file)),
+ 'inv': ('https://example.org/', str(inv_file)),
}
app.config.intersphinx_cache_limit = 0
app.config.nitpicky = True
@@ -539,22 +551,27 @@ def test_intersphinx_role(app, warning):
app.build()
content = (app.outdir / 'index.html').read_text(encoding='utf8')
- wStr = warning.getvalue()
-
- html = '<a class="reference external" href="http://example.org/{}" title="(in foo v2.0)">'
+ warnings = strip_colors(warning.getvalue()).splitlines()
+ index_path = app.srcdir / 'index.rst'
+ assert warnings == [
+ f"{index_path}:21: WARNING: role for external cross-reference not found in domain 'py': 'nope'",
+ f"{index_path}:28: WARNING: role for external cross-reference not found in domains 'cpp', 'std': 'nope'",
+ f"{index_path}:39: WARNING: inventory for external cross-reference not found: 'invNope'",
+ f"{index_path}:44: WARNING: role for external cross-reference not found in domain 'c': 'function' (perhaps you meant one of: 'func', 'identifier', 'type')",
+ f"{index_path}:45: WARNING: role for external cross-reference not found in domains 'cpp', 'std': 'function' (perhaps you meant one of: 'cpp:func', 'cpp:identifier', 'cpp:type')",
+ f'{index_path}:9: WARNING: external py:mod reference target not found: module3',
+ f'{index_path}:14: WARNING: external py:mod reference target not found: module10',
+ f'{index_path}:19: WARNING: external py:meth reference target not found: inv:Foo.bar',
+ ]
+
+ html = '<a class="reference external" href="https://example.org/{}" title="(in foo v2.0)">'
assert html.format('foo.html#module-module1') in content
assert html.format('foo.html#module-module2') in content
- assert "WARNING: external py:mod reference target not found: module3" in wStr
- assert "WARNING: external py:mod reference target not found: module10" in wStr
assert html.format('sub/foo.html#module1.func') in content
- assert "WARNING: external py:meth reference target not found: inv:Foo.bar" in wStr
-
- assert "WARNING: role for external cross-reference not found: py:nope" in wStr
# default domain
assert html.format('index.html#std_uint8_t') in content
- assert "WARNING: role for external cross-reference not found: nope" in wStr
# std roles without domain prefix
assert html.format('docname.html') in content
@@ -562,7 +579,6 @@ def test_intersphinx_role(app, warning):
# explicit inventory
assert html.format('cfunc.html#CFunc') in content
- assert "WARNING: inventory for external cross-reference not found: invNope" in wStr
# explicit title
assert html.format('index.html#foons') in content
diff --git a/tests/test_ext_math.py b/tests/test_extensions/test_ext_math.py
index d5331f8..b673f83 100644
--- a/tests/test_ext_math.py
+++ b/tests/test_extensions/test_ext_math.py
@@ -25,9 +25,9 @@ def has_binary(binary):
@pytest.mark.skipif(not has_binary('dvipng'),
reason='Requires dvipng" binary')
@pytest.mark.sphinx('html', testroot='ext-math-simple',
- confoverrides = {'extensions': ['sphinx.ext.imgmath']})
+ confoverrides={'extensions': ['sphinx.ext.imgmath']})
def test_imgmath_png(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
if "LaTeX command 'latex' cannot be run" in warning.getvalue():
msg = 'LaTeX command "latex" is not available'
raise pytest.skip.Exception(msg)
@@ -39,7 +39,7 @@ def test_imgmath_png(app, status, warning):
shutil.rmtree(app.outdir)
html = (r'<div class="math">\s*<p>\s*<img src="_images/math/\w+.png"'
r'\s*alt="a\^2\+b\^2=c\^2"/>\s*</p>\s*</div>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
@pytest.mark.skipif(not has_binary('dvisvgm'),
@@ -48,7 +48,7 @@ def test_imgmath_png(app, status, warning):
confoverrides={'extensions': ['sphinx.ext.imgmath'],
'imgmath_image_format': 'svg'})
def test_imgmath_svg(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
if "LaTeX command 'latex' cannot be run" in warning.getvalue():
msg = 'LaTeX command "latex" is not available'
raise pytest.skip.Exception(msg)
@@ -60,7 +60,7 @@ def test_imgmath_svg(app, status, warning):
shutil.rmtree(app.outdir)
html = (r'<div class="math">\s*<p>\s*<img src="_images/math/\w+.svg"'
r'\s*alt="a\^2\+b\^2=c\^2"/>\s*</p>\s*</div>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
@pytest.mark.skipif(not has_binary('dvisvgm'),
@@ -70,7 +70,7 @@ def test_imgmath_svg(app, status, warning):
'imgmath_image_format': 'svg',
'imgmath_embed': True})
def test_imgmath_svg_embed(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
if "LaTeX command 'latex' cannot be run" in warning.getvalue():
msg = 'LaTeX command "latex" is not available'
raise pytest.skip.Exception(msg)
@@ -88,7 +88,7 @@ def test_imgmath_svg_embed(app, status, warning):
confoverrides={'extensions': ['sphinx.ext.mathjax'],
'mathjax_options': {'integrity': 'sha384-0123456789'}})
def test_mathjax_options(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
shutil.rmtree(app.outdir)
@@ -100,14 +100,14 @@ def test_mathjax_options(app, status, warning):
@pytest.mark.sphinx('html', testroot='ext-math',
confoverrides={'extensions': ['sphinx.ext.mathjax']})
def test_mathjax_align(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
shutil.rmtree(app.outdir)
html = (r'<div class="math notranslate nohighlight">\s*'
r'\\\[ \\begin\{align\}\\begin\{aligned\}S \&amp;= \\pi r\^2\\\\'
r'V \&amp;= \\frac\{4\}\{3\} \\pi r\^3\\end\{aligned\}\\end\{align\} \\\]</div>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
@pytest.mark.sphinx('html', testroot='ext-math',
@@ -119,7 +119,7 @@ def test_math_number_all_mathjax(app, status, warning):
content = (app.outdir / 'index.html').read_text(encoding='utf8')
html = (r'<div class="math notranslate nohighlight" id="equation-index-0">\s*'
r'<span class="eqno">\(1\)<a .*>\xb6</a></span>\\\[a\^2\+b\^2=c\^2\\\]</div>')
- assert re.search(html, content, re.S)
+ assert re.search(html, content, re.DOTALL)
@pytest.mark.sphinx('latex', testroot='ext-math',
@@ -131,31 +131,31 @@ def test_math_number_all_latex(app, status, warning):
macro = (r'\\begin{equation\*}\s*'
r'\\begin{split}a\^2\+b\^2=c\^2\\end{split}\s*'
r'\\end{equation\*}')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = r'Inline \\\(E=mc\^2\\\)'
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = (r'\\begin{equation\*}\s*'
r'\\begin{split}e\^{i\\pi}\+1=0\\end{split}\s+'
r'\\end{equation\*}')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = (r'\\begin{align\*}\\!\\begin{aligned}\s*'
r'S &= \\pi r\^2\\\\\s*'
r'V &= \\frac\{4}\{3} \\pi r\^3\\\\\s*'
r'\\end{aligned}\\end{align\*}')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
macro = r'Referencing equation \\eqref{equation:math:foo}.'
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
@pytest.mark.sphinx('html', testroot='ext-math',
confoverrides={'extensions': ['sphinx.ext.mathjax'],
'math_eqref_format': 'Eq.{number}'})
def test_math_eqref_format_html(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'math.html').read_text(encoding='utf8')
html = ('<p>Referencing equation <a class="reference internal" '
@@ -168,12 +168,12 @@ def test_math_eqref_format_html(app, status, warning):
confoverrides={'extensions': ['sphinx.ext.mathjax'],
'math_eqref_format': 'Eq.{number}'})
def test_math_eqref_format_latex(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.tex').read_text(encoding='utf8')
macro = (r'Referencing equation Eq.\\ref{equation:math:foo} and '
r'Eq.\\ref{equation:math:foo}.')
- assert re.search(macro, content, re.S)
+ assert re.search(macro, content, re.DOTALL)
@pytest.mark.sphinx('html', testroot='ext-math',
@@ -181,7 +181,7 @@ def test_math_eqref_format_latex(app, status, warning):
'numfig': True,
'math_numfig': True})
def test_mathjax_numfig_html(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'math.html').read_text(encoding='utf8')
html = ('<div class="math notranslate nohighlight" id="equation-math-0">\n'
@@ -199,7 +199,7 @@ def test_mathjax_numfig_html(app, status, warning):
'numfig_secnum_depth': 0,
'math_numfig': True})
def test_imgmath_numfig_html(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'page.html').read_text(encoding='utf8')
html = '<span class="eqno">(3)<a class="headerlink" href="#equation-bar"'
@@ -213,7 +213,7 @@ def test_imgmath_numfig_html(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='ext-math-compat')
def test_math_compat(app, status, warning):
with warnings.catch_warnings(record=True):
- app.builder.build_all()
+ app.build(force_all=True)
doctree = app.env.get_and_resolve_doctree('index', app.builder)
assert_node(doctree,
@@ -239,7 +239,7 @@ def test_math_compat(app, status, warning):
confoverrides={'extensions': ['sphinx.ext.mathjax'],
'mathjax3_config': {'extensions': ['tex2jax.js']}})
def test_mathjax3_config(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert MATHJAX_URL in content
@@ -251,7 +251,7 @@ def test_mathjax3_config(app, status, warning):
confoverrides={'extensions': ['sphinx.ext.mathjax'],
'mathjax2_config': {'extensions': ['tex2jax.js']}})
def test_mathjax2_config(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert ('<script async="async" src="%s">' % MATHJAX_URL in content)
@@ -265,7 +265,7 @@ def test_mathjax2_config(app, status, warning):
'mathjax_options': {'async': 'async'},
'mathjax3_config': {'extensions': ['tex2jax.js']}})
def test_mathjax_options_async_for_mathjax3(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert MATHJAX_URL in content
@@ -277,7 +277,7 @@ def test_mathjax_options_async_for_mathjax3(app, status, warning):
'mathjax_options': {'defer': 'defer'},
'mathjax2_config': {'extensions': ['tex2jax.js']}})
def test_mathjax_options_defer_for_mathjax2(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert ('<script defer="defer" src="%s">' % MATHJAX_URL in content)
@@ -291,7 +291,7 @@ def test_mathjax_options_defer_for_mathjax2(app, status, warning):
},
)
def test_mathjax_path(app):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<script async="async" src="_static/MathJax.js"></script>' in content
@@ -305,7 +305,7 @@ def test_mathjax_path(app):
},
)
def test_mathjax_path_config(app):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<script async="async" src="_static/MathJax.js?config=scipy-mathjax"></script>' in content
@@ -314,7 +314,7 @@ def test_mathjax_path_config(app):
@pytest.mark.sphinx('html', testroot='ext-math',
confoverrides={'extensions': ['sphinx.ext.mathjax']})
def test_mathjax_is_installed_only_if_document_having_math(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert MATHJAX_URL in content
@@ -326,7 +326,7 @@ def test_mathjax_is_installed_only_if_document_having_math(app, status, warning)
@pytest.mark.sphinx('html', testroot='basic',
confoverrides={'extensions': ['sphinx.ext.mathjax']})
def test_mathjax_is_not_installed_if_no_equations(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert 'MathJax.js' not in content
@@ -336,10 +336,54 @@ def test_mathjax_is_not_installed_if_no_equations(app, status, warning):
confoverrides={'extensions': ['sphinx.ext.mathjax']})
def test_mathjax_is_installed_if_no_equations_when_forced(app, status, warning):
app.set_html_assets_policy('always')
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'index.html').read_text(encoding='utf8')
assert MATHJAX_URL in content
content = (app.outdir / 'nomath.html').read_text(encoding='utf8')
assert MATHJAX_URL in content
+
+
+@pytest.mark.sphinx('html', testroot='ext-math-include',
+ confoverrides={'extensions': ['sphinx.ext.mathjax']})
+def test_mathjax_is_installed_if_included_file_has_equations(app):
+ app.build(force_all=True)
+
+ # no real equations at the rst level, but includes "included"
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert MATHJAX_URL in content
+
+ # no real equations at the rst level, but includes "math.rst"
+ content = (app.outdir / 'included.html').read_text(encoding='utf8')
+ assert MATHJAX_URL in content
+
+ content = (app.outdir / 'math.html').read_text(encoding='utf8')
+ assert MATHJAX_URL in content
+
+
+@pytest.mark.sphinx('singlehtml', testroot='ext-math',
+ confoverrides={'extensions': ['sphinx.ext.mathjax']})
+def test_mathjax_is_installed_only_if_document_having_math_singlehtml(app):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert MATHJAX_URL in content
+
+
+@pytest.mark.sphinx('singlehtml', testroot='basic',
+ confoverrides={'extensions': ['sphinx.ext.mathjax']})
+def test_mathjax_is_not_installed_if_no_equations_singlehtml(app):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert 'MathJax.js' not in content
+
+
+@pytest.mark.sphinx('singlehtml', testroot='ext-math-include',
+ confoverrides={'extensions': ['sphinx.ext.mathjax']})
+def test_mathjax_is_installed_if_included_file_has_equations_singlehtml(app):
+ app.build(force_all=True)
+
+ content = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert MATHJAX_URL in content
diff --git a/tests/test_ext_napoleon.py b/tests/test_extensions/test_ext_napoleon.py
index 00b7ac1..466bd49 100644
--- a/tests/test_ext_napoleon.py
+++ b/tests/test_extensions/test_ext_napoleon.py
@@ -55,7 +55,7 @@ class SampleClass:
@simple_decorator
def __decorated_func__(self):
- """doc"""
+ """Doc"""
pass
diff --git a/tests/test_ext_napoleon_docstring.py b/tests/test_extensions/test_ext_napoleon_docstring.py
index 87fad61..d7ef489 100644
--- a/tests/test_ext_napoleon_docstring.py
+++ b/tests/test_extensions/test_ext_napoleon_docstring.py
@@ -1,13 +1,16 @@
"""Tests for :mod:`sphinx.ext.napoleon.docstring` module."""
import re
+import zlib
from collections import namedtuple
from inspect import cleandoc
+from itertools import product
from textwrap import dedent
from unittest import mock
import pytest
+from sphinx.ext.intersphinx import load_mappings, normalize_intersphinx_mapping
from sphinx.ext.napoleon import Config
from sphinx.ext.napoleon.docstring import (
GoogleDocstring,
@@ -17,9 +20,10 @@ from sphinx.ext.napoleon.docstring import (
_token_type,
_tokenize_type_spec,
)
+from sphinx.testing.util import etree_parse
-from .ext_napoleon_pep526_data_google import PEP526GoogleClass
-from .ext_napoleon_pep526_data_numpy import PEP526NumpyClass
+from tests.test_extensions.ext_napoleon_pep526_data_google import PEP526GoogleClass
+from tests.test_extensions.ext_napoleon_pep526_data_numpy import PEP526NumpyClass
class NamedtupleSubclass(namedtuple('NamedtupleSubclass', ('attr1', 'attr2'))):
@@ -36,6 +40,7 @@ class NamedtupleSubclass(namedtuple('NamedtupleSubclass', ('attr1', 'attr2'))):
Adds a newline after the type
"""
+
# To avoid creating a dict, as a namedtuple doesn't have it:
__slots__ = ()
@@ -1156,7 +1161,7 @@ Methods:
description
-""" # noqa: W293
+""" # NoQA: W293
config = Config()
actual = str(GoogleDocstring(docstring, config=config, app=None, what='module',
options={'no-index': True}))
@@ -1186,7 +1191,7 @@ Do as you please
actual = str(GoogleDocstring(cleandoc(PEP526GoogleClass.__doc__), config, app=None, what="class",
obj=PEP526GoogleClass))
expected = """\
-Sample class with PEP 526 annotations and google docstring
+Sample class with PEP 526 annotations and google docstring.
.. attribute:: attr1
@@ -2658,3 +2663,41 @@ def test_napoleon_and_autodoc_typehints_description_documented_params(app, statu
'\n'
' * ****kwargs** (*int*) -- Extra arguments.\n'
)
+
+
+@pytest.mark.sphinx('html', testroot='ext-napoleon-paramtype', freshenv=True)
+def test_napoleon_keyword_and_paramtype(app, tmp_path):
+ inv_file = tmp_path / 'objects.inv'
+ inv_file.write_bytes(b'''\
+# Sphinx inventory version 2
+# Project: Intersphinx Test
+# Version: 42
+# The remainder of this file is compressed using zlib.
+''' + zlib.compress(b'''\
+None py:data 1 none.html -
+list py:class 1 list.html -
+int py:class 1 int.html -
+''')) # NoQA: W291
+ app.config.intersphinx_mapping = {'python': ('127.0.0.1:5555', str(inv_file))}
+ normalize_intersphinx_mapping(app, app.config)
+ load_mappings(app)
+
+ app.build(force_all=True)
+
+ etree = etree_parse(app.outdir / 'index.html')
+
+ for name, typename in product(('keyword', 'kwarg', 'kwparam'), ('paramtype', 'kwtype')):
+ param = f'{name}_{typename}'
+ li_ = list(etree.findall(f'.//li/p/strong[.="{param}"]/../..'))
+ assert len(li_) == 1
+ li = li_[0]
+
+ text = li.text or ''.join(li.itertext())
+ assert text == f'{param} (list[int]) \u2013 some param'
+
+ a_ = list(li.findall('.//a[@class="reference external"]'))
+
+ assert len(a_) == 2
+ for a, uri in zip(a_, ('list.html', 'int.html')):
+ assert a.attrib['href'] == f'127.0.0.1:5555/{uri}'
+ assert a.attrib['title'] == '(in Intersphinx Test v42)'
diff --git a/tests/test_ext_todo.py b/tests/test_extensions/test_ext_todo.py
index 7d39495..1903f9f 100644
--- a/tests/test_ext_todo.py
+++ b/tests/test_extensions/test_ext_todo.py
@@ -14,7 +14,7 @@ def test_todo(app, status, warning):
todos.append(node)
app.connect('todo-defined', on_todo_defined)
- app.builder.build_all()
+ app.build(force_all=True)
# check todolist
content = (app.outdir / 'index.html').read_text(encoding='utf8')
@@ -52,7 +52,7 @@ def test_todo_not_included(app, status, warning):
todos.append(node)
app.connect('todo-defined', on_todo_defined)
- app.builder.build_all()
+ app.build(force_all=True)
# check todolist
content = (app.outdir / 'index.html').read_text(encoding='utf8')
@@ -86,9 +86,8 @@ def test_todo_valid_link(app, status, warning):
that exists in the LaTeX output. The target was previously incorrectly
omitted (GitHub issue #1020).
"""
-
# Ensure the LaTeX output is built.
- app.builder.build_all()
+ app.build(force_all=True)
content = (app.outdir / 'python.tex').read_text(encoding='utf8')
diff --git a/tests/test_ext_viewcode.py b/tests/test_extensions/test_ext_viewcode.py
index a1a0a6d..b2c6fc0 100644
--- a/tests/test_ext_viewcode.py
+++ b/tests/test_extensions/test_ext_viewcode.py
@@ -44,7 +44,7 @@ def check_viewcode_output(app, warning):
confoverrides={"viewcode_line_numbers": True})
def test_viewcode_linenos(app, warning):
shutil.rmtree(app.outdir / '_modules', ignore_errors=True)
- app.builder.build_all()
+ app.build(force_all=True)
result = check_viewcode_output(app, warning)
assert '<span class="linenos"> 1</span>' in result
@@ -54,7 +54,7 @@ def test_viewcode_linenos(app, warning):
confoverrides={"viewcode_line_numbers": False})
def test_viewcode(app, warning):
shutil.rmtree(app.outdir / '_modules', ignore_errors=True)
- app.builder.build_all()
+ app.build(force_all=True)
result = check_viewcode_output(app, warning)
assert 'class="linenos">' not in result
@@ -63,7 +63,7 @@ def test_viewcode(app, warning):
@pytest.mark.sphinx('epub', testroot='ext-viewcode')
def test_viewcode_epub_default(app, status, warning):
shutil.rmtree(app.outdir)
- app.builder.build_all()
+ app.build(force_all=True)
assert not (app.outdir / '_modules/spam/mod1.xhtml').exists()
@@ -74,7 +74,7 @@ def test_viewcode_epub_default(app, status, warning):
@pytest.mark.sphinx('epub', testroot='ext-viewcode',
confoverrides={'viewcode_enable_epub': True})
def test_viewcode_epub_enabled(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert (app.outdir / '_modules/spam/mod1.xhtml').exists()
@@ -84,14 +84,14 @@ def test_viewcode_epub_enabled(app, status, warning):
@pytest.mark.sphinx(testroot='ext-viewcode', tags=['test_linkcode'])
def test_linkcode(app, status, warning):
- app.builder.build(['objects'])
+ app.build(filenames=[app.srcdir / 'objects.rst'])
stuff = (app.outdir / 'objects.html').read_text(encoding='utf8')
- assert 'http://foobar/source/foolib.py' in stuff
- assert 'http://foobar/js/' in stuff
- assert 'http://foobar/c/' in stuff
- assert 'http://foobar/cpp/' in stuff
+ assert 'https://foobar/source/foolib.py' in stuff
+ assert 'https://foobar/js/' in stuff
+ assert 'https://foobar/c/' in stuff
+ assert 'https://foobar/cpp/' in stuff
@pytest.mark.sphinx(testroot='ext-viewcode-find', freshenv=True)
@@ -117,7 +117,7 @@ def test_local_source_files(app, status, warning):
return (source, tags)
app.connect('viewcode-find-source', find_source)
- app.builder.build_all()
+ app.build(force_all=True)
warnings = re.sub(r'\\+', '/', warning.getvalue())
assert re.findall(
diff --git a/tests/test_extension.py b/tests/test_extensions/test_extension.py
index d74743c..d74743c 100644
--- a/tests/test_extension.py
+++ b/tests/test_extensions/test_extension.py
diff --git a/tests/test_intl/__init__.py b/tests/test_intl/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_intl/__init__.py
diff --git a/tests/test_catalogs.py b/tests/test_intl/test_catalogs.py
index b7fd7be..b7fd7be 100644
--- a/tests/test_catalogs.py
+++ b/tests/test_intl/test_catalogs.py
diff --git a/tests/test_intl.py b/tests/test_intl/test_intl.py
index a07ebfb..6b1e9ba 100644
--- a/tests/test_intl.py
+++ b/tests/test_intl/test_intl.py
@@ -8,7 +8,6 @@ import os.path
import re
import shutil
import time
-from pathlib import Path
import pytest
from babel.messages import mofile, pofile
@@ -16,13 +15,16 @@ from babel.messages.catalog import Catalog
from docutils import nodes
from sphinx import locale
-from sphinx.testing.util import assert_node, etree_parse, strip_escseq
+from sphinx.testing.util import assert_node, etree_parse
+from sphinx.util.console import strip_colors
from sphinx.util.nodes import NodeMatcher
+_CATALOG_LOCALE = 'xx'
+
sphinx_intl = pytest.mark.sphinx(
testroot='intl',
confoverrides={
- 'language': 'xx', 'locale_dirs': ['.'],
+ 'language': _CATALOG_LOCALE, 'locale_dirs': ['.'],
'gettext_compact': False,
},
)
@@ -38,22 +40,20 @@ def write_mo(pathname, po):
return mofile.write_mo(f, po)
-@pytest.fixture(autouse=True)
-def _setup_intl(app_params):
- assert isinstance(app_params.kwargs['srcdir'], Path)
- srcdir = app_params.kwargs['srcdir']
- for dirpath, _dirs, files in os.walk(srcdir):
- dirpath = Path(dirpath)
- for f in [f for f in files if f.endswith('.po')]:
- po = str(dirpath / f)
- mo = srcdir / 'xx' / 'LC_MESSAGES' / (
- os.path.relpath(po[:-3], srcdir) + '.mo')
- if not mo.parent.exists():
- mo.parent.mkdir(parents=True, exist_ok=True)
-
- if not mo.exists() or os.stat(mo).st_mtime < os.stat(po).st_mtime:
- # compile .mo file only if needed
- write_mo(mo, read_po(po))
+def _set_mtime_ns(target, value):
+ os.utime(target, ns=(value, value))
+ return os.stat(target).st_mtime_ns
+
+
+def _get_bom_intl_path(app):
+ basedir = app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES'
+ return basedir / 'bom.po', basedir / 'bom.mo'
+
+
+def _get_update_targets(app):
+ app.env.find_files(app.config, app.builder)
+ added, changed, removed = app.env.get_outdated_files(config_changed=False)
+ return added, changed, removed
@pytest.fixture(autouse=True)
@@ -316,7 +316,7 @@ def test_text_glossary_term_inconsistencies(app, warning):
def test_gettext_section(app):
app.build()
# --- section
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'section.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'section.po')
actual = read_po(app.outdir / 'section.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -329,7 +329,7 @@ def test_text_section(app):
app.build()
# --- section
result = (app.outdir / 'section.txt').read_text(encoding='utf8')
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'section.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'section.po')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.string in result
@@ -468,12 +468,12 @@ def test_text_admonitions(app):
def test_gettext_toctree(app):
app.build()
# --- toctree (index.rst)
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'index.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'index.po')
actual = read_po(app.outdir / 'index.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
# --- toctree (toctree.rst)
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'toctree.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'toctree.po')
actual = read_po(app.outdir / 'toctree.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -485,7 +485,7 @@ def test_gettext_toctree(app):
def test_gettext_table(app):
app.build()
# --- toctree
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'table.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'table.po')
actual = read_po(app.outdir / 'table.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -498,7 +498,7 @@ def test_text_table(app):
app.build()
# --- toctree
result = (app.outdir / 'table.txt').read_text(encoding='utf8')
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'table.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'table.po')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.string in result
@@ -515,7 +515,7 @@ def test_text_toctree(app):
assert 'TABLE OF CONTENTS' in result
# --- toctree (toctree.rst)
result = (app.outdir / 'toctree.txt').read_text(encoding='utf8')
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'toctree.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'toctree.po')
for expect_msg in (m for m in expect if m.id):
assert expect_msg.string in result
@@ -526,7 +526,7 @@ def test_text_toctree(app):
def test_gettext_topic(app):
app.build()
# --- topic
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'topic.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'topic.po')
actual = read_po(app.outdir / 'topic.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -539,7 +539,7 @@ def test_text_topic(app):
app.build()
# --- topic
result = (app.outdir / 'topic.txt').read_text(encoding='utf8')
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'topic.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'topic.po')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.string in result
@@ -550,7 +550,7 @@ def test_text_topic(app):
def test_gettext_definition_terms(app):
app.build()
# --- definition terms: regression test for #2198, #2205
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'definition_terms.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'definition_terms.po')
actual = read_po(app.outdir / 'definition_terms.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -562,7 +562,7 @@ def test_gettext_definition_terms(app):
def test_gettext_glossary_terms(app, warning):
app.build()
# --- glossary terms: regression test for #1090
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'glossary_terms.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'glossary_terms.po')
actual = read_po(app.outdir / 'glossary_terms.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -576,7 +576,7 @@ def test_gettext_glossary_terms(app, warning):
def test_gettext_glossary_term_inconsistencies(app):
app.build()
# --- glossary term inconsistencies: regression test for #1090
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'glossary_terms_inconsistency.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'glossary_terms_inconsistency.po')
actual = read_po(app.outdir / 'glossary_terms_inconsistency.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -588,7 +588,7 @@ def test_gettext_glossary_term_inconsistencies(app):
def test_gettext_literalblock(app):
app.build()
# --- gettext builder always ignores ``only`` directive
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'literalblock.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'literalblock.po')
actual = read_po(app.outdir / 'literalblock.pot')
for expect_msg in [m for m in expect if m.id]:
if len(expect_msg.id.splitlines()) == 1:
@@ -604,7 +604,7 @@ def test_gettext_literalblock(app):
def test_gettext_buildr_ignores_only_directive(app):
app.build()
# --- gettext builder always ignores ``only`` directive
- expect = read_po(app.srcdir / 'xx' / 'LC_MESSAGES' / 'only.po')
+ expect = read_po(app.srcdir / _CATALOG_LOCALE / 'LC_MESSAGES' / 'only.po')
actual = read_po(app.outdir / 'only.pot')
for expect_msg in [m for m in expect if m.id]:
assert expect_msg.id in [m.id for m in actual if m.id]
@@ -612,7 +612,7 @@ def test_gettext_buildr_ignores_only_directive(app):
@sphinx_intl
def test_node_translated_attribute(app):
- app.builder.build_specific([app.srcdir / 'translation_progress.txt'])
+ app.build(filenames=[app.srcdir / 'translation_progress.txt'])
doctree = app.env.get_doctree('translation_progress')
@@ -625,7 +625,7 @@ def test_node_translated_attribute(app):
@sphinx_intl
def test_translation_progress_substitution(app):
- app.builder.build_specific([app.srcdir / 'translation_progress.txt'])
+ app.build(filenames=[app.srcdir / 'translation_progress.txt'])
doctree = app.env.get_doctree('translation_progress')
@@ -633,12 +633,12 @@ def test_translation_progress_substitution(app):
@pytest.mark.sphinx(testroot='intl', freshenv=True, confoverrides={
- 'language': 'xx', 'locale_dirs': ['.'],
+ 'language': _CATALOG_LOCALE, 'locale_dirs': ['.'],
'gettext_compact': False,
'translation_progress_classes': True,
})
def test_translation_progress_classes_true(app):
- app.builder.build_specific([app.srcdir / 'translation_progress.txt'])
+ app.build(filenames=[app.srcdir / 'translation_progress.txt'])
doctree = app.env.get_doctree('translation_progress')
@@ -681,50 +681,188 @@ def test_translation_progress_classes_true(app):
assert len(doctree[0]) == 20
+class _MockClock:
+ """Object for mocking :func:`time.time_ns` (if needed).
+
+ Use :meth:`sleep` to make this specific clock sleep for some time.
+ """
+
+ def time(self) -> int:
+ """Nanosecond since 'fake' epoch."""
+ raise NotImplementedError
+
+ def sleep(self, ds: float) -> None:
+ """Sleep *ds* seconds."""
+ raise NotImplementedError
+
+
+class _MockWindowsClock(_MockClock):
+ """Object for mocking :func:`time.time_ns` on Windows platforms.
+
+ The result is in 'nanoseconds' but with a microsecond resolution
+ so that the division by 1_000 does not cause rounding issues.
+ """
+
+ def __init__(self) -> None:
+ self.us: int = 0 # current microsecond 'tick'
+
+ def time(self) -> int:
+ ret = 1_000 * self.us
+ self.us += 1
+ return ret
+
+ def sleep(self, ds: float) -> None:
+ self.us += int(ds * 1e6)
+
+
+class _MockUnixClock(_MockClock):
+ """Object for mocking :func:`time.time_ns` on Unix platforms.
+
+ Since nothing is needed for Unix platforms, this object acts as
+ a proxy so that the API is the same as :class:`_MockWindowsClock`.
+ """
+
+ def time(self) -> int:
+ return time.time_ns()
+
+ def sleep(self, ds: float) -> None:
+ time.sleep(ds)
+
+
+@pytest.fixture()
+def mock_time_and_i18n(
+ monkeypatch: pytest.MonkeyPatch,
+) -> tuple[pytest.MonkeyPatch, _MockClock]:
+ from sphinx.util.i18n import CatalogInfo
+
+ # save the 'original' definition
+ catalog_write_mo = CatalogInfo.write_mo
+
+ def mock_write_mo(self, locale, use_fuzzy=False):
+ catalog_write_mo(self, locale, use_fuzzy)
+ # ensure that the .mo file being written has a correct fake timestamp
+ _set_mtime_ns(self.mo_path, time.time_ns())
+
+ # see: https://github.com/pytest-dev/pytest/issues/363
+ with pytest.MonkeyPatch.context() as mock:
+ if os.name == 'posix':
+ clock = _MockUnixClock()
+ else:
+ # When using pytest.mark.parametrize() to emulate test repetition,
+ # the teardown phase on Windows fails due to an error apparently in
+ # the colorama.ansitowin32 module, so we forcibly disable colors.
+ mock.setenv('NO_COLOR', '1')
+ # apply the patch only for Windows
+ clock = _MockWindowsClock()
+ mock.setattr('time.time_ns', clock.time)
+ # Use clock.sleep() to emulate time.sleep() but do not try
+ # to mock the latter since this might break other libraries.
+ mock.setattr('sphinx.util.i18n.CatalogInfo.write_mo', mock_write_mo)
+ yield mock, clock
+
+
@sphinx_intl
-# use individual shared_result directory to avoid "incompatible doctree" error
-@pytest.mark.sphinx(testroot='builder-gettext-dont-rebuild-mo')
-def test_gettext_dont_rebuild_mo(make_app, app_params):
- # --- don't rebuild by .mo mtime
- def get_update_targets(app_):
- app_.env.find_files(app_.config, app_.builder)
- added, changed, removed = app_.env.get_outdated_files(config_changed=False)
- return added, changed, removed
+# use the same testroot as 'gettext' since the latter contains less PO files
+@pytest.mark.sphinx('dummy', testroot='builder-gettext-dont-rebuild-mo', freshenv=True)
+def test_dummy_should_rebuild_mo(mock_time_and_i18n, make_app, app_params):
+ mock, clock = mock_time_and_i18n
+ assert os.name == 'posix' or clock.time() == 0
args, kwargs = app_params
+ app = make_app(*args, **kwargs)
+ po_path, mo_path = _get_bom_intl_path(app)
+
+ # creation time of the those files (order does not matter)
+ bom_rst = app.srcdir / 'bom.rst'
+ bom_rst_time = time.time_ns()
+
+ index_rst = app.srcdir / 'index.rst'
+ index_rst_time = time.time_ns()
+ po_time = time.time_ns()
+
+ # patch the 'creation time' of the source files
+ assert _set_mtime_ns(po_path, po_time) == po_time
+ assert _set_mtime_ns(bom_rst, bom_rst_time) == bom_rst_time
+ assert _set_mtime_ns(index_rst, index_rst_time) == index_rst_time
+
+ assert not mo_path.exists()
+ # when writing mo files, the counter is updated by calling
+ # patch_write_mo which is called to create .mo files (and
+ # thus the timestamp of the files are not those given by
+ # the OS but our fake ones)
+ app.build()
+ assert mo_path.exists()
+ # Do a real sleep on POSIX, or simulate a sleep on Windows
+ # to ensure that calls to time.time_ns() remain consistent.
+ clock.sleep(0.1 if os.name == 'posix' else 1)
+
+ # check that the source files were not modified
+ assert bom_rst.stat().st_mtime_ns == bom_rst_time
+ assert index_rst.stat().st_mtime_ns == index_rst_time
+ # check that the 'bom' document is discovered after the .mo
+ # file has been written on the disk (i.e., read_doc() is called
+ # after the creation of the .mo files)
+ assert app.env.all_docs['bom'] > mo_path.stat().st_mtime_ns // 1000
- # phase1: build document with non-gettext builder and generate mo file in srcdir
- app0 = make_app('dummy', *args, **kwargs)
- app0.build()
- time.sleep(0.01)
- assert (app0.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo').exists()
# Since it is after the build, the number of documents to be updated is 0
- update_targets = get_update_targets(app0)
- assert update_targets[1] == set(), update_targets
+ update_targets = _get_update_targets(app)
+ assert update_targets[1] == set()
# When rewriting the timestamp of mo file, the number of documents to be
# updated will be changed.
- mtime = (app0.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo').stat().st_mtime
- os.utime(app0.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo', (mtime + 5, mtime + 5))
- update_targets = get_update_targets(app0)
- assert update_targets[1] == {'bom'}, update_targets
+ new_mo_time = time.time_ns()
+ assert _set_mtime_ns(mo_path, new_mo_time) == new_mo_time
+ update_targets = _get_update_targets(app)
+ assert update_targets[1] == {'bom'}
+ mock.undo() # explicit call since it's not a context
- # Because doctree for gettext builder can not be shared with other builders,
- # erase doctreedir before gettext build.
- shutil.rmtree(app0.doctreedir)
+ # remove all sources for the next test
+ shutil.rmtree(app.srcdir, ignore_errors=True)
+ time.sleep(0.1 if os.name == 'posix' else 0.5) # real sleep
- # phase2: build document with gettext builder.
+
+@sphinx_intl
+@pytest.mark.sphinx('gettext', testroot='builder-gettext-dont-rebuild-mo', freshenv=True)
+def test_gettext_dont_rebuild_mo(mock_time_and_i18n, app):
+ mock, clock = mock_time_and_i18n
+ assert os.name == 'posix' or clock.time() == 0
+
+ assert app.srcdir.exists()
+
+ # patch the 'creation time' of the source files
+ bom_rst = app.srcdir / 'bom.rst'
+ bom_rst_time = time.time_ns()
+ assert _set_mtime_ns(bom_rst, bom_rst_time) == bom_rst_time
+
+ index_rst = app.srcdir / 'index.rst'
+ index_rst_time = time.time_ns()
+ assert _set_mtime_ns(index_rst, index_rst_time) == index_rst_time
+
+ # phase 1: create fake MO file in the src directory
+ po_path, mo_path = _get_bom_intl_path(app)
+ write_mo(mo_path, read_po(po_path))
+ po_time = time.time_ns()
+ assert _set_mtime_ns(po_path, po_time) == po_time
+
+ # phase 2: build document with gettext builder.
# The mo file in the srcdir directory is retained.
- app = make_app('gettext', *args, **kwargs)
app.build()
- time.sleep(0.01)
+ # Do a real sleep on POSIX, or simulate a sleep on Windows
+ # to ensure that calls to time.time_ns() remain consistent.
+ clock.sleep(0.5 if os.name == 'posix' else 1)
# Since it is after the build, the number of documents to be updated is 0
- update_targets = get_update_targets(app)
- assert update_targets[1] == set(), update_targets
+ update_targets = _get_update_targets(app)
+ assert update_targets[1] == set()
# Even if the timestamp of the mo file is updated, the number of documents
# to be updated is 0. gettext builder does not rebuild because of mo update.
- os.utime(app0.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo', (mtime + 10, mtime + 10))
- update_targets = get_update_targets(app)
- assert update_targets[1] == set(), update_targets
+ new_mo_time = time.time_ns()
+ assert _set_mtime_ns(mo_path, new_mo_time) == new_mo_time
+ update_targets = _get_update_targets(app)
+ assert update_targets[1] == set()
+ mock.undo() # remove the patch
+
+ # remove all sources for the next test
+ shutil.rmtree(app.srcdir, ignore_errors=True)
+ time.sleep(0.1 if os.name == 'posix' else 0.5) # real sleep
@sphinx_intl
@@ -761,7 +899,7 @@ def test_html_undefined_refs(app):
result = (app.outdir / 'refs_inconsistency.html').read_text(encoding='utf8')
expected_expr = ('<a class="reference external" '
- 'href="http://www.example.com">reference</a>')
+ 'href="https://www.example.com">reference</a>')
assert len(re.findall(expected_expr, result)) == 2
expected_expr = ('<a class="reference internal" '
@@ -829,7 +967,7 @@ def test_html_versionchanges(app):
assert expect1 == matched_content
expect2 = (
- """<p><span class="versionmodified added">New in version 1.0: </span>"""
+ """<p><span class="versionmodified added">Added in version 1.0: </span>"""
"""THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONADDED.</p>\n""")
matched_content = get_content(result, "versionadded")
assert expect2 == matched_content
@@ -840,6 +978,12 @@ def test_html_versionchanges(app):
matched_content = get_content(result, "versionchanged")
assert expect3 == matched_content
+ expect4 = (
+ """<p><span class="versionmodified removed">Removed in version 1.0: </span>"""
+ """THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONREMOVED.</p>\n""")
+ matched_content = get_content(result, "versionremoved")
+ assert expect4 == matched_content
+
@sphinx_intl
@pytest.mark.sphinx('html')
@@ -868,16 +1012,17 @@ def test_html_template(app):
def test_html_rebuild_mo(app):
app.build()
# --- rebuild by .mo mtime
- app.builder.build_update()
- app.env.find_files(app.config, app.builder)
- _, updated, _ = app.env.get_outdated_files(config_changed=False)
- assert len(updated) == 0
+ app.build()
+ _, updated, _ = _get_update_targets(app)
+ assert updated == set()
- mtime = (app.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo').stat().st_mtime
- os.utime(app.srcdir / 'xx' / 'LC_MESSAGES' / 'bom.mo', (mtime + 5, mtime + 5))
- app.env.find_files(app.config, app.builder)
- _, updated, _ = app.env.get_outdated_files(config_changed=False)
- assert len(updated) == 1
+ _, bom_file = _get_bom_intl_path(app)
+ old_mtime = bom_file.stat().st_mtime
+ new_mtime = old_mtime + (dt := 5)
+ os.utime(bom_file, (new_mtime, new_mtime))
+ assert old_mtime + dt == new_mtime, (old_mtime + dt, new_mtime)
+ _, updated, _ = _get_update_targets(app)
+ assert updated == {'bom'}
@sphinx_intl
@@ -985,7 +1130,7 @@ def test_xml_keep_external_links(app):
assert_elem(
para0[0],
['EXTERNAL LINK TO', 'Python', '.'],
- ['http://python.org/index.html'])
+ ['https://python.org/index.html'])
# internal link check
assert_elem(
@@ -997,13 +1142,13 @@ def test_xml_keep_external_links(app):
assert_elem(
para0[2],
['INLINE LINK BY', 'THE SPHINX SITE', '.'],
- ['http://sphinx-doc.org'])
+ ['https://sphinx-doc.org'])
# unnamed link check
assert_elem(
para0[3],
['UNNAMED', 'LINK', '.'],
- ['http://google.com'])
+ ['https://google.com'])
# link target swapped translation
para1 = secs[1].findall('paragraph')
@@ -1015,7 +1160,7 @@ def test_xml_keep_external_links(app):
assert_elem(
para1[1],
['LINK TO', 'THE PYTHON SITE', 'AND', 'THE SPHINX SITE', '.'],
- ['http://python.org', 'http://sphinx-doc.org'])
+ ['https://python.org', 'https://sphinx-doc.org'])
# multiple references in the same line
para2 = secs[2].findall('paragraph')
@@ -1024,9 +1169,9 @@ def test_xml_keep_external_links(app):
['LINK TO', 'EXTERNAL LINKS', ',', 'Python', ',',
'THE SPHINX SITE', ',', 'UNNAMED', 'AND',
'THE PYTHON SITE', '.'],
- ['i18n-with-external-links', 'http://python.org/index.html',
- 'http://sphinx-doc.org', 'http://google.com',
- 'http://python.org'])
+ ['i18n-with-external-links', 'https://python.org/index.html',
+ 'https://sphinx-doc.org', 'https://google.com',
+ 'https://python.org'])
@sphinx_intl
@@ -1195,7 +1340,7 @@ def test_additional_targets_should_not_be_translated(app):
result = (app.outdir / 'raw.html').read_text(encoding='utf8')
# raw block should not be translated
- expected_expr = """<iframe src="http://sphinx-doc.org"></iframe></section>"""
+ expected_expr = """<iframe src="https://sphinx-doc.org"></iframe></section>"""
assert_count(expected_expr, result, 1)
# [figure.txt]
@@ -1216,7 +1361,7 @@ def test_additional_targets_should_not_be_translated(app):
'html',
srcdir='test_additional_targets_should_be_translated',
confoverrides={
- 'language': 'xx', 'locale_dirs': ['.'],
+ 'language': _CATALOG_LOCALE, 'locale_dirs': ['.'],
'gettext_compact': False,
'gettext_additional_targets': [
'index',
@@ -1274,7 +1419,7 @@ def test_additional_targets_should_be_translated(app):
result = (app.outdir / 'raw.html').read_text(encoding='utf8')
# raw block should be translated
- expected_expr = """<iframe src="HTTP://SPHINX-DOC.ORG"></iframe></section>"""
+ expected_expr = """<iframe src="HTTPS://SPHINX-DOC.ORG"></iframe></section>"""
assert_count(expected_expr, result, 1)
# [figure.txt]
@@ -1294,7 +1439,7 @@ def test_additional_targets_should_be_translated(app):
'html',
testroot='intl_substitution_definitions',
confoverrides={
- 'language': 'xx', 'locale_dirs': ['.'],
+ 'language': _CATALOG_LOCALE, 'locale_dirs': ['.'],
'gettext_compact': False,
'gettext_additional_targets': [
'index',
@@ -1306,7 +1451,7 @@ def test_additional_targets_should_be_translated(app):
},
)
def test_additional_targets_should_be_translated_substitution_definitions(app):
- app.builder.build_all()
+ app.build(force_all=True)
# [prolog_epilog_substitution.txt]
@@ -1325,7 +1470,7 @@ def test_additional_targets_should_be_translated_substitution_definitions(app):
@pytest.mark.sphinx('text')
@pytest.mark.test_params(shared_result='test_intl_basic')
def test_text_references(app, warning):
- app.builder.build_specific([app.srcdir / 'refs.txt'])
+ app.build(filenames=[app.srcdir / 'refs.txt'])
warnings = warning.getvalue().replace(os.sep, '/')
warning_expr = 'refs.txt:\\d+: ERROR: Unknown target name:'
@@ -1336,7 +1481,7 @@ def test_text_references(app, warning):
'text',
testroot='intl_substitution_definitions',
confoverrides={
- 'language': 'xx', 'locale_dirs': ['.'],
+ 'language': _CATALOG_LOCALE, 'locale_dirs': ['.'],
'gettext_compact': False,
},
)
@@ -1362,7 +1507,7 @@ SUBSTITUTED IMAGE [image: SUBST_EPILOG_2 TRANSLATED][image] HERE.
@pytest.mark.sphinx(
'dummy', testroot='images',
srcdir='test_intl_images',
- confoverrides={'language': 'xx'},
+ confoverrides={'language': _CATALOG_LOCALE},
)
def test_image_glob_intl(app):
app.build()
@@ -1406,7 +1551,7 @@ def test_image_glob_intl(app):
'dummy', testroot='images',
srcdir='test_intl_images',
confoverrides={
- 'language': 'xx',
+ 'language': _CATALOG_LOCALE,
'figure_language_filename': '{root}{ext}.{language}',
},
)
@@ -1449,7 +1594,7 @@ def test_image_glob_intl_using_figure_language_filename(app):
def getwarning(warnings):
- return strip_escseq(warnings.getvalue().replace(os.sep, '/'))
+ return strip_colors(warnings.getvalue().replace(os.sep, '/'))
@pytest.mark.sphinx('html', testroot='basic',
@@ -1491,13 +1636,13 @@ def test_gettext_disallow_fuzzy_translations(app):
@pytest.mark.sphinx('html', testroot='basic', confoverrides={'language': 'de'})
-def test_customize_system_message(make_app, app_params, sphinx_test_tempdir):
+def test_customize_system_message(make_app, app_params):
try:
# clear translators cache
locale.translators.clear()
# prepare message catalog (.po)
- locale_dir = sphinx_test_tempdir / 'basic' / 'locales' / 'de' / 'LC_MESSAGES'
+ locale_dir = app_params.kwargs['srcdir'] / 'locales' / 'de' / 'LC_MESSAGES'
locale_dir.mkdir(parents=True, exist_ok=True)
with (locale_dir / 'sphinx.po').open('wb') as f:
catalog = Catalog()
diff --git a/tests/test_locale.py b/tests/test_intl/test_locale.py
index 11dd95d..11dd95d 100644
--- a/tests/test_locale.py
+++ b/tests/test_intl/test_locale.py
diff --git a/tests/test_markup/__init__.py b/tests/test_markup/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_markup/__init__.py
diff --git a/tests/test_markup.py b/tests/test_markup/test_markup.py
index 0d877b3..c933481 100644
--- a/tests/test_markup.py
+++ b/tests/test_markup/test_markup.py
@@ -520,7 +520,7 @@ def test_XRefRole(inliner):
@pytest.mark.sphinx('dummy', testroot='prolog')
def test_rst_prolog(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
rst = app.env.get_doctree('restructuredtext')
md = app.env.get_doctree('markdown')
@@ -544,7 +544,7 @@ def test_rst_prolog(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='keep_warnings')
def test_keep_warnings_is_True(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
doctree = app.env.get_doctree('index')
assert_node(doctree[0], nodes.section)
assert len(doctree[0]) == 2
@@ -554,7 +554,7 @@ def test_keep_warnings_is_True(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='keep_warnings',
confoverrides={'keep_warnings': False})
def test_keep_warnings_is_False(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
doctree = app.env.get_doctree('index')
assert_node(doctree[0], nodes.section)
assert len(doctree[0]) == 1
@@ -562,7 +562,7 @@ def test_keep_warnings_is_False(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='refonly_bullet_list')
def test_compact_refonly_bullet_list(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
doctree = app.env.get_doctree('index')
assert_node(doctree[0], nodes.section)
assert len(doctree[0]) == 5
@@ -580,7 +580,7 @@ def test_compact_refonly_bullet_list(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='default_role')
def test_default_role1(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
# default-role: pep
doctree = app.env.get_doctree('index')
@@ -601,7 +601,7 @@ def test_default_role1(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='default_role',
confoverrides={'default_role': 'guilabel'})
def test_default_role2(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
# default-role directive is stronger than configratuion
doctree = app.env.get_doctree('index')
diff --git a/tests/test_metadata.py b/tests/test_markup/test_metadata.py
index 7f31997..7f31997 100644
--- a/tests/test_metadata.py
+++ b/tests/test_markup/test_metadata.py
diff --git a/tests/test_parser.py b/tests/test_markup/test_parser.py
index 86163c6..86163c6 100644
--- a/tests/test_parser.py
+++ b/tests/test_markup/test_parser.py
diff --git a/tests/test_smartquotes.py b/tests/test_markup/test_smartquotes.py
index 1d4e8e1..6c84386 100644
--- a/tests/test_smartquotes.py
+++ b/tests/test_markup/test_smartquotes.py
@@ -1,7 +1,8 @@
"""Test smart quotes."""
import pytest
-from html5lib import HTMLParser
+
+from sphinx.testing.util import etree_parse
@pytest.mark.sphinx(buildername='html', testroot='smartquotes', freshenv=True)
@@ -16,9 +17,7 @@ def test_basic(app, status, warning):
def test_literals(app, status, warning):
app.build()
- with (app.outdir / 'literals.html').open(encoding='utf-8') as html_file:
- etree = HTMLParser(namespaceHTMLElements=False).parse(html_file)
-
+ etree = etree_parse(app.outdir / 'literals.html')
for code_element in etree.iter('code'):
code_text = ''.join(code_element.itertext())
diff --git a/tests/test_pycode/__init__.py b/tests/test_pycode/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_pycode/__init__.py
diff --git a/tests/test_pycode.py b/tests/test_pycode/test_pycode.py
index 5739787..5739787 100644
--- a/tests/test_pycode.py
+++ b/tests/test_pycode/test_pycode.py
diff --git a/tests/test_pycode_ast.py b/tests/test_pycode/test_pycode_ast.py
index 5efd0cb..1ed43e1 100644
--- a/tests/test_pycode_ast.py
+++ b/tests/test_pycode/test_pycode_ast.py
@@ -18,7 +18,7 @@ from sphinx.pycode.ast import unparse as ast_unparse
("a and b and c", "a and b and c"), # BoolOp
("b'bytes'", "b'bytes'"), # Bytes
("object()", "object()"), # Call
- ("1234", "1234"), # Constant
+ ("1234", "1234"), # Constant, Num
("{'key1': 'value1', 'key2': 'value2'}",
"{'key1': 'value1', 'key2': 'value2'}"), # Dict
("a / b", "a / b"), # Div
@@ -34,7 +34,6 @@ from sphinx.pycode.ast import unparse as ast_unparse
("a % b", "a % b"), # Mod
("a * b", "a * b"), # Mult
("sys", "sys"), # Name, NameConstant
- ("1234", "1234"), # Num
("not a", "not a"), # Not
("a or b", "a or b"), # Or
("a**b", "a**b"), # Pow
@@ -52,6 +51,13 @@ from sphinx.pycode.ast import unparse as ast_unparse
"lambda x=0, /, y=1, *args, z, **kwargs: ..."), # posonlyargs
("0x1234", "0x1234"), # Constant
("1_000_000", "1_000_000"), # Constant
+ ("Tuple[:,:]", "Tuple[:, :]"), # Index, Subscript, 2x Slice
+ ("Tuple[1:2]", "Tuple[1:2]"), # Index, Subscript, Slice(no-step)
+ ("Tuple[1:2:3]", "Tuple[1:2:3]"), # Index, Subscript, Slice
+ ("x[:, np.newaxis, :, :]",
+ "x[:, np.newaxis, :, :]"), # Index, Subscript, numpy extended syntax
+ ("y[:, 1:3][np.array([0, 2, 4]), :]",
+ "y[:, 1:3][np.array([0, 2, 4]), :]"), # Index, 2x Subscript, numpy extended syntax
])
def test_unparse(source, expected):
module = ast.parse(source)
diff --git a/tests/test_pycode_parser.py b/tests/test_pycode/test_pycode_parser.py
index fde648d..fde648d 100644
--- a/tests/test_pycode_parser.py
+++ b/tests/test_pycode/test_pycode_parser.py
diff --git a/tests/test_quickstart.py b/tests/test_quickstart.py
index 6a9f5c7..671aed4 100644
--- a/tests/test_quickstart.py
+++ b/tests/test_quickstart.py
@@ -211,7 +211,7 @@ def test_quickstart_and_build(tmp_path):
'html', # buildername
status=StringIO(),
warning=warnfile)
- app.builder.build_all()
+ app.build(force_all=True)
warnings = warnfile.getvalue()
assert not warnings
diff --git a/tests/test_search.py b/tests/test_search.py
index 68a7b01..63443a8 100644
--- a/tests/test_search.py
+++ b/tests/test_search.py
@@ -1,4 +1,5 @@
"""Test the search index builder."""
+from __future__ import annotations
import json
import warnings
@@ -72,7 +73,7 @@ test that non-comments are indexed: fermion
@pytest.mark.sphinx(testroot='ext-viewcode')
def test_objects_are_escaped(app):
- app.builder.build_all()
+ app.build(force_all=True)
index = load_searchindex(app.outdir / 'searchindex.js')
for item in index.get('objects').get(''):
if item[-1] == 'n::Array&lt;T, d&gt;': # n::Array<T,d> is escaped
@@ -83,7 +84,7 @@ def test_objects_are_escaped(app):
@pytest.mark.sphinx(testroot='search')
def test_meta_keys_are_handled_for_language_en(app):
- app.builder.build_all()
+ app.build(force_all=True)
searchindex = load_searchindex(app.outdir / 'searchindex.js')
assert not is_registered_term(searchindex, 'thisnoteith')
assert is_registered_term(searchindex, 'thisonetoo')
@@ -96,7 +97,7 @@ def test_meta_keys_are_handled_for_language_en(app):
@pytest.mark.sphinx(testroot='search', confoverrides={'html_search_language': 'de'}, freshenv=True)
def test_meta_keys_are_handled_for_language_de(app):
- app.builder.build_all()
+ app.build(force_all=True)
searchindex = load_searchindex(app.outdir / 'searchindex.js')
assert not is_registered_term(searchindex, 'thisnoteith')
assert is_registered_term(searchindex, 'thisonetoo')
@@ -109,14 +110,14 @@ def test_meta_keys_are_handled_for_language_de(app):
@pytest.mark.sphinx(testroot='search')
def test_stemmer_does_not_remove_short_words(app):
- app.builder.build_all()
+ app.build(force_all=True)
searchindex = (app.outdir / 'searchindex.js').read_text(encoding='utf8')
assert 'bat' in searchindex
@pytest.mark.sphinx(testroot='search')
def test_stemmer(app):
- app.builder.build_all()
+ app.build(force_all=True)
searchindex = load_searchindex(app.outdir / 'searchindex.js')
print(searchindex)
assert is_registered_term(searchindex, 'findthisstemmedkei')
@@ -125,7 +126,7 @@ def test_stemmer(app):
@pytest.mark.sphinx(testroot='search')
def test_term_in_heading_and_section(app):
- app.builder.build_all()
+ app.build(force_all=True)
searchindex = (app.outdir / 'searchindex.js').read_text(encoding='utf8')
# if search term is in the title of one doc and in the text of another
# both documents should be a hit in the search index as a title,
@@ -136,7 +137,7 @@ def test_term_in_heading_and_section(app):
@pytest.mark.sphinx(testroot='search')
def test_term_in_raw_directive(app):
- app.builder.build_all()
+ app.build(force_all=True)
searchindex = load_searchindex(app.outdir / 'searchindex.js')
assert not is_registered_term(searchindex, 'raw')
assert is_registered_term(searchindex, 'rawword')
@@ -157,8 +158,8 @@ def test_IndexBuilder():
index = IndexBuilder(env, 'en', {}, None)
index.feed('docname1_1', 'filename1_1', 'title1_1', doc)
index.feed('docname1_2', 'filename1_2', 'title1_2', doc)
- index.feed('docname2_1', 'filename2_1', 'title2_1', doc)
index.feed('docname2_2', 'filename2_2', 'title2_2', doc)
+ index.feed('docname2_1', 'filename2_1', 'title2_1', doc)
assert index._titles == {'docname1_1': 'title1_1', 'docname1_2': 'title1_2',
'docname2_1': 'title2_1', 'docname2_2': 'title2_2'}
assert index._filenames == {'docname1_1': 'filename1_1', 'docname1_2': 'filename1_2',
@@ -279,7 +280,7 @@ def test_IndexBuilder_lookup():
srcdir='search_zh',
)
def test_search_index_gen_zh(app):
- app.builder.build_all()
+ app.build(force_all=True)
index = load_searchindex(app.outdir / 'searchindex.js')
assert 'chinesetest ' not in index['terms']
assert 'chinesetest' in index['terms']
@@ -304,3 +305,44 @@ def test_parallel(app):
app.build()
index = load_searchindex(app.outdir / 'searchindex.js')
assert index['docnames'] == ['index', 'nosearch', 'tocitem']
+
+
+@pytest.mark.sphinx(testroot='search')
+def test_search_index_is_deterministic(app):
+ app.build(force_all=True)
+ index = load_searchindex(app.outdir / 'searchindex.js')
+ # Pretty print the index. Only shown by pytest on failure.
+ print(f'searchindex.js contents:\n\n{json.dumps(index, indent=2)}')
+ assert_is_sorted(index, '')
+
+
+def is_title_tuple_type(item: list[int | str]):
+ """
+ In the search index, titles inside .alltitles are stored as a tuple of
+ (document_idx, title_anchor). Tuples are represented as lists in JSON,
+ but their contents must not be sorted. We cannot sort them anyway, as
+ document_idx is an int and title_anchor is a str.
+ """
+ return len(item) == 2 and isinstance(item[0], int) and isinstance(item[1], str)
+
+
+def assert_is_sorted(item, path: str):
+ lists_not_to_sort = {
+ # Each element of .titles is related to the element of .docnames in the same position.
+ # The ordering is deterministic because .docnames is sorted.
+ '.titles',
+ # Each element of .filenames is related to the element of .docnames in the same position.
+ # The ordering is deterministic because .docnames is sorted.
+ '.filenames',
+ }
+
+ err_path = path or '<root>'
+ if isinstance(item, dict):
+ assert list(item.keys()) == sorted(item.keys()), f'{err_path} is not sorted'
+ for key, value in item.items():
+ assert_is_sorted(value, f'{path}.{key}')
+ elif isinstance(item, list):
+ if not is_title_tuple_type(item) and path not in lists_not_to_sort:
+ assert item == sorted(item), f'{err_path} is not sorted'
+ for i, child in enumerate(item):
+ assert_is_sorted(child, f'{path}[{i}]')
diff --git a/tests/test_theming.py b/tests/test_theming.py
deleted file mode 100644
index b4c8511..0000000
--- a/tests/test_theming.py
+++ /dev/null
@@ -1,131 +0,0 @@
-"""Test the Theme class."""
-
-import os
-
-import alabaster
-import pytest
-
-import sphinx.builders.html
-from sphinx.theming import ThemeError
-
-
-@pytest.mark.sphinx(
- testroot='theming',
- confoverrides={'html_theme': 'ziptheme',
- 'html_theme_options.testopt': 'foo'})
-def test_theme_api(app, status, warning):
- cfg = app.config
-
- themes = ['basic', 'default', 'scrolls', 'agogo', 'sphinxdoc', 'haiku',
- 'traditional', 'epub', 'nature', 'pyramid', 'bizstyle', 'classic', 'nonav',
- 'test-theme', 'ziptheme', 'staticfiles', 'parent', 'child']
- try:
- alabaster_version = alabaster.__version_info__
- except AttributeError:
- alabaster_version = alabaster.version.__version_info__
- if alabaster_version >= (0, 7, 11):
- themes.append('alabaster')
-
- # test Theme class API
- assert set(app.registry.html_themes.keys()) == set(themes)
- assert app.registry.html_themes['test-theme'] == str(app.srcdir / 'test_theme' / 'test-theme')
- assert app.registry.html_themes['ziptheme'] == str(app.srcdir / 'ziptheme.zip')
- assert app.registry.html_themes['staticfiles'] == str(app.srcdir / 'test_theme' / 'staticfiles')
-
- # test Theme instance API
- theme = app.builder.theme
- assert theme.name == 'ziptheme'
- themedir = theme.themedir
- assert theme.base.name == 'basic'
- assert len(theme.get_theme_dirs()) == 2
-
- # direct setting
- assert theme.get_config('theme', 'stylesheet') == 'custom.css'
- # inherited setting
- assert theme.get_config('options', 'nosidebar') == 'false'
- # nonexisting setting
- assert theme.get_config('theme', 'foobar', 'def') == 'def'
- with pytest.raises(ThemeError):
- theme.get_config('theme', 'foobar')
-
- # options API
-
- options = theme.get_options({'nonexisting': 'foo'})
- assert 'nonexisting' not in options
-
- options = theme.get_options(cfg.html_theme_options)
- assert options['testopt'] == 'foo'
- assert options['nosidebar'] == 'false'
-
- # cleanup temp directories
- theme.cleanup()
- assert not os.path.exists(themedir)
-
-
-@pytest.mark.sphinx(testroot='double-inheriting-theme')
-def test_double_inheriting_theme(app, status, warning):
- assert app.builder.theme.name == 'base_theme2'
- app.build() # => not raises TemplateNotFound
-
-
-@pytest.mark.sphinx(testroot='theming',
- confoverrides={'html_theme': 'child'})
-def test_nested_zipped_theme(app, status, warning):
- assert app.builder.theme.name == 'child'
- app.build() # => not raises TemplateNotFound
-
-
-@pytest.mark.sphinx(testroot='theming',
- confoverrides={'html_theme': 'staticfiles'})
-def test_staticfiles(app, status, warning):
- app.build()
- assert (app.outdir / '_static' / 'staticimg.png').exists()
- assert (app.outdir / '_static' / 'statictmpl.html').exists()
- assert (app.outdir / '_static' / 'statictmpl.html').read_text(encoding='utf8') == (
- '<!-- testing static templates -->\n'
- '<html><project>Python</project></html>'
- )
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert '<meta name="testopt" content="optdefault" />' in result
-
-
-@pytest.mark.sphinx(testroot='theming',
- confoverrides={'html_theme': 'test-theme'})
-def test_dark_style(app, monkeypatch):
- monkeypatch.setattr(sphinx.builders.html, '_file_checksum', lambda o, f: '')
-
- style = app.builder.dark_highlighter.formatter_args.get('style')
- assert style.__name__ == 'MonokaiStyle'
-
- app.build()
- assert (app.outdir / '_static' / 'pygments_dark.css').exists()
-
- css_file, properties = app.registry.css_files[0]
- assert css_file == 'pygments_dark.css'
- assert "media" in properties
- assert properties["media"] == '(prefers-color-scheme: dark)'
-
- assert sorted(f.filename for f in app.builder._css_files) == [
- '_static/classic.css',
- '_static/pygments.css',
- '_static/pygments_dark.css',
- ]
-
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert '<link rel="stylesheet" type="text/css" href="_static/pygments.css" />' in result
- assert ('<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" '
- 'rel="stylesheet" type="text/css" '
- 'href="_static/pygments_dark.css" />') in result
-
-
-@pytest.mark.sphinx(testroot='theming')
-def test_theme_sidebars(app, status, warning):
- app.build()
-
- # test-theme specifies globaltoc and searchbox as default sidebars
- result = (app.outdir / 'index.html').read_text(encoding='utf8')
- assert '<h3><a href="#">Table of Contents</a></h3>' in result
- assert '<h3>Related Topics</h3>' not in result
- assert '<h3>This Page</h3>' not in result
- assert '<h3 id="searchlabel">Quick search</h3>' in result
diff --git a/tests/test_theming/__init__.py b/tests/test_theming/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_theming/__init__.py
diff --git a/tests/test_theming/test_html_theme.py b/tests/test_theming/test_html_theme.py
new file mode 100644
index 0000000..e9a183f
--- /dev/null
+++ b/tests/test_theming/test_html_theme.py
@@ -0,0 +1,35 @@
+import pytest
+
+
+@pytest.mark.sphinx('html', testroot='theming')
+def test_theme_options(app, status, warning):
+ app.build()
+
+ result = (app.outdir / '_static' / 'documentation_options.js').read_text(encoding='utf8')
+ assert 'NAVIGATION_WITH_KEYS: false' in result
+ assert 'ENABLE_SEARCH_SHORTCUTS: true' in result
+
+
+@pytest.mark.sphinx(
+ 'html',
+ testroot='theming',
+ confoverrides={
+ 'html_theme_options.navigation_with_keys': True,
+ 'html_theme_options.enable_search_shortcuts': False,
+ },
+)
+def test_theme_options_with_override(app, status, warning):
+ app.build()
+
+ result = (app.outdir / '_static' / 'documentation_options.js').read_text(encoding='utf8')
+ assert 'NAVIGATION_WITH_KEYS: true' in result
+ assert 'ENABLE_SEARCH_SHORTCUTS: false' in result
+
+
+@pytest.mark.sphinx('html', testroot='build-html-theme-having-multiple-stylesheets')
+def test_theme_having_multiple_stylesheets(app):
+ app.build()
+ content = (app.outdir / 'index.html').read_text(encoding='utf-8')
+
+ assert '<link rel="stylesheet" type="text/css" href="_static/mytheme.css" />' in content
+ assert '<link rel="stylesheet" type="text/css" href="_static/extra.css" />' in content
diff --git a/tests/test_templating.py b/tests/test_theming/test_templating.py
index a41af93..bc02e97 100644
--- a/tests/test_templating.py
+++ b/tests/test_theming/test_templating.py
@@ -10,7 +10,7 @@ def test_layout_overloading(make_app, app_params):
args, kwargs = app_params
app = make_app(*args, **kwargs)
setup_documenters(app)
- app.builder.build_update()
+ app.build()
result = (app.outdir / 'index.html').read_text(encoding='utf8')
assert '<!-- layout overloading -->' in result
@@ -21,21 +21,28 @@ def test_autosummary_class_template_overloading(make_app, app_params):
args, kwargs = app_params
app = make_app(*args, **kwargs)
setup_documenters(app)
- app.builder.build_update()
+ app.build()
- result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').read_text(encoding='utf8')
+ result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').read_text(
+ encoding='utf8'
+ )
assert 'autosummary/class.rst method block overloading' in result
assert 'foobar' not in result
-@pytest.mark.sphinx('html', testroot='templating',
- confoverrides={'autosummary_context': {'sentence': 'foobar'}})
+@pytest.mark.sphinx(
+ 'html',
+ testroot='templating',
+ confoverrides={'autosummary_context': {'sentence': 'foobar'}},
+)
def test_autosummary_context(make_app, app_params):
args, kwargs = app_params
app = make_app(*args, **kwargs)
setup_documenters(app)
- app.builder.build_update()
+ app.build()
- result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').read_text(encoding='utf8')
+ result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').read_text(
+ encoding='utf8'
+ )
assert 'autosummary/class.rst method block overloading' in result
assert 'foobar' in result
diff --git a/tests/test_theming/test_theming.py b/tests/test_theming/test_theming.py
new file mode 100644
index 0000000..867f8a0
--- /dev/null
+++ b/tests/test_theming/test_theming.py
@@ -0,0 +1,227 @@
+"""Test the Theme class."""
+
+import os
+import shutil
+from pathlib import Path
+from xml.etree.ElementTree import ParseError
+
+import pytest
+from defusedxml.ElementTree import parse as xml_parse
+
+import sphinx.builders.html
+from sphinx.errors import ThemeError
+from sphinx.theming import (
+ _ConfigFile,
+ _convert_theme_conf,
+ _convert_theme_toml,
+ _load_theme,
+ _load_theme_conf,
+ _load_theme_toml,
+)
+
+HERE = Path(__file__).resolve().parent
+
+
+@pytest.mark.sphinx(
+ testroot='theming',
+ confoverrides={'html_theme': 'ziptheme', 'html_theme_options.testopt': 'foo'},
+)
+def test_theme_api(app, status, warning):
+ themes = [
+ 'basic',
+ 'default',
+ 'scrolls',
+ 'agogo',
+ 'sphinxdoc',
+ 'haiku',
+ 'traditional',
+ 'epub',
+ 'nature',
+ 'pyramid',
+ 'bizstyle',
+ 'classic',
+ 'nonav',
+ 'test-theme',
+ 'ziptheme',
+ 'staticfiles',
+ 'parent',
+ 'child',
+ 'alabaster',
+ ]
+
+ # test Theme class API
+ assert set(app.registry.html_themes.keys()) == set(themes)
+ assert app.registry.html_themes['test-theme'] == str(
+ app.srcdir / 'test_theme' / 'test-theme'
+ )
+ assert app.registry.html_themes['ziptheme'] == str(app.srcdir / 'ziptheme.zip')
+ assert app.registry.html_themes['staticfiles'] == str(
+ app.srcdir / 'test_theme' / 'staticfiles'
+ )
+
+ # test Theme instance API
+ theme = app.builder.theme
+ assert theme.name == 'ziptheme'
+ assert len(theme.get_theme_dirs()) == 2
+
+ # direct setting
+ assert theme.get_config('theme', 'stylesheet') == 'custom.css'
+ # inherited setting
+ assert theme.get_config('options', 'nosidebar') == 'false'
+ # nonexisting setting
+ assert theme.get_config('theme', 'foobar', 'def') == 'def'
+ with pytest.raises(ThemeError):
+ theme.get_config('theme', 'foobar')
+
+ # options API
+
+ options = theme.get_options({'nonexisting': 'foo'})
+ assert 'nonexisting' not in options
+
+ options = theme.get_options(app.config.html_theme_options)
+ assert options['testopt'] == 'foo'
+ assert options['nosidebar'] == 'false'
+
+ # cleanup temp directories
+ theme._cleanup()
+ assert not any(map(os.path.exists, theme._tmp_dirs))
+
+
+def test_nonexistent_theme_settings(tmp_path):
+ # Check that error occurs with a non-existent theme.toml or theme.conf
+ # (https://github.com/sphinx-doc/sphinx/issues/11668)
+ with pytest.raises(ThemeError):
+ _load_theme('', str(tmp_path))
+
+
+@pytest.mark.sphinx(testroot='double-inheriting-theme')
+def test_double_inheriting_theme(app, status, warning):
+ assert app.builder.theme.name == 'base_theme2'
+ app.build() # => not raises TemplateNotFound
+
+
+@pytest.mark.sphinx(testroot='theming', confoverrides={'html_theme': 'child'})
+def test_nested_zipped_theme(app, status, warning):
+ assert app.builder.theme.name == 'child'
+ app.build() # => not raises TemplateNotFound
+
+
+@pytest.mark.sphinx(testroot='theming', confoverrides={'html_theme': 'staticfiles'})
+def test_staticfiles(app, status, warning):
+ app.build()
+ assert (app.outdir / '_static' / 'staticimg.png').exists()
+ assert (app.outdir / '_static' / 'statictmpl.html').exists()
+ assert (app.outdir / '_static' / 'statictmpl.html').read_text(encoding='utf8') == (
+ '<!-- testing static templates -->\n<html><project>Python</project></html>'
+ )
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert '<meta name="testopt" content="optdefault" />' in result
+
+
+@pytest.mark.sphinx(testroot='theming', confoverrides={'html_theme': 'test-theme'})
+def test_dark_style(app, monkeypatch):
+ monkeypatch.setattr(sphinx.builders.html, '_file_checksum', lambda o, f: '')
+
+ style = app.builder.dark_highlighter.formatter_args.get('style')
+ assert style.__name__ == 'MonokaiStyle'
+
+ app.build()
+ assert (app.outdir / '_static' / 'pygments_dark.css').exists()
+
+ css_file, properties = app.registry.css_files[0]
+ assert css_file == 'pygments_dark.css'
+ assert 'media' in properties
+ assert properties['media'] == '(prefers-color-scheme: dark)'
+
+ assert sorted(f.filename for f in app.builder._css_files) == [
+ '_static/classic.css',
+ '_static/pygments.css',
+ '_static/pygments_dark.css',
+ ]
+
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert '<link rel="stylesheet" type="text/css" href="_static/pygments.css" />' in result
+ assert (
+ '<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" '
+ 'rel="stylesheet" type="text/css" '
+ 'href="_static/pygments_dark.css" />'
+ ) in result
+
+
+@pytest.mark.sphinx(testroot='theming')
+def test_theme_sidebars(app, status, warning):
+ app.build()
+
+ # test-theme specifies globaltoc and searchbox as default sidebars
+ result = (app.outdir / 'index.html').read_text(encoding='utf8')
+ assert '<h3><a href="#">Table of Contents</a></h3>' in result
+ assert '<h3>Related Topics</h3>' not in result
+ assert '<h3>This Page</h3>' not in result
+ assert '<h3 id="searchlabel">Quick search</h3>' in result
+
+
+@pytest.mark.parametrize(
+ 'theme_name',
+ [
+ 'alabaster',
+ 'agogo',
+ 'basic',
+ 'bizstyle',
+ 'classic',
+ 'default',
+ 'epub',
+ 'haiku',
+ 'nature',
+ 'nonav',
+ 'pyramid',
+ 'scrolls',
+ 'sphinxdoc',
+ 'traditional',
+ ],
+)
+def test_theme_builds(make_app, rootdir, sphinx_test_tempdir, theme_name):
+ """Test all the themes included with Sphinx build a simple project and produce valid XML."""
+ testroot_path = rootdir / 'test-basic'
+ srcdir = sphinx_test_tempdir / f'test-theme-{theme_name}'
+ shutil.copytree(testroot_path, srcdir)
+
+ app = make_app(srcdir=srcdir, confoverrides={'html_theme': theme_name})
+ app.build()
+ assert not app.warning.getvalue().strip()
+ assert app.outdir.joinpath('index.html').exists()
+
+ # check that the generated HTML files are well-formed (as strict XML)
+ for html_file in app.outdir.rglob('*.html'):
+ try:
+ xml_parse(html_file)
+ except ParseError as exc:
+ pytest.fail(f'Failed to parse {html_file.relative_to(app.outdir)}: {exc}')
+
+
+def test_config_file_toml():
+ config_path = HERE / 'theme.toml'
+ cfg = _load_theme_toml(str(config_path))
+ config = _convert_theme_toml(cfg)
+
+ assert config == _ConfigFile(
+ stylesheets=('spam.css', 'ham.css'),
+ sidebar_templates=None,
+ pygments_style_default='spam',
+ pygments_style_dark=None,
+ options={'lobster': 'thermidor'},
+ )
+
+
+def test_config_file_conf():
+ config_path = HERE / 'theme.conf'
+ cfg = _load_theme_conf(str(config_path))
+ config = _convert_theme_conf(cfg)
+
+ assert config == _ConfigFile(
+ stylesheets=('spam.css', 'ham.css'),
+ sidebar_templates=None,
+ pygments_style_default='spam',
+ pygments_style_dark=None,
+ options={'lobster': 'thermidor'},
+ )
diff --git a/tests/test_theming/theme.conf b/tests/test_theming/theme.conf
new file mode 100644
index 0000000..b53fcb7
--- /dev/null
+++ b/tests/test_theming/theme.conf
@@ -0,0 +1,7 @@
+[theme]
+inherit = none
+stylesheet = spam.css, ham.css
+pygments_style = spam
+
+[options]
+lobster = thermidor
diff --git a/tests/test_theming/theme.toml b/tests/test_theming/theme.toml
new file mode 100644
index 0000000..96a5668
--- /dev/null
+++ b/tests/test_theming/theme.toml
@@ -0,0 +1,10 @@
+[theme]
+inherit = "none"
+stylesheets = [
+ "spam.css",
+ "ham.css",
+]
+pygments_style = { default = "spam" }
+
+[options]
+lobster = "thermidor"
diff --git a/tests/test_toctree.py b/tests/test_toctree.py
index 39d0916..e59085d 100644
--- a/tests/test_toctree.py
+++ b/tests/test_toctree.py
@@ -6,7 +6,7 @@ import pytest
@pytest.mark.sphinx(testroot='toctree-glob')
def test_relations(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
assert app.builder.relations['index'] == [None, None, 'foo']
assert app.builder.relations['foo'] == ['index', 'index', 'bar/index']
assert app.builder.relations['bar/index'] == ['index', 'foo', 'bar/bar_1']
@@ -23,7 +23,7 @@ def test_relations(app, status, warning):
@pytest.mark.sphinx('singlehtml', testroot='toctree-empty')
def test_singlehtml_toctree(app, status, warning):
- app.builder.build_all()
+ app.build(force_all=True)
try:
app.builder._get_local_toctree('index')
except AttributeError:
@@ -36,4 +36,4 @@ def test_numbered_toctree(app, status, warning):
index = (app.srcdir / 'index.rst').read_text(encoding='utf8')
index = re.sub(':numbered:.*', ':numbered: 1', index)
(app.srcdir / 'index.rst').write_text(index, encoding='utf8')
- app.builder.build_all()
+ app.build(force_all=True)
diff --git a/tests/test_transforms/__init__.py b/tests/test_transforms/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_transforms/__init__.py
diff --git a/tests/test_transforms_move_module_targets.py b/tests/test_transforms/test_transforms_move_module_targets.py
index e0e9f1d..e0e9f1d 100644
--- a/tests/test_transforms_move_module_targets.py
+++ b/tests/test_transforms/test_transforms_move_module_targets.py
diff --git a/tests/test_transforms_post_transforms.py b/tests/test_transforms/test_transforms_post_transforms.py
index b9b6126..c4e699b 100644
--- a/tests/test_transforms_post_transforms.py
+++ b/tests/test_transforms/test_transforms_post_transforms.py
@@ -79,6 +79,7 @@ def test_keyboard_hyphen_spaces(app):
class TestSigElementFallbackTransform:
"""Integration test for :class:`sphinx.transforms.post_transforms.SigElementFallbackTransform`."""
+
# safe copy of the "built-in" desc_sig_* nodes (during the test, instances of such nodes
# will be created sequentially, so we fix a possible order at the beginning using a tuple)
_builtin_sig_elements: tuple[type[addnodes.desc_sig_element], ...] = tuple(SIG_ELEMENTS)
@@ -264,5 +265,5 @@ class TestSigElementFallbackTransform:
# extract messages
messages = caplog.record_tuples
stdout = [message for _, lvl, message in messages if lvl == logging.INFO]
- stderr = [message for _, lvl, message in messages if lvl == logging.WARN]
+ stderr = [message for _, lvl, message in messages if lvl == logging.WARNING]
return document, stdout, stderr
diff --git a/tests/test_transforms_post_transforms_code.py b/tests/test_transforms/test_transforms_post_transforms_code.py
index 4423d5b..4423d5b 100644
--- a/tests/test_transforms_post_transforms_code.py
+++ b/tests/test_transforms/test_transforms_post_transforms_code.py
diff --git a/tests/test_transforms_reorder_nodes.py b/tests/test_transforms/test_transforms_reorder_nodes.py
index 7ffdae6..7ffdae6 100644
--- a/tests/test_transforms_reorder_nodes.py
+++ b/tests/test_transforms/test_transforms_reorder_nodes.py
diff --git a/tests/test_util/__init__.py b/tests/test_util/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_util/__init__.py
diff --git a/tests/test_util/intersphinx_data.py b/tests/test_util/intersphinx_data.py
new file mode 100644
index 0000000..042ee76
--- /dev/null
+++ b/tests/test_util/intersphinx_data.py
@@ -0,0 +1,52 @@
+from __future__ import annotations
+
+import zlib
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from typing import Final
+
+INVENTORY_V1: Final[bytes] = b'''\
+# Sphinx inventory version 1
+# Project: foo
+# Version: 1.0
+module mod foo.html
+module.cls class foo.html
+'''
+
+INVENTORY_V2: Final[bytes] = b'''\
+# Sphinx inventory version 2
+# Project: foo
+# Version: 2.0
+# The remainder of this file is compressed with zlib.
+''' + zlib.compress(b'''\
+module1 py:module 0 foo.html#module-module1 Long Module desc
+module2 py:module 0 foo.html#module-$ -
+module1.func py:function 1 sub/foo.html#$ -
+module1.Foo.bar py:method 1 index.html#foo.Bar.baz -
+CFunc c:function 2 cfunc.html#CFunc -
+std cpp:type 1 index.html#std -
+std::uint8_t cpp:type 1 index.html#std_uint8_t -
+foo::Bar cpp:class 1 index.html#cpp_foo_bar -
+foo::Bar::baz cpp:function 1 index.html#cpp_foo_bar_baz -
+foons cpp:type 1 index.html#foons -
+foons::bartype cpp:type 1 index.html#foons_bartype -
+a term std:term -1 glossary.html#term-a-term -
+ls.-l std:cmdoption 1 index.html#cmdoption-ls-l -
+docname std:doc -1 docname.html -
+foo js:module 1 index.html#foo -
+foo.bar js:class 1 index.html#foo.bar -
+foo.bar.baz js:method 1 index.html#foo.bar.baz -
+foo.bar.qux js:data 1 index.html#foo.bar.qux -
+a term including:colon std:term -1 glossary.html#term-a-term-including-colon -
+The-Julia-Domain std:label -1 write_inventory/#$ The Julia Domain
+''')
+
+INVENTORY_V2_NO_VERSION: Final[bytes] = b'''\
+# Sphinx inventory version 2
+# Project: foo
+# Version:
+# The remainder of this file is compressed with zlib.
+''' + zlib.compress(b'''\
+module1 py:module 0 foo.html#module-module1 Long Module desc
+''')
diff --git a/tests/test_util.py b/tests/test_util/test_util.py
index 4389894..4389894 100644
--- a/tests/test_util.py
+++ b/tests/test_util/test_util.py
diff --git a/tests/test_util/test_util_console.py b/tests/test_util/test_util_console.py
new file mode 100644
index 0000000..b617a33
--- /dev/null
+++ b/tests/test_util/test_util_console.py
@@ -0,0 +1,90 @@
+from __future__ import annotations
+
+import itertools
+import operator
+from typing import TYPE_CHECKING
+
+import pytest
+
+from sphinx.util.console import blue, reset, strip_colors, strip_escape_sequences
+
+if TYPE_CHECKING:
+ from collections.abc import Callable, Sequence
+ from typing import Final, TypeVar
+
+ _T = TypeVar('_T')
+
+CURSOR_UP: Final[str] = '\x1b[2A' # ignored ANSI code
+ERASE_LINE: Final[str] = '\x1b[2K' # supported ANSI code
+TEXT: Final[str] = '\x07 Hello world!'
+
+
+@pytest.mark.parametrize(
+ ('strip_function', 'ansi_base_blocks', 'text_base_blocks'),
+ [
+ (
+ strip_colors,
+ # double ERASE_LINE so that the tested strings may have 2 of them
+ [TEXT, blue(TEXT), reset(TEXT), ERASE_LINE, ERASE_LINE, CURSOR_UP],
+ # :func:`strip_colors` removes color codes but keeps ERASE_LINE and CURSOR_UP
+ [TEXT, TEXT, TEXT, ERASE_LINE, ERASE_LINE, CURSOR_UP],
+ ),
+ (
+ strip_escape_sequences,
+ # double ERASE_LINE so that the tested strings may have 2 of them
+ [TEXT, blue(TEXT), reset(TEXT), ERASE_LINE, ERASE_LINE, CURSOR_UP],
+ # :func:`strip_escape_sequences` strips ANSI codes known by Sphinx
+ [TEXT, TEXT, TEXT, '', '', CURSOR_UP],
+ ),
+ ],
+ ids=[strip_colors.__name__, strip_escape_sequences.__name__],
+)
+def test_strip_ansi(
+ strip_function: Callable[[str], str],
+ ansi_base_blocks: Sequence[str],
+ text_base_blocks: Sequence[str],
+) -> None:
+ assert callable(strip_function)
+ assert len(text_base_blocks) == len(ansi_base_blocks)
+ N = len(ansi_base_blocks)
+
+ def next_ansi_blocks(choices: Sequence[str], n: int) -> Sequence[str]:
+ # Get a list of *n* words from a cyclic sequence of *choices*.
+ #
+ # For instance ``next_ansi_blocks(['a', 'b'], 3) == ['a', 'b', 'a']``.
+ stream = itertools.cycle(choices)
+ return list(map(operator.itemgetter(0), zip(stream, range(n))))
+
+ # generate all permutations of length N
+ for sigma in itertools.permutations(range(N), N):
+ # apply the permutation on the blocks with ANSI codes
+ ansi_blocks = list(map(ansi_base_blocks.__getitem__, sigma))
+ # apply the permutation on the blocks with stripped codes
+ text_blocks = list(map(text_base_blocks.__getitem__, sigma))
+
+ for glue, n in itertools.product(['.', '\n', '\r\n'], range(4 * N)):
+ ansi_strings = next_ansi_blocks(ansi_blocks, n)
+ text_strings = next_ansi_blocks(text_blocks, n)
+ assert len(ansi_strings) == len(text_strings) == n
+
+ ansi_string = glue.join(ansi_strings)
+ text_string = glue.join(text_strings)
+ assert strip_function(ansi_string) == text_string
+
+
+def test_strip_ansi_short_forms():
+ # In Sphinx, we always "normalize" the color codes so that they
+ # match "\x1b\[(\d\d;){0,2}(\d\d)m" but it might happen that
+ # some messages use '\x1b[0m' instead of ``reset(s)``, so we
+ # test whether this alternative form is supported or not.
+
+ for strip_function in [strip_colors, strip_escape_sequences]:
+ # \x1b[m and \x1b[0m are equivalent to \x1b[00m
+ assert strip_function('\x1b[m') == ''
+ assert strip_function('\x1b[0m') == ''
+
+ # \x1b[1m is equivalent to \x1b[01m
+ assert strip_function('\x1b[1mbold\x1b[0m') == 'bold'
+
+ # \x1b[K is equivalent to \x1b[0K
+ assert strip_escape_sequences('\x1b[K') == ''
diff --git a/tests/test_util_display.py b/tests/test_util/test_util_display.py
index 9ecdd6a..a18fa1e 100644
--- a/tests/test_util_display.py
+++ b/tests/test_util/test_util_display.py
@@ -2,8 +2,8 @@
import pytest
-from sphinx.testing.util import strip_escseq
from sphinx.util import logging
+from sphinx.util.console import strip_colors
from sphinx.util.display import (
SkipProgressMessage,
display_chunk,
@@ -28,13 +28,14 @@ def test_status_iterator_length_0(app, status, warning):
status.seek(0)
status.truncate(0)
yields = list(status_iterator(['hello', 'sphinx', 'world'], 'testing ... '))
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing ... hello sphinx world \n' in output
assert yields == ['hello', 'sphinx', 'world']
@pytest.mark.sphinx('dummy')
-def test_status_iterator_verbosity_0(app, status, warning):
+def test_status_iterator_verbosity_0(app, status, warning, monkeypatch):
+ monkeypatch.setenv("FORCE_COLOR", "1")
logging.setup(app, status, warning)
# test for status_iterator (verbosity=0)
@@ -42,7 +43,7 @@ def test_status_iterator_verbosity_0(app, status, warning):
status.truncate(0)
yields = list(status_iterator(['hello', 'sphinx', 'world'], 'testing ... ',
length=3, verbosity=0))
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing ... [ 33%] hello\r' in output
assert 'testing ... [ 67%] sphinx\r' in output
assert 'testing ... [100%] world\r\n' in output
@@ -50,7 +51,8 @@ def test_status_iterator_verbosity_0(app, status, warning):
@pytest.mark.sphinx('dummy')
-def test_status_iterator_verbosity_1(app, status, warning):
+def test_status_iterator_verbosity_1(app, status, warning, monkeypatch):
+ monkeypatch.setenv("FORCE_COLOR", "1")
logging.setup(app, status, warning)
# test for status_iterator (verbosity=1)
@@ -58,7 +60,7 @@ def test_status_iterator_verbosity_1(app, status, warning):
status.truncate(0)
yields = list(status_iterator(['hello', 'sphinx', 'world'], 'testing ... ',
length=3, verbosity=1))
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing ... [ 33%] hello\n' in output
assert 'testing ... [ 67%] sphinx\n' in output
assert 'testing ... [100%] world\n\n' in output
@@ -73,14 +75,14 @@ def test_progress_message(app, status, warning):
with progress_message('testing'):
logger.info('blah ', nonl=True)
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing... blah done\n' in output
# skipping case
with progress_message('testing'):
raise SkipProgressMessage('Reason: %s', 'error') # NoQA: EM101
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing... skipped\nReason: error\n' in output
# error case
@@ -90,7 +92,7 @@ def test_progress_message(app, status, warning):
except Exception:
pass
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing... failed\n' in output
# decorator
@@ -99,5 +101,5 @@ def test_progress_message(app, status, warning):
logger.info('in func ', nonl=True)
func()
- output = strip_escseq(status.getvalue())
+ output = strip_colors(status.getvalue())
assert 'testing... in func done\n' in output
diff --git a/tests/test_util_docstrings.py b/tests/test_util/test_util_docstrings.py
index 813e84e..813e84e 100644
--- a/tests/test_util_docstrings.py
+++ b/tests/test_util/test_util_docstrings.py
diff --git a/tests/test_util_docutils.py b/tests/test_util/test_util_docutils.py
index 69999eb..69999eb 100644
--- a/tests/test_util_docutils.py
+++ b/tests/test_util/test_util_docutils.py
diff --git a/tests/test_util_fileutil.py b/tests/test_util/test_util_fileutil.py
index 9c23821..9c23821 100644
--- a/tests/test_util_fileutil.py
+++ b/tests/test_util/test_util_fileutil.py
diff --git a/tests/test_util_i18n.py b/tests/test_util/test_util_i18n.py
index 9a1ecc5..f6baa04 100644
--- a/tests/test_util_i18n.py
+++ b/tests/test_util/test_util_i18n.py
@@ -160,6 +160,8 @@ def test_CatalogRepository(tmp_path):
(tmp_path / 'loc2' / 'xx' / 'LC_MESSAGES').mkdir(parents=True, exist_ok=True)
(tmp_path / 'loc2' / 'xx' / 'LC_MESSAGES' / 'test1.po').write_text('#', encoding='utf8')
(tmp_path / 'loc2' / 'xx' / 'LC_MESSAGES' / 'test7.po').write_text('#', encoding='utf8')
+ (tmp_path / 'loc1' / 'xx' / 'LC_MESSAGES' / '.dotdir2').mkdir(parents=True, exist_ok=True)
+ (tmp_path / 'loc1' / 'xx' / 'LC_MESSAGES' / '.dotdir2' / 'test8.po').write_text('#', encoding='utf8')
# for language xx
repo = i18n.CatalogRepository(tmp_path, ['loc1', 'loc2'], 'xx', 'utf-8')
diff --git a/tests/test_util_images.py b/tests/test_util/test_util_images.py
index 15853c7..15853c7 100644
--- a/tests/test_util_images.py
+++ b/tests/test_util/test_util_images.py
diff --git a/tests/test_util_inspect.py b/tests/test_util/test_util_inspect.py
index 73f9656..32840b8 100644
--- a/tests/test_util_inspect.py
+++ b/tests/test_util/test_util_inspect.py
@@ -62,6 +62,7 @@ async def coroutinefunc():
async def asyncgenerator():
yield
+
partial_func = functools.partial(func)
partial_coroutinefunc = functools.partial(coroutinefunc)
@@ -222,168 +223,140 @@ def test_signature_partialmethod():
def test_signature_annotations():
- from .typing_test_data import (
- Node,
- f0,
- f1,
- f2,
- f3,
- f4,
- f5,
- f6,
- f7,
- f8,
- f9,
- f10,
- f11,
- f12,
- f13,
- f14,
- f15,
- f16,
- f17,
- f18,
- f19,
- f20,
- f21,
- f22,
- f23,
- f24,
- f25,
- )
+ import tests.test_util.typing_test_data as mod
# Class annotations
- sig = inspect.signature(f0)
+ sig = inspect.signature(mod.f0)
assert stringify_signature(sig) == '(x: int, y: numbers.Integral) -> None'
# Generic types with concrete parameters
- sig = inspect.signature(f1)
+ sig = inspect.signature(mod.f1)
assert stringify_signature(sig) == '(x: list[int]) -> typing.List[int]'
# TypeVars and generic types with TypeVars
- sig = inspect.signature(f2)
- assert stringify_signature(sig) == ('(x: typing.List[tests.typing_test_data.T],'
- ' y: typing.List[tests.typing_test_data.T_co],'
- ' z: tests.typing_test_data.T'
- ') -> typing.List[tests.typing_test_data.T_contra]')
+ sig = inspect.signature(mod.f2)
+ assert stringify_signature(sig) == ('(x: typing.List[tests.test_util.typing_test_data.T],'
+ ' y: typing.List[tests.test_util.typing_test_data.T_co],'
+ ' z: tests.test_util.typing_test_data.T'
+ ') -> typing.List[tests.test_util.typing_test_data.T_contra]')
# Union types
- sig = inspect.signature(f3)
+ sig = inspect.signature(mod.f3)
assert stringify_signature(sig) == '(x: str | numbers.Integral) -> None'
# Quoted annotations
- sig = inspect.signature(f4)
+ sig = inspect.signature(mod.f4)
assert stringify_signature(sig) == '(x: str, y: str) -> None'
# Keyword-only arguments
- sig = inspect.signature(f5)
+ sig = inspect.signature(mod.f5)
assert stringify_signature(sig) == '(x: int, *, y: str, z: str) -> None'
# Keyword-only arguments with varargs
- sig = inspect.signature(f6)
+ sig = inspect.signature(mod.f6)
assert stringify_signature(sig) == '(x: int, *args, y: str, z: str) -> None'
# Space around '=' for defaults
- sig = inspect.signature(f7)
+ sig = inspect.signature(mod.f7)
if sys.version_info[:2] <= (3, 10):
assert stringify_signature(sig) == '(x: int | None = None, y: dict = {}) -> None'
else:
assert stringify_signature(sig) == '(x: int = None, y: dict = {}) -> None'
# Callable types
- sig = inspect.signature(f8)
+ sig = inspect.signature(mod.f8)
assert stringify_signature(sig) == '(x: typing.Callable[[int, str], int]) -> None'
- sig = inspect.signature(f9)
+ sig = inspect.signature(mod.f9)
assert stringify_signature(sig) == '(x: typing.Callable) -> None'
# Tuple types
- sig = inspect.signature(f10)
+ sig = inspect.signature(mod.f10)
assert stringify_signature(sig) == '(x: typing.Tuple[int, str], y: typing.Tuple[int, ...]) -> None'
# Instance annotations
- sig = inspect.signature(f11)
+ sig = inspect.signature(mod.f11)
assert stringify_signature(sig) == '(x: CustomAnnotation, y: 123) -> None'
# tuple with more than two items
- sig = inspect.signature(f12)
+ sig = inspect.signature(mod.f12)
assert stringify_signature(sig) == '() -> typing.Tuple[int, str, int]'
# optional
- sig = inspect.signature(f13)
+ sig = inspect.signature(mod.f13)
assert stringify_signature(sig) == '() -> str | None'
# optional union
- sig = inspect.signature(f20)
+ sig = inspect.signature(mod.f20)
assert stringify_signature(sig) in ('() -> int | str | None',
'() -> str | int | None')
# Any
- sig = inspect.signature(f14)
+ sig = inspect.signature(mod.f14)
assert stringify_signature(sig) == '() -> typing.Any'
# ForwardRef
- sig = inspect.signature(f15)
+ sig = inspect.signature(mod.f15)
assert stringify_signature(sig) == '(x: Unknown, y: int) -> typing.Any'
# keyword only arguments (1)
- sig = inspect.signature(f16)
+ sig = inspect.signature(mod.f16)
assert stringify_signature(sig) == '(arg1, arg2, *, arg3=None, arg4=None)'
# keyword only arguments (2)
- sig = inspect.signature(f17)
+ sig = inspect.signature(mod.f17)
assert stringify_signature(sig) == '(*, arg3, arg4)'
- sig = inspect.signature(f18)
+ sig = inspect.signature(mod.f18)
assert stringify_signature(sig) == ('(self, arg1: int | typing.Tuple = 10) -> '
'typing.List[typing.Dict]')
# annotations for variadic and keyword parameters
- sig = inspect.signature(f19)
+ sig = inspect.signature(mod.f19)
assert stringify_signature(sig) == '(*args: int, **kwargs: str)'
# default value is inspect.Signature.empty
- sig = inspect.signature(f21)
+ sig = inspect.signature(mod.f21)
assert stringify_signature(sig) == "(arg1='whatever', arg2)"
# type hints by string
- sig = inspect.signature(Node.children)
- assert stringify_signature(sig) == '(self) -> typing.List[tests.typing_test_data.Node]'
+ sig = inspect.signature(mod.Node.children)
+ assert stringify_signature(sig) == '(self) -> typing.List[tests.test_util.typing_test_data.Node]'
- sig = inspect.signature(Node.__init__)
- assert stringify_signature(sig) == '(self, parent: tests.typing_test_data.Node | None) -> None'
+ sig = inspect.signature(mod.Node.__init__)
+ assert stringify_signature(sig) == '(self, parent: tests.test_util.typing_test_data.Node | None) -> None'
# show_annotation is False
- sig = inspect.signature(f7)
+ sig = inspect.signature(mod.f7)
assert stringify_signature(sig, show_annotation=False) == '(x=None, y={})'
# show_return_annotation is False
- sig = inspect.signature(f7)
+ sig = inspect.signature(mod.f7)
if sys.version_info[:2] <= (3, 10):
assert stringify_signature(sig, show_return_annotation=False) == '(x: int | None = None, y: dict = {})'
else:
assert stringify_signature(sig, show_return_annotation=False) == '(x: int = None, y: dict = {})'
# unqualified_typehints is True
- sig = inspect.signature(f7)
+ sig = inspect.signature(mod.f7)
if sys.version_info[:2] <= (3, 10):
assert stringify_signature(sig, unqualified_typehints=True) == '(x: int | None = None, y: dict = {}) -> None'
else:
assert stringify_signature(sig, unqualified_typehints=True) == '(x: int = None, y: dict = {}) -> None'
# case: separator at head
- sig = inspect.signature(f22)
+ sig = inspect.signature(mod.f22)
assert stringify_signature(sig) == '(*, a, b)'
# case: separator in the middle
- sig = inspect.signature(f23)
+ sig = inspect.signature(mod.f23)
assert stringify_signature(sig) == '(a, b, /, c, d)'
- sig = inspect.signature(f24)
+ sig = inspect.signature(mod.f24)
assert stringify_signature(sig) == '(a, /, *, b)'
# case: separator at tail
- sig = inspect.signature(f25)
+ sig = inspect.signature(mod.f25)
assert stringify_signature(sig) == '(a, b, /)'
@@ -667,6 +640,17 @@ def test_object_description_enum():
assert inspect.object_description(MyEnum.FOO) == "MyEnum.FOO"
+def test_object_description_enum_custom_repr():
+ class MyEnum(enum.Enum):
+ FOO = 1
+ BAR = 2
+
+ def __repr__(self):
+ return self.name
+
+ assert inspect.object_description(MyEnum.FOO) == "FOO"
+
+
def test_getslots():
class Foo:
pass
@@ -842,7 +826,7 @@ def test_getdoc_inherited_decorated_method():
"""
class Bar(Foo):
- @functools.lru_cache # noqa: B019
+ @functools.lru_cache # NoQA: B019
def meth(self):
# inherited and decorated method
pass
diff --git a/tests/test_util_inventory.py b/tests/test_util/test_util_inventory.py
index 2c20763..81d31b0 100644
--- a/tests/test_util_inventory.py
+++ b/tests/test_util/test_util_inventory.py
@@ -1,59 +1,21 @@
"""Test inventory util functions."""
import os
import posixpath
-import zlib
from io import BytesIO
+import sphinx.locale
from sphinx.testing.util import SphinxTestApp
from sphinx.util.inventory import InventoryFile
-inventory_v1 = b'''\
-# Sphinx inventory version 1
-# Project: foo
-# Version: 1.0
-module mod foo.html
-module.cls class foo.html
-'''
-
-inventory_v2 = b'''\
-# Sphinx inventory version 2
-# Project: foo
-# Version: 2.0
-# The remainder of this file is compressed with zlib.
-''' + zlib.compress(b'''\
-module1 py:module 0 foo.html#module-module1 Long Module desc
-module2 py:module 0 foo.html#module-$ -
-module1.func py:function 1 sub/foo.html#$ -
-module1.Foo.bar py:method 1 index.html#foo.Bar.baz -
-CFunc c:function 2 cfunc.html#CFunc -
-std cpp:type 1 index.html#std -
-std::uint8_t cpp:type 1 index.html#std_uint8_t -
-foo::Bar cpp:class 1 index.html#cpp_foo_bar -
-foo::Bar::baz cpp:function 1 index.html#cpp_foo_bar_baz -
-foons cpp:type 1 index.html#foons -
-foons::bartype cpp:type 1 index.html#foons_bartype -
-a term std:term -1 glossary.html#term-a-term -
-ls.-l std:cmdoption 1 index.html#cmdoption-ls-l -
-docname std:doc -1 docname.html -
-foo js:module 1 index.html#foo -
-foo.bar js:class 1 index.html#foo.bar -
-foo.bar.baz js:method 1 index.html#foo.bar.baz -
-foo.bar.qux js:data 1 index.html#foo.bar.qux -
-a term including:colon std:term -1 glossary.html#term-a-term-including-colon -
-''')
-
-inventory_v2_not_having_version = b'''\
-# Sphinx inventory version 2
-# Project: foo
-# Version:
-# The remainder of this file is compressed with zlib.
-''' + zlib.compress(b'''\
-module1 py:module 0 foo.html#module-module1 Long Module desc
-''')
+from tests.test_util.intersphinx_data import (
+ INVENTORY_V1,
+ INVENTORY_V2,
+ INVENTORY_V2_NO_VERSION,
+)
def test_read_inventory_v1():
- f = BytesIO(inventory_v1)
+ f = BytesIO(INVENTORY_V1)
invdata = InventoryFile.load(f, '/util', posixpath.join)
assert invdata['py:module']['module'] == \
('foo', '1.0', '/util/foo.html#module-module', '-')
@@ -62,7 +24,7 @@ def test_read_inventory_v1():
def test_read_inventory_v2():
- f = BytesIO(inventory_v2)
+ f = BytesIO(INVENTORY_V2)
invdata = InventoryFile.load(f, '/util', posixpath.join)
assert len(invdata['py:module']) == 2
@@ -80,7 +42,7 @@ def test_read_inventory_v2():
def test_read_inventory_v2_not_having_version():
- f = BytesIO(inventory_v2_not_having_version)
+ f = BytesIO(INVENTORY_V2_NO_VERSION)
invdata = InventoryFile.load(f, '/util', posixpath.join)
assert invdata['py:module']['module1'] == \
('foo', '', '/util/foo.html#module-module1', 'Long Module desc')
@@ -99,8 +61,8 @@ def _write_appconfig(dir, language, prefix=None):
def _build_inventory(srcdir):
app = SphinxTestApp(srcdir=srcdir)
app.build()
- app.cleanup()
- return (app.outdir / 'objects.inv')
+ sphinx.locale.translators.clear()
+ return app.outdir / 'objects.inv'
def test_inventory_localization(tmp_path):
diff --git a/tests/test_util_logging.py b/tests/test_util/test_util_logging.py
index 4d506a8..4ee548a 100644
--- a/tests/test_util_logging.py
+++ b/tests/test_util/test_util_logging.py
@@ -8,9 +8,8 @@ import pytest
from docutils import nodes
from sphinx.errors import SphinxWarning
-from sphinx.testing.util import strip_escseq
from sphinx.util import logging, osutil
-from sphinx.util.console import colorize
+from sphinx.util.console import colorize, strip_colors
from sphinx.util.logging import is_suppressed_warning, prefixed_warnings
from sphinx.util.parallel import ParallelTasks
@@ -110,7 +109,7 @@ def test_once_warning_log(app, status, warning):
logger.warning('message: %d', 1, once=True)
logger.warning('message: %d', 2, once=True)
- assert 'WARNING: message: 1\nWARNING: message: 2\n' in strip_escseq(warning.getvalue())
+ assert 'WARNING: message: 1\nWARNING: message: 2\n' in strip_colors(warning.getvalue())
def test_is_suppressed_warning():
@@ -278,7 +277,7 @@ def test_pending_warnings(app, status, warning):
assert 'WARNING: message3' not in warning.getvalue()
# actually logged as ordered
- assert 'WARNING: message2\nWARNING: message3' in strip_escseq(warning.getvalue())
+ assert 'WARNING: message2\nWARNING: message3' in strip_colors(warning.getvalue())
def test_colored_logs(app, status, warning):
@@ -396,3 +395,20 @@ def test_get_node_location_abspath():
location = logging.get_node_location(n)
assert location == absolute_filename + ':'
+
+
+@pytest.mark.sphinx(confoverrides={'show_warning_types': True})
+def test_show_warning_types(app, status, warning):
+ logging.setup(app, status, warning)
+ logger = logging.getLogger(__name__)
+ logger.warning('message2')
+ logger.warning('message3', type='test')
+ logger.warning('message4', type='test', subtype='logging')
+
+ warnings = strip_colors(warning.getvalue()).splitlines()
+
+ assert warnings == [
+ 'WARNING: message2',
+ 'WARNING: message3 [test]',
+ 'WARNING: message4 [test.logging]',
+ ]
diff --git a/tests/test_util_matching.py b/tests/test_util/test_util_matching.py
index 7d865ba..7d865ba 100644
--- a/tests/test_util_matching.py
+++ b/tests/test_util/test_util_matching.py
diff --git a/tests/test_util_nodes.py b/tests/test_util/test_util_nodes.py
index 92e4dc1..ddd5974 100644
--- a/tests/test_util_nodes.py
+++ b/tests/test_util/test_util_nodes.py
@@ -237,8 +237,8 @@ def test_split_explicit_target(title, expected):
def test_apply_source_workaround_literal_block_no_source():
"""Regression test for #11091.
- Test that apply_source_workaround doesn't raise.
- """
+ Test that apply_source_workaround doesn't raise.
+ """
literal_block = nodes.literal_block('', '')
list_item = nodes.list_item('', literal_block)
bullet_list = nodes.bullet_list('', list_item)
diff --git a/tests/test_util_rst.py b/tests/test_util/test_util_rst.py
index d50c90c..d50c90c 100644
--- a/tests/test_util_rst.py
+++ b/tests/test_util/test_util_rst.py
diff --git a/tests/test_util_template.py b/tests/test_util/test_util_template.py
index 4601179..4601179 100644
--- a/tests/test_util_template.py
+++ b/tests/test_util/test_util_template.py
diff --git a/tests/test_util_typing.py b/tests/test_util/test_util_typing.py
index d79852e..9c28029 100644
--- a/tests/test_util_typing.py
+++ b/tests/test_util/test_util_typing.py
@@ -1,15 +1,38 @@
"""Tests util.typing functions."""
import sys
+from contextvars import Context, ContextVar, Token
from enum import Enum
from numbers import Integral
from struct import Struct
-from types import TracebackType
+from types import (
+ AsyncGeneratorType,
+ BuiltinFunctionType,
+ BuiltinMethodType,
+ CellType,
+ ClassMethodDescriptorType,
+ CodeType,
+ CoroutineType,
+ FrameType,
+ FunctionType,
+ GeneratorType,
+ GetSetDescriptorType,
+ LambdaType,
+ MappingProxyType,
+ MemberDescriptorType,
+ MethodDescriptorType,
+ MethodType,
+ MethodWrapperType,
+ ModuleType,
+ TracebackType,
+ WrapperDescriptorType,
+)
from typing import (
Any,
Callable,
Dict,
Generator,
+ Iterator,
List,
NewType,
Optional,
@@ -21,7 +44,7 @@ from typing import (
import pytest
from sphinx.ext.autodoc import mock
-from sphinx.util.typing import INVALID_BUILTIN_CLASSES, restify, stringify_annotation
+from sphinx.util.typing import _INVALID_BUILTIN_CLASSES, restify, stringify_annotation
class MyClass1:
@@ -76,11 +99,55 @@ def test_restify():
def test_is_invalid_builtin_class():
# if these tests start failing, it means that the __module__
- # of one of these classes has changed, and INVALID_BUILTIN_CLASSES
+ # of one of these classes has changed, and _INVALID_BUILTIN_CLASSES
# in sphinx.util.typing needs to be updated.
- assert INVALID_BUILTIN_CLASSES.keys() == {Struct, TracebackType}
+ assert _INVALID_BUILTIN_CLASSES.keys() == {
+ Context,
+ ContextVar,
+ Token,
+ Struct,
+ AsyncGeneratorType,
+ BuiltinFunctionType,
+ BuiltinMethodType,
+ CellType,
+ ClassMethodDescriptorType,
+ CodeType,
+ CoroutineType,
+ FrameType,
+ FunctionType,
+ GeneratorType,
+ GetSetDescriptorType,
+ LambdaType,
+ MappingProxyType,
+ MemberDescriptorType,
+ MethodDescriptorType,
+ MethodType,
+ MethodWrapperType,
+ ModuleType,
+ TracebackType,
+ WrapperDescriptorType,
+ }
assert Struct.__module__ == '_struct'
+ assert AsyncGeneratorType.__module__ == 'builtins'
+ assert BuiltinFunctionType.__module__ == 'builtins'
+ assert BuiltinMethodType.__module__ == 'builtins'
+ assert CellType.__module__ == 'builtins'
+ assert ClassMethodDescriptorType.__module__ == 'builtins'
+ assert CodeType.__module__ == 'builtins'
+ assert CoroutineType.__module__ == 'builtins'
+ assert FrameType.__module__ == 'builtins'
+ assert FunctionType.__module__ == 'builtins'
+ assert GeneratorType.__module__ == 'builtins'
+ assert GetSetDescriptorType.__module__ == 'builtins'
+ assert LambdaType.__module__ == 'builtins'
+ assert MappingProxyType.__module__ == 'builtins'
+ assert MemberDescriptorType.__module__ == 'builtins'
+ assert MethodDescriptorType.__module__ == 'builtins'
+ assert MethodType.__module__ == 'builtins'
+ assert MethodWrapperType.__module__ == 'builtins'
+ assert ModuleType.__module__ == 'builtins'
assert TracebackType.__module__ == 'builtins'
+ assert WrapperDescriptorType.__module__ == 'builtins'
def test_restify_type_hints_containers():
@@ -103,12 +170,14 @@ def test_restify_type_hints_containers():
assert restify(List[Dict[str, Tuple]]) == (":py:class:`~typing.List`\\ "
"[:py:class:`~typing.Dict`\\ "
"[:py:class:`str`, :py:class:`~typing.Tuple`]]")
- assert restify(MyList[Tuple[int, int]]) == (":py:class:`tests.test_util_typing.MyList`\\ "
+ assert restify(MyList[Tuple[int, int]]) == (":py:class:`tests.test_util.test_util_typing.MyList`\\ "
"[:py:class:`~typing.Tuple`\\ "
"[:py:class:`int`, :py:class:`int`]]")
assert restify(Generator[None, None, None]) == (":py:class:`~typing.Generator`\\ "
"[:py:obj:`None`, :py:obj:`None`, "
":py:obj:`None`]")
+ assert restify(Iterator[None]) == (":py:class:`~typing.Iterator`\\ "
+ "[:py:obj:`None`]")
def test_restify_type_hints_Callable():
@@ -121,24 +190,44 @@ def test_restify_type_hints_Callable():
def test_restify_type_hints_Union():
- assert restify(Optional[int]) == ":py:obj:`~typing.Optional`\\ [:py:class:`int`]"
- assert restify(Union[str, None]) == ":py:obj:`~typing.Optional`\\ [:py:class:`str`]"
- assert restify(Union[int, str]) == (":py:obj:`~typing.Union`\\ "
- "[:py:class:`int`, :py:class:`str`]")
- assert restify(Union[int, Integral]) == (":py:obj:`~typing.Union`\\ "
- "[:py:class:`int`, :py:class:`numbers.Integral`]")
- assert restify(Union[int, Integral], "smart") == (":py:obj:`~typing.Union`\\ "
- "[:py:class:`int`,"
- " :py:class:`~numbers.Integral`]")
+ assert restify(Union[int]) == ":py:class:`int`"
+ assert restify(Union[int, str]) == ":py:class:`int` | :py:class:`str`"
+ assert restify(Optional[int]) == ":py:class:`int` | :py:obj:`None`"
+
+ assert restify(Union[str, None]) == ":py:class:`str` | :py:obj:`None`"
+ assert restify(Union[None, str]) == ":py:obj:`None` | :py:class:`str`"
+ assert restify(Optional[str]) == ":py:class:`str` | :py:obj:`None`"
+
+ assert restify(Union[int, str, None]) == (
+ ":py:class:`int` | :py:class:`str` | :py:obj:`None`"
+ )
+ assert restify(Optional[Union[int, str]]) in {
+ ":py:class:`str` | :py:class:`int` | :py:obj:`None`",
+ ":py:class:`int` | :py:class:`str` | :py:obj:`None`",
+ }
+
+ assert restify(Union[int, Integral]) == (
+ ":py:class:`int` | :py:class:`numbers.Integral`"
+ )
+ assert restify(Union[int, Integral], "smart") == (
+ ":py:class:`int` | :py:class:`~numbers.Integral`"
+ )
assert (restify(Union[MyClass1, MyClass2]) ==
- (":py:obj:`~typing.Union`\\ "
- "[:py:class:`tests.test_util_typing.MyClass1`, "
- ":py:class:`tests.test_util_typing.<MyClass2>`]"))
+ (":py:class:`tests.test_util.test_util_typing.MyClass1`"
+ " | :py:class:`tests.test_util.test_util_typing.<MyClass2>`"))
assert (restify(Union[MyClass1, MyClass2], "smart") ==
- (":py:obj:`~typing.Union`\\ "
- "[:py:class:`~tests.test_util_typing.MyClass1`,"
- " :py:class:`~tests.test_util_typing.<MyClass2>`]"))
+ (":py:class:`~tests.test_util.test_util_typing.MyClass1`"
+ " | :py:class:`~tests.test_util.test_util_typing.<MyClass2>`"))
+
+ assert (restify(Optional[Union[MyClass1, MyClass2]]) ==
+ (":py:class:`tests.test_util.test_util_typing.MyClass1`"
+ " | :py:class:`tests.test_util.test_util_typing.<MyClass2>`"
+ " | :py:obj:`None`"))
+ assert (restify(Optional[Union[MyClass1, MyClass2]], "smart") ==
+ (":py:class:`~tests.test_util.test_util_typing.MyClass1`"
+ " | :py:class:`~tests.test_util.test_util_typing.<MyClass2>`"
+ " | :py:obj:`None`"))
def test_restify_type_hints_typevars():
@@ -146,35 +235,35 @@ def test_restify_type_hints_typevars():
T_co = TypeVar('T_co', covariant=True)
T_contra = TypeVar('T_contra', contravariant=True)
- assert restify(T) == ":py:obj:`tests.test_util_typing.T`"
- assert restify(T, "smart") == ":py:obj:`~tests.test_util_typing.T`"
+ assert restify(T) == ":py:obj:`tests.test_util.test_util_typing.T`"
+ assert restify(T, "smart") == ":py:obj:`~tests.test_util.test_util_typing.T`"
- assert restify(T_co) == ":py:obj:`tests.test_util_typing.T_co`"
- assert restify(T_co, "smart") == ":py:obj:`~tests.test_util_typing.T_co`"
+ assert restify(T_co) == ":py:obj:`tests.test_util.test_util_typing.T_co`"
+ assert restify(T_co, "smart") == ":py:obj:`~tests.test_util.test_util_typing.T_co`"
- assert restify(T_contra) == ":py:obj:`tests.test_util_typing.T_contra`"
- assert restify(T_contra, "smart") == ":py:obj:`~tests.test_util_typing.T_contra`"
+ assert restify(T_contra) == ":py:obj:`tests.test_util.test_util_typing.T_contra`"
+ assert restify(T_contra, "smart") == ":py:obj:`~tests.test_util.test_util_typing.T_contra`"
- assert restify(List[T]) == ":py:class:`~typing.List`\\ [:py:obj:`tests.test_util_typing.T`]"
- assert restify(List[T], "smart") == ":py:class:`~typing.List`\\ [:py:obj:`~tests.test_util_typing.T`]"
+ assert restify(List[T]) == ":py:class:`~typing.List`\\ [:py:obj:`tests.test_util.test_util_typing.T`]"
+ assert restify(List[T], "smart") == ":py:class:`~typing.List`\\ [:py:obj:`~tests.test_util.test_util_typing.T`]"
- assert restify(list[T]) == ":py:class:`list`\\ [:py:obj:`tests.test_util_typing.T`]"
- assert restify(list[T], "smart") == ":py:class:`list`\\ [:py:obj:`~tests.test_util_typing.T`]"
+ assert restify(list[T]) == ":py:class:`list`\\ [:py:obj:`tests.test_util.test_util_typing.T`]"
+ assert restify(list[T], "smart") == ":py:class:`list`\\ [:py:obj:`~tests.test_util.test_util_typing.T`]"
if sys.version_info[:2] >= (3, 10):
- assert restify(MyInt) == ":py:class:`tests.test_util_typing.MyInt`"
- assert restify(MyInt, "smart") == ":py:class:`~tests.test_util_typing.MyInt`"
+ assert restify(MyInt) == ":py:class:`tests.test_util.test_util_typing.MyInt`"
+ assert restify(MyInt, "smart") == ":py:class:`~tests.test_util.test_util_typing.MyInt`"
else:
assert restify(MyInt) == ":py:class:`MyInt`"
assert restify(MyInt, "smart") == ":py:class:`MyInt`"
def test_restify_type_hints_custom_class():
- assert restify(MyClass1) == ":py:class:`tests.test_util_typing.MyClass1`"
- assert restify(MyClass1, "smart") == ":py:class:`~tests.test_util_typing.MyClass1`"
+ assert restify(MyClass1) == ":py:class:`tests.test_util.test_util_typing.MyClass1`"
+ assert restify(MyClass1, "smart") == ":py:class:`~tests.test_util.test_util_typing.MyClass1`"
- assert restify(MyClass2) == ":py:class:`tests.test_util_typing.<MyClass2>`"
- assert restify(MyClass2, "smart") == ":py:class:`~tests.test_util_typing.<MyClass2>`"
+ assert restify(MyClass2) == ":py:class:`tests.test_util.test_util_typing.<MyClass2>`"
+ assert restify(MyClass2, "smart") == ":py:class:`~tests.test_util.test_util_typing.<MyClass2>`"
def test_restify_type_hints_alias():
@@ -199,8 +288,8 @@ def test_restify_type_Literal():
from typing import Literal # type: ignore[attr-defined]
assert restify(Literal[1, "2", "\r"]) == ":py:obj:`~typing.Literal`\\ [1, '2', '\\r']"
- assert restify(Literal[MyEnum.a], 'fully-qualified-except-typing') == ':py:obj:`~typing.Literal`\\ [:py:attr:`tests.test_util_typing.MyEnum.a`]'
- assert restify(Literal[MyEnum.a], 'smart') == ':py:obj:`~typing.Literal`\\ [:py:attr:`~tests.test_util_typing.MyEnum.a`]'
+ assert restify(Literal[MyEnum.a], 'fully-qualified-except-typing') == ':py:obj:`~typing.Literal`\\ [:py:attr:`tests.test_util.test_util_typing.MyEnum.a`]'
+ assert restify(Literal[MyEnum.a], 'smart') == ':py:obj:`~typing.Literal`\\ [:py:attr:`~tests.test_util.test_util_typing.MyEnum.a`]'
def test_restify_pep_585():
@@ -223,7 +312,7 @@ def test_restify_pep_585():
"[:py:class:`str`, :py:class:`~typing.Tuple`\\ "
"[:py:class:`str`, ...]]]")
assert restify(tuple[MyList[list[int]], int]) == (":py:class:`tuple`\\ ["
- ":py:class:`tests.test_util_typing.MyList`\\ "
+ ":py:class:`tests.test_util.test_util_typing.MyList`\\ "
"[:py:class:`list`\\ [:py:class:`int`]], "
":py:class:`int`]")
@@ -231,14 +320,15 @@ def test_restify_pep_585():
@pytest.mark.skipif(sys.version_info[:2] <= (3, 9), reason='python 3.10+ is required.')
def test_restify_type_union_operator():
assert restify(int | None) == ":py:class:`int` | :py:obj:`None`" # type: ignore[attr-defined]
+ assert restify(None | int) == ":py:obj:`None` | :py:class:`int`" # type: ignore[attr-defined]
assert restify(int | str) == ":py:class:`int` | :py:class:`str`" # type: ignore[attr-defined]
assert restify(int | str | None) == (":py:class:`int` | :py:class:`str` | " # type: ignore[attr-defined]
":py:obj:`None`")
def test_restify_broken_type_hints():
- assert restify(BrokenType) == ':py:class:`tests.test_util_typing.BrokenType`'
- assert restify(BrokenType, "smart") == ':py:class:`~tests.test_util_typing.BrokenType`'
+ assert restify(BrokenType) == ':py:class:`tests.test_util.test_util_typing.BrokenType`'
+ assert restify(BrokenType, "smart") == ':py:class:`~tests.test_util.test_util_typing.BrokenType`'
def test_restify_mock():
@@ -315,14 +405,18 @@ def test_stringify_type_hints_containers():
assert stringify_annotation(List[Dict[str, Tuple]], "fully-qualified") == "typing.List[typing.Dict[str, typing.Tuple]]"
assert stringify_annotation(List[Dict[str, Tuple]], "smart") == "~typing.List[~typing.Dict[str, ~typing.Tuple]]"
- assert stringify_annotation(MyList[Tuple[int, int]], 'fully-qualified-except-typing') == "tests.test_util_typing.MyList[Tuple[int, int]]"
- assert stringify_annotation(MyList[Tuple[int, int]], "fully-qualified") == "tests.test_util_typing.MyList[typing.Tuple[int, int]]"
- assert stringify_annotation(MyList[Tuple[int, int]], "smart") == "~tests.test_util_typing.MyList[~typing.Tuple[int, int]]"
+ assert stringify_annotation(MyList[Tuple[int, int]], 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.MyList[Tuple[int, int]]"
+ assert stringify_annotation(MyList[Tuple[int, int]], "fully-qualified") == "tests.test_util.test_util_typing.MyList[typing.Tuple[int, int]]"
+ assert stringify_annotation(MyList[Tuple[int, int]], "smart") == "~tests.test_util.test_util_typing.MyList[~typing.Tuple[int, int]]"
assert stringify_annotation(Generator[None, None, None], 'fully-qualified-except-typing') == "Generator[None, None, None]"
assert stringify_annotation(Generator[None, None, None], "fully-qualified") == "typing.Generator[None, None, None]"
assert stringify_annotation(Generator[None, None, None], "smart") == "~typing.Generator[None, None, None]"
+ assert stringify_annotation(Iterator[None], 'fully-qualified-except-typing') == "Iterator[None]"
+ assert stringify_annotation(Iterator[None], "fully-qualified") == "typing.Iterator[None]"
+ assert stringify_annotation(Iterator[None], "smart") == "~typing.Iterator[None]"
+
def test_stringify_type_hints_pep_585():
assert stringify_annotation(list[int], 'fully-qualified-except-typing') == "list[int]"
@@ -346,9 +440,9 @@ def test_stringify_type_hints_pep_585():
assert stringify_annotation(list[dict[str, tuple]], 'fully-qualified-except-typing') == "list[dict[str, tuple]]"
assert stringify_annotation(list[dict[str, tuple]], "smart") == "list[dict[str, tuple]]"
- assert stringify_annotation(MyList[tuple[int, int]], 'fully-qualified-except-typing') == "tests.test_util_typing.MyList[tuple[int, int]]"
- assert stringify_annotation(MyList[tuple[int, int]], "fully-qualified") == "tests.test_util_typing.MyList[tuple[int, int]]"
- assert stringify_annotation(MyList[tuple[int, int]], "smart") == "~tests.test_util_typing.MyList[tuple[int, int]]"
+ assert stringify_annotation(MyList[tuple[int, int]], 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.MyList[tuple[int, int]]"
+ assert stringify_annotation(MyList[tuple[int, int]], "fully-qualified") == "tests.test_util.test_util_typing.MyList[tuple[int, int]]"
+ assert stringify_annotation(MyList[tuple[int, int]], "smart") == "~tests.test_util.test_util_typing.MyList[tuple[int, int]]"
assert stringify_annotation(type[int], 'fully-qualified-except-typing') == "type[int]"
assert stringify_annotation(type[int], "smart") == "type[int]"
@@ -413,9 +507,12 @@ def test_stringify_type_hints_Union():
assert stringify_annotation(Optional[int], "fully-qualified") == "int | None"
assert stringify_annotation(Optional[int], "smart") == "int | None"
- assert stringify_annotation(Union[str, None], 'fully-qualified-except-typing') == "str | None"
- assert stringify_annotation(Union[str, None], "fully-qualified") == "str | None"
- assert stringify_annotation(Union[str, None], "smart") == "str | None"
+ assert stringify_annotation(Union[int, None], 'fully-qualified-except-typing') == "int | None"
+ assert stringify_annotation(Union[None, int], 'fully-qualified-except-typing') == "None | int"
+ assert stringify_annotation(Union[int, None], "fully-qualified") == "int | None"
+ assert stringify_annotation(Union[None, int], "fully-qualified") == "None | int"
+ assert stringify_annotation(Union[int, None], "smart") == "int | None"
+ assert stringify_annotation(Union[None, int], "smart") == "None | int"
assert stringify_annotation(Union[int, str], 'fully-qualified-except-typing') == "int | str"
assert stringify_annotation(Union[int, str], "fully-qualified") == "int | str"
@@ -426,11 +523,11 @@ def test_stringify_type_hints_Union():
assert stringify_annotation(Union[int, Integral], "smart") == "int | ~numbers.Integral"
assert (stringify_annotation(Union[MyClass1, MyClass2], 'fully-qualified-except-typing') ==
- "tests.test_util_typing.MyClass1 | tests.test_util_typing.<MyClass2>")
+ "tests.test_util.test_util_typing.MyClass1 | tests.test_util.test_util_typing.<MyClass2>")
assert (stringify_annotation(Union[MyClass1, MyClass2], "fully-qualified") ==
- "tests.test_util_typing.MyClass1 | tests.test_util_typing.<MyClass2>")
+ "tests.test_util.test_util_typing.MyClass1 | tests.test_util.test_util_typing.<MyClass2>")
assert (stringify_annotation(Union[MyClass1, MyClass2], "smart") ==
- "~tests.test_util_typing.MyClass1 | ~tests.test_util_typing.<MyClass2>")
+ "~tests.test_util.test_util_typing.MyClass1 | ~tests.test_util.test_util_typing.<MyClass2>")
def test_stringify_type_hints_typevars():
@@ -438,35 +535,35 @@ def test_stringify_type_hints_typevars():
T_co = TypeVar('T_co', covariant=True)
T_contra = TypeVar('T_contra', contravariant=True)
- assert stringify_annotation(T, 'fully-qualified-except-typing') == "tests.test_util_typing.T"
- assert stringify_annotation(T, "smart") == "~tests.test_util_typing.T"
+ assert stringify_annotation(T, 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.T"
+ assert stringify_annotation(T, "smart") == "~tests.test_util.test_util_typing.T"
- assert stringify_annotation(T_co, 'fully-qualified-except-typing') == "tests.test_util_typing.T_co"
- assert stringify_annotation(T_co, "smart") == "~tests.test_util_typing.T_co"
+ assert stringify_annotation(T_co, 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.T_co"
+ assert stringify_annotation(T_co, "smart") == "~tests.test_util.test_util_typing.T_co"
- assert stringify_annotation(T_contra, 'fully-qualified-except-typing') == "tests.test_util_typing.T_contra"
- assert stringify_annotation(T_contra, "smart") == "~tests.test_util_typing.T_contra"
+ assert stringify_annotation(T_contra, 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.T_contra"
+ assert stringify_annotation(T_contra, "smart") == "~tests.test_util.test_util_typing.T_contra"
- assert stringify_annotation(List[T], 'fully-qualified-except-typing') == "List[tests.test_util_typing.T]"
- assert stringify_annotation(List[T], "smart") == "~typing.List[~tests.test_util_typing.T]"
+ assert stringify_annotation(List[T], 'fully-qualified-except-typing') == "List[tests.test_util.test_util_typing.T]"
+ assert stringify_annotation(List[T], "smart") == "~typing.List[~tests.test_util.test_util_typing.T]"
- assert stringify_annotation(list[T], 'fully-qualified-except-typing') == "list[tests.test_util_typing.T]"
- assert stringify_annotation(list[T], "smart") == "list[~tests.test_util_typing.T]"
+ assert stringify_annotation(list[T], 'fully-qualified-except-typing') == "list[tests.test_util.test_util_typing.T]"
+ assert stringify_annotation(list[T], "smart") == "list[~tests.test_util.test_util_typing.T]"
if sys.version_info[:2] >= (3, 10):
- assert stringify_annotation(MyInt, 'fully-qualified-except-typing') == "tests.test_util_typing.MyInt"
- assert stringify_annotation(MyInt, "smart") == "~tests.test_util_typing.MyInt"
+ assert stringify_annotation(MyInt, 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.MyInt"
+ assert stringify_annotation(MyInt, "smart") == "~tests.test_util.test_util_typing.MyInt"
else:
assert stringify_annotation(MyInt, 'fully-qualified-except-typing') == "MyInt"
assert stringify_annotation(MyInt, "smart") == "MyInt"
def test_stringify_type_hints_custom_class():
- assert stringify_annotation(MyClass1, 'fully-qualified-except-typing') == "tests.test_util_typing.MyClass1"
- assert stringify_annotation(MyClass1, "smart") == "~tests.test_util_typing.MyClass1"
+ assert stringify_annotation(MyClass1, 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.MyClass1"
+ assert stringify_annotation(MyClass1, "smart") == "~tests.test_util.test_util_typing.MyClass1"
- assert stringify_annotation(MyClass2, 'fully-qualified-except-typing') == "tests.test_util_typing.<MyClass2>"
- assert stringify_annotation(MyClass2, "smart") == "~tests.test_util_typing.<MyClass2>"
+ assert stringify_annotation(MyClass2, 'fully-qualified-except-typing') == "tests.test_util.test_util_typing.<MyClass2>"
+ assert stringify_annotation(MyClass2, "smart") == "~tests.test_util.test_util_typing.<MyClass2>"
def test_stringify_type_hints_alias():
@@ -486,8 +583,8 @@ def test_stringify_type_Literal():
assert stringify_annotation(Literal[1, "2", "\r"], "fully-qualified") == "typing.Literal[1, '2', '\\r']"
assert stringify_annotation(Literal[1, "2", "\r"], "smart") == "~typing.Literal[1, '2', '\\r']"
- assert stringify_annotation(Literal[MyEnum.a], 'fully-qualified-except-typing') == 'Literal[tests.test_util_typing.MyEnum.a]'
- assert stringify_annotation(Literal[MyEnum.a], 'fully-qualified') == 'typing.Literal[tests.test_util_typing.MyEnum.a]'
+ assert stringify_annotation(Literal[MyEnum.a], 'fully-qualified-except-typing') == 'Literal[tests.test_util.test_util_typing.MyEnum.a]'
+ assert stringify_annotation(Literal[MyEnum.a], 'fully-qualified') == 'typing.Literal[tests.test_util.test_util_typing.MyEnum.a]'
assert stringify_annotation(Literal[MyEnum.a], 'smart') == '~typing.Literal[MyEnum.a]'
@@ -510,8 +607,8 @@ def test_stringify_type_union_operator():
def test_stringify_broken_type_hints():
- assert stringify_annotation(BrokenType, 'fully-qualified-except-typing') == 'tests.test_util_typing.BrokenType'
- assert stringify_annotation(BrokenType, "smart") == '~tests.test_util_typing.BrokenType'
+ assert stringify_annotation(BrokenType, 'fully-qualified-except-typing') == 'tests.test_util.test_util_typing.BrokenType'
+ assert stringify_annotation(BrokenType, "smart") == '~tests.test_util.test_util_typing.BrokenType'
def test_stringify_mock():
diff --git a/tests/typing_test_data.py b/tests/test_util/typing_test_data.py
index 8a7ebc4..e29b600 100644
--- a/tests/typing_test_data.py
+++ b/tests/test_util/typing_test_data.py
@@ -39,7 +39,7 @@ def f6(x: int, *args, y: str, z: str) -> None:
pass
-def f7(x: int = None, y: dict = {}) -> None: # NoQA: B006
+def f7(x: int = None, y: dict = {}) -> None: # NoQA: B006,RUF013
pass
@@ -77,7 +77,7 @@ def f14() -> Any:
pass
-def f15(x: "Unknown", y: "int") -> Any: # noqa: F821 # type: ignore[attr-defined]
+def f15(x: "Unknown", y: "int") -> Any: # NoQA: F821 # type: ignore[attr-defined]
pass
diff --git a/tests/test_writers/__init__.py b/tests/test_writers/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/test_writers/__init__.py
diff --git a/tests/test_api_translator.py b/tests/test_writers/test_api_translator.py
index 9f2bd44..9f2bd44 100644
--- a/tests/test_api_translator.py
+++ b/tests/test_writers/test_api_translator.py
diff --git a/tests/test_docutilsconf.py b/tests/test_writers/test_docutilsconf.py
index def6cb6..6422c30 100644
--- a/tests/test_docutilsconf.py
+++ b/tests/test_writers/test_docutilsconf.py
@@ -18,8 +18,8 @@ def test_html_with_default_docutilsconf(app, status, warning):
@pytest.mark.sphinx('dummy', testroot='docutilsconf', freshenv=True,
- docutilsconf=('[restructuredtext parser]\n'
- 'trim_footnote_reference_space: true\n'))
+ docutils_conf=('[restructuredtext parser]\n'
+ 'trim_footnote_reference_space: true\n'))
def test_html_with_docutilsconf(app, status, warning):
with patch_docutils(app.confdir):
app.build()
diff --git a/tests/test_writer_latex.py b/tests/test_writers/test_writer_latex.py
index a0ab3ee..a0ab3ee 100644
--- a/tests/test_writer_latex.py
+++ b/tests/test_writers/test_writer_latex.py
diff --git a/tests/utils.py b/tests/utils.py
index 32636b7..5636a13 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -1,55 +1,125 @@
-import contextlib
-import http.server
-import pathlib
-import threading
+from __future__ import annotations
+
+__all__ = ('http_server',)
+
+import socket
+from contextlib import contextmanager
+from http.server import ThreadingHTTPServer
+from pathlib import Path
from ssl import PROTOCOL_TLS_SERVER, SSLContext
+from threading import Thread
+from typing import TYPE_CHECKING
+from urllib.parse import urlparse
+
+if TYPE_CHECKING:
+ from collections.abc import Iterator
+ from http.server import HTTPServer
+ from socketserver import BaseRequestHandler
+ from typing import Final
-import filelock
+ from sphinx.application import Sphinx
# Generated with:
# $ openssl req -new -x509 -days 3650 -nodes -out cert.pem \
# -keyout cert.pem -addext "subjectAltName = DNS:localhost"
-TESTS_ROOT = pathlib.Path(__file__).parent
-CERT_FILE = str(TESTS_ROOT / "certs" / "cert.pem")
+TESTS_ROOT: Final[Path] = Path(__file__).parent
+CERT_FILE: Final[str] = str(TESTS_ROOT / 'certs' / 'cert.pem')
-# File lock for tests
-LOCK_PATH = str(TESTS_ROOT / 'test-server.lock')
+class HttpServerThread(Thread):
+ def __init__(self, handler: type[BaseRequestHandler], *, port: int = 0) -> None:
+ """
+ Constructs a threaded HTTP server. The default port number of ``0``
+ delegates selection of a port number to bind to to Python.
-class HttpServerThread(threading.Thread):
- def __init__(self, handler, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.server = http.server.ThreadingHTTPServer(("localhost", 7777), handler)
+ Ref: https://docs.python.org/3.11/library/socketserver.html#asynchronous-mixins
+ """
+ super().__init__(daemon=True)
+ self.server = ThreadingHTTPServer(('localhost', port), handler)
- def run(self):
+ def run(self) -> None:
self.server.serve_forever(poll_interval=0.001)
- def terminate(self):
+ def terminate(self) -> None:
self.server.shutdown()
self.server.server_close()
self.join()
class HttpsServerThread(HttpServerThread):
- def __init__(self, handler, *args, **kwargs):
- super().__init__(handler, *args, **kwargs)
+ def __init__(self, handler: type[BaseRequestHandler], *, port: int = 0) -> None:
+ super().__init__(handler, port=port)
sslcontext = SSLContext(PROTOCOL_TLS_SERVER)
sslcontext.load_cert_chain(CERT_FILE)
self.server.socket = sslcontext.wrap_socket(self.server.socket, server_side=True)
-def create_server(thread_class):
- def server(handler):
- lock = filelock.FileLock(LOCK_PATH)
- with lock:
- server_thread = thread_class(handler, daemon=True)
- server_thread.start()
- try:
- yield server_thread
- finally:
- server_thread.terminate()
- return contextlib.contextmanager(server)
+@contextmanager
+def http_server(
+ handler: type[BaseRequestHandler],
+ *,
+ tls_enabled: bool = False,
+ port: int = 0,
+) -> Iterator[HTTPServer]:
+ server_cls = HttpsServerThread if tls_enabled else HttpServerThread
+ server_thread = server_cls(handler, port=port)
+ server_thread.start()
+ server_port = server_thread.server.server_port
+ assert port == 0 or server_port == port
+ try:
+ socket.create_connection(('localhost', server_port), timeout=0.5).close()
+ yield server_thread.server # Connection has been confirmed possible; proceed.
+ finally:
+ server_thread.terminate()
+
+
+@contextmanager
+def rewrite_hyperlinks(app: Sphinx, server: HTTPServer) -> Iterator[None]:
+ """
+ Rewrite hyperlinks that refer to network location 'localhost:7777',
+ allowing that location to vary dynamically with the arbitrary test HTTP
+ server port assigned during unit testing.
+
+ :param app: The Sphinx application where link replacement is to occur.
+ :param server: Destination server to redirect the hyperlinks to.
+ """
+ match_netloc, replacement_netloc = (
+ 'localhost:7777',
+ f'localhost:{server.server_port}',
+ )
+
+ def rewrite_hyperlink(_app: Sphinx, uri: str) -> str | None:
+ parsed_uri = urlparse(uri)
+ if parsed_uri.netloc != match_netloc:
+ return uri
+ return parsed_uri._replace(netloc=replacement_netloc).geturl()
+
+ listener_id = app.connect('linkcheck-process-uri', rewrite_hyperlink)
+ yield
+ app.disconnect(listener_id)
+
+
+@contextmanager
+def serve_application(
+ app: Sphinx,
+ handler: type[BaseRequestHandler],
+ *,
+ tls_enabled: bool = False,
+ port: int = 0,
+) -> Iterator[str]:
+ """
+ Prepare a temporary server to handle HTTP requests related to the links
+ found in a Sphinx application project.
+ :param app: The Sphinx application.
+ :param handler: Determines how each request will be handled.
+ :param tls_enabled: Whether TLS (SSL) should be enabled for the server.
+ :param port: Optional server port (default: auto).
-http_server = create_server(HttpServerThread)
-https_server = create_server(HttpsServerThread)
+ :return: The address of the temporary HTTP server.
+ """
+ with (
+ http_server(handler, tls_enabled=tls_enabled, port=port) as server,
+ rewrite_hyperlinks(app, server),
+ ):
+ yield f'localhost:{server.server_port}'
diff --git a/utils/CHANGES_template b/utils/CHANGES_template.rst
index a655c46..a655c46 100644
--- a/utils/CHANGES_template
+++ b/utils/CHANGES_template.rst
diff --git a/utils/babel_runner.py b/utils/babel_runner.py
index dfb58db..b66425f 100644
--- a/utils/babel_runner.py
+++ b/utils/babel_runner.py
@@ -31,7 +31,7 @@ from babel.messages.pofile import read_po, write_po
from babel.util import pathmatch
from jinja2.ext import babel_extract as extract_jinja2
-ROOT = os.path.realpath(os.path.join(os.path.abspath(__file__), "..", ".."))
+ROOT = os.path.realpath(os.path.join(os.path.abspath(__file__), '..', '..'))
TEX_DELIMITERS = {
'variable_start_string': '<%=',
'variable_end_string': '%>',
@@ -70,7 +70,7 @@ OPTIONS_MAP = {
KEYWORDS = {**DEFAULT_KEYWORDS, '_': None, '__': None}
-def run_extract():
+def run_extract() -> None:
"""Message extraction function."""
log = _get_logger()
@@ -100,12 +100,15 @@ def run_extract():
options = opt_dict
with open(os.path.join(root, filename), 'rb') as fileobj:
for lineno, message, comments, context in extract(
- method, fileobj, KEYWORDS, options=options,
+ method, fileobj, KEYWORDS, options=options
):
filepath = os.path.join(input_path, relative_name)
catalogue.add(
- message, None, [(filepath, lineno)],
- auto_comments=comments, context=context,
+ message,
+ None,
+ [(filepath, lineno)],
+ auto_comments=comments,
+ context=context,
)
break
@@ -115,9 +118,8 @@ def run_extract():
write_po(outfile, catalogue)
-def run_update():
+def run_update() -> None:
"""Catalog merging command."""
-
log = _get_logger()
domain = 'sphinx'
@@ -138,7 +140,8 @@ def run_update():
catalog.update(template)
tmp_name = os.path.join(
- os.path.dirname(filename), tempfile.gettempprefix() + os.path.basename(filename),
+ os.path.dirname(filename),
+ tempfile.gettempprefix() + os.path.basename(filename),
)
try:
with open(tmp_name, 'wb') as tmpfile:
@@ -150,7 +153,7 @@ def run_update():
os.replace(tmp_name, filename)
-def run_compile():
+def run_compile() -> None:
"""
Catalog compilation command.
@@ -160,11 +163,10 @@ def run_compile():
Unfortunately, babel's setup command isn't built very extensible, so
most of the run() code is duplicated here.
"""
-
log = _get_logger()
directory = os.path.join('sphinx', 'locale')
- total_errors = 0
+ total_errors = {}
for locale in os.listdir(directory):
po_file = os.path.join(directory, locale, 'LC_MESSAGES', 'sphinx.po')
@@ -179,10 +181,17 @@ def run_compile():
continue
for message, errors in catalog.check():
+ if locale not in total_errors:
+ total_errors[locale] = 0
for error in errors:
- total_errors += 1
- log.error('error: %s:%d: %s\nerror: in message string: %s',
- po_file, message.lineno, error, message.string)
+ total_errors[locale] += 1
+ log.error(
+ 'error: %s:%d: %s\nerror: in message string: %r',
+ po_file,
+ message.lineno,
+ error,
+ message.string,
+ )
mo_file = os.path.join(directory, locale, 'LC_MESSAGES', 'sphinx.mo')
log.info('compiling catalog %s to %s', po_file, mo_file)
@@ -194,26 +203,37 @@ def run_compile():
js_catalogue = {}
for message in catalog:
if any(
- x[0].endswith(('.js', '.js.jinja', '.js_t', '.html'))
- for x in message.locations
+ x[0].endswith(('.js', '.js.jinja', '.js_t', '.html'))
+ for x in message.locations
):
msgid = message.id
if isinstance(msgid, (list, tuple)):
msgid = msgid[0]
js_catalogue[msgid] = message.string
- obj = json.dumps({
- 'messages': js_catalogue,
- 'plural_expr': catalog.plural_expr,
- 'locale': str(catalog.locale),
- }, sort_keys=True, indent=4)
+ obj = json.dumps(
+ {
+ 'messages': js_catalogue,
+ 'plural_expr': catalog.plural_expr,
+ 'locale': str(catalog.locale),
+ },
+ sort_keys=True,
+ indent=4,
+ )
with open(js_file, 'wb') as outfile:
# to ensure lines end with ``\n`` rather than ``\r\n``:
outfile.write(f'Documentation.addTranslations({obj});'.encode())
- if total_errors > 0:
- log.error('%d errors encountered.', total_errors)
- print("Compiling failed.", file=sys.stderr)
+ if 'ta' in total_errors:
+ # Tamil is a known failure.
+ err_count = total_errors.pop('ta')
+ log.error('%d errors encountered in %r locale.', err_count, 'ta')
+
+ if len(total_errors) > 0:
+ for locale, err_count in total_errors.items():
+ log.error('%d errors encountered in %r locale.', err_count, locale)
+ log.error('%d errors encountered.', sum(total_errors.values()))
+ print('Compiling failed.', file=sys.stderr)
raise SystemExit(2)
@@ -234,17 +254,17 @@ if __name__ == '__main__':
raise SystemExit(2) from None
os.chdir(ROOT)
- if action == "extract":
- raise SystemExit(run_extract())
- if action == "update":
- raise SystemExit(run_update())
- if action == "compile":
- raise SystemExit(run_compile())
- if action == "all":
- exit_code = run_extract()
- if exit_code:
- raise SystemExit(exit_code)
- exit_code = run_update()
- if exit_code:
- raise SystemExit(exit_code)
- raise SystemExit(run_compile())
+ if action == 'extract':
+ run_extract()
+ elif action == 'update':
+ run_update()
+ elif action == 'compile':
+ run_compile()
+ elif action == 'all':
+ run_extract()
+ run_update()
+ run_compile()
+ else:
+ msg = f"invalid action: '{action}'"
+ raise ValueError(msg)
+ raise SystemExit
diff --git a/utils/bump_docker.py b/utils/bump_docker.py
index ec4a1c7..8f385ae 100644..100755
--- a/utils/bump_docker.py
+++ b/utils/bump_docker.py
@@ -25,22 +25,28 @@ SPHINX_VERSION_PREFIX = 'Sphinx=='
for file in DOCKERFILE_BASE, DOCKERFILE_LATEXPDF:
content = file.read_text(encoding='utf-8')
- content = re.sub(rf'{re.escape(OPENCONTAINERS_VERSION_PREFIX)} = "{VERSION_PATTERN}"',
- rf'{OPENCONTAINERS_VERSION_PREFIX} = "{VERSION}"',
- content)
- content = re.sub(rf'{re.escape(SPHINX_VERSION_PREFIX)}{VERSION_PATTERN}',
- rf'{SPHINX_VERSION_PREFIX}{VERSION}',
- content)
+ content = re.sub(
+ rf'{re.escape(OPENCONTAINERS_VERSION_PREFIX)} = "{VERSION_PATTERN}"',
+ rf'{OPENCONTAINERS_VERSION_PREFIX} = "{VERSION}"',
+ content,
+ )
+ content = re.sub(
+ rf'{re.escape(SPHINX_VERSION_PREFIX)}{VERSION_PATTERN}',
+ rf'{SPHINX_VERSION_PREFIX}{VERSION}',
+ content,
+ )
file.write_text(content, encoding='utf-8')
-def git(*args):
- ret = subprocess.run(('git', *args),
- capture_output=True,
- cwd=DOCKER_ROOT,
- check=True,
- text=True,
- encoding='utf-8')
+def git(*args: str) -> None:
+ ret = subprocess.run(
+ ('git', *args),
+ capture_output=True,
+ cwd=DOCKER_ROOT,
+ check=True,
+ text=True,
+ encoding='utf-8',
+ )
print(ret.stdout)
print(ret.stderr, file=sys.stderr)
diff --git a/utils/bump_version.py b/utils/bump_version.py
index 6e50755..7275cca 100755
--- a/utils/bump_version.py
+++ b/utils/bump_version.py
@@ -1,19 +1,29 @@
#!/usr/bin/env python3
+from __future__ import annotations
+
import argparse
-import os
import re
import sys
import time
from contextlib import contextmanager
+from pathlib import Path
+from typing import TYPE_CHECKING
+
+from typing_extensions import TypeAlias
-script_dir = os.path.dirname(__file__)
-package_dir = os.path.abspath(os.path.join(script_dir, '..'))
+if TYPE_CHECKING:
+ from collections.abc import Iterator, Sequence
+
+script_dir = Path(__file__).parent
+package_dir = script_dir.parent
RELEASE_TYPE = {'a': 'alpha', 'b': 'beta'}
+VersionInfo: TypeAlias = tuple[int, int, int, str, int]
+
-def stringify_version(version_info, in_develop=True):
+def stringify_version(version_info: VersionInfo, in_develop: bool = True) -> str:
version = '.'.join(str(v) for v in version_info[:3])
if not in_develop and version_info[3] != 'final':
version += version_info[3][0] + str(version_info[4])
@@ -21,7 +31,7 @@ def stringify_version(version_info, in_develop=True):
return version
-def bump_version(path, version_info, in_develop=True):
+def bump_version(path: Path, version_info: VersionInfo, in_develop: bool = True) -> None:
version = stringify_version(version_info, in_develop)
with open(path, encoding='utf-8') as f:
@@ -42,7 +52,7 @@ def bump_version(path, version_info, in_develop=True):
f.write('\n'.join(lines) + '\n')
-def parse_version(version):
+def parse_version(version: str) -> VersionInfo:
matched = re.search(r'^(\d+)\.(\d+)$', version)
if matched:
major, minor = matched.groups()
@@ -73,7 +83,7 @@ class Skip(Exception):
@contextmanager
-def processing(message):
+def processing(message: str) -> Iterator[None]:
try:
print(message + ' ... ', end='')
yield
@@ -87,11 +97,11 @@ def processing(message):
class Changes:
- def __init__(self, path):
+ def __init__(self, path: Path) -> None:
self.path = path
self.fetch_version()
- def fetch_version(self):
+ def fetch_version(self) -> None:
with open(self.path, encoding='utf-8') as f:
version = f.readline().strip()
matched = re.search(r'^Release (.*) \((.*)\)$', version)
@@ -105,7 +115,7 @@ class Changes:
else:
self.in_development = False
- def finalize_release_date(self):
+ def finalize_release_date(self) -> None:
release_date = time.strftime('%b %d, %Y')
heading = f'Release {self.version} (released {release_date})'
@@ -120,16 +130,18 @@ class Changes:
f.write('=' * len(heading) + '\n')
f.write(self.filter_empty_sections(body))
- def add_release(self, version_info):
+ def add_release(self, version_info: VersionInfo) -> None:
if version_info[-2:] in (('beta', 0), ('final', 0)):
version = stringify_version(version_info)
else:
reltype = version_info[3]
- version = (f'{stringify_version(version_info)} '
- f'{RELEASE_TYPE.get(reltype, reltype)}{version_info[4] or ""}')
+ version = (
+ f'{stringify_version(version_info)} '
+ f'{RELEASE_TYPE.get(reltype, reltype)}{version_info[4] or ""}'
+ )
heading = 'Release %s (in development)' % version
- with open(os.path.join(script_dir, 'CHANGES_template'), encoding='utf-8') as f:
+ with open(script_dir / 'CHANGES_template.rst', encoding='utf-8') as f:
f.readline() # skip first two lines
f.readline()
tmpl = f.read()
@@ -145,11 +157,11 @@ class Changes:
f.write('\n')
f.write(body)
- def filter_empty_sections(self, body):
- return re.sub('^\n.+\n-{3,}\n+(?=\n.+\n[-=]{3,}\n)', '', body, flags=re.M)
+ def filter_empty_sections(self, body: str) -> str:
+ return re.sub('^\n.+\n-{3,}\n+(?=\n.+\n[-=]{3,}\n)', '', body, flags=re.MULTILINE)
-def parse_options(argv):
+def parse_options(argv: Sequence[str]) -> argparse.Namespace:
parser = argparse.ArgumentParser()
parser.add_argument('version', help='A version number (cf. 1.6b0)')
parser.add_argument('--in-develop', action='store_true')
@@ -158,15 +170,16 @@ def parse_options(argv):
return options
-def main():
+def main() -> None:
options = parse_options(sys.argv[1:])
- with processing("Rewriting sphinx/__init__.py"):
- bump_version(os.path.join(package_dir, 'sphinx/__init__.py'),
- options.version, options.in_develop)
+ with processing('Rewriting sphinx/__init__.py'):
+ bump_version(
+ package_dir / 'sphinx' / '__init__.py', options.version, options.in_develop
+ )
with processing('Rewriting CHANGES'):
- changes = Changes(os.path.join(package_dir, 'CHANGES'))
+ changes = Changes(package_dir / 'CHANGES.rst')
if changes.version_info == options.version:
if changes.in_development:
changes.finalize_release_date()
diff --git a/utils/release-checklist b/utils/release-checklist.rst
index 5aabbce..5aabbce 100644
--- a/utils/release-checklist
+++ b/utils/release-checklist.rst